Pdp11 on-fpga

3,735 views

Published on

Pdp11 on-fpga

  1. 1. FPGA で動かすPDP­11  互換プロセッ サ Lions commentary on unix  読書会 2011 秋合宿
  2. 2. PDP­11 DEC が開発販売し ていたミ ニコ ン 16bit で数 100Kbyte から数 Mbyte 程度のメ モリ 当時のメインフレームに比較して安価 命令セッ ト が高級言語向けでエンジニアに好ま れた UNIX の開発プラ ッ ト フ ォ ームと し て有名 てな話をまわりにしても、「無反応」なので、芦ノ湖 畔の秘密結社の集会に持ち込む事にした
  3. 3. FPGA で PDP­11 が動く ? 某コミュニティの飲み会で @himamura さ んと 飲 んだと き に同席し た青年が、 東海大学出身で 学生時代で学生時代に FPGA で動く PDP­11 を作っていた!! 調べてみると東海大学清水研の pop­11 が見つか る
  4. 4. POP­11 http://labo.nshimizu.com/pop11.html PARTHENON SFL 言語 で記述 Design Wave Magazine 2003 July に解説記事あり 論理設計の素人がいき なり SFL と 言われても 、 資料も少ないし 断念
  5. 5. w11  もんもんと調べてみるとフリー IP を公開している OpenCores に w11 見つけた 今日の集会でははこ の w11 の入手、 動作さ せる ために機材、手順をまとめる
  6. 6. OpenCores にアカウ ント を作る OpenCores.org はフリーな IP を集めたサイト アカウントを作ってログインしたら  http://opencores.org/project,w11  へ
  7. 7. w11 の動作環境 FPGA ボード  Digilent S3BOARD  ま たは Digilent Nexys2   今回は S3BOARD を利用 Programmer  Bitstream を書き込むだけなら安価な USB プログ ラ マで可  今回は JTAG­SPI Full Speed を利用 USB­ シリ アル  FTDI コントローラを推奨を使ったもの
  8. 8. 開発環境の準備 Xilinx ISE WebPack のダウ ン ロード Programmer のイ ンスト ール その他以下を Ubuntu にイ ンスト ール  fxload   libusb­dev ghdl    tcl8.4­dev  libboost­all­dev
  9. 9. Xilinx ISE WebPack のダウ ン ロード 論理合成ツ ール Xilinx ISE WebPack WebPack はライセンス無料  http://www.xilinx.com/products/design­tools/ise­ design­suite/ise­webpack.htm Xilinx にアカウ ント を作成後 以下から Full Installer for Linux ダウンロード  今回は version 13.2 を利用  http://www.xilinx.com/support/download/index.htm 
  10. 10. Xilinx ISE WebPack のイ ンスト ール IDE のアーカイ ブを展開し たディ レ ク ト リ で  sudo ./xsetup  標準の /opt 以下へインストール Select Editon to Install の画面で  ISE WebPack を選択 環境設定フ ァ イ ル  .bashrc の最後に以下を追加 (64bit bash の場合 )  .    /opt/Xilinx/13.2/ISE_DS/settings64.sh
  11. 11. Programmer のイ ンスト ール 今回は digilent 社の JTAG­SPI Full Speed を利用  https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,395,707&Prod=JTAG­USB­FS 他に、 次の URL の中から 選択すれば S3Board に 対応しているはず  https://www.digilentinc.com/Products/Catalog.cfm?NavPath=2,395&Cat=5 対応するツールを以下からダウンロード  https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,66,828&Prod=ADEPT2  手順にしたがってインストール
  12. 12. W11 の論理合成 OpenCore から w11 をダウンロード  http://opencores.org/project,w11,installation  今回は w11a_V0.531    2011­09­12  rev 12 を使用  $ mkdir $HOME/w11a  $ cd  $HOME/w11a  $ svn co http://opencores.org/ocsvn/w11/w11/trunk 環境変数を 設定  $  export RETROBASE=$HOME/w11a  $  export PATH=$PATH:$RETROBASE/tools/bin  $  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$RETROBASE/tools/lib RETOROBASE がプロジェ ク ト のベースデレ ク ト リ
  13. 13. 手順の概略1.ラ イ ブラ リ の調整2.テストベンチを構成3.実機向け bitstream を生成
  14. 14. ラ イ ブラ リ の調整 cd $RETROBASE $ xilinx_ghdl_unisim $ xilinx_ghdl_simprim
  15. 15. テスト ベン チを構成 ラ イ ブリ の不整合、 64bit 環境未対応など でコ ン パイルエラーが出ます テキトーに修正してください テキトーな修正でも欲しい方は @magoroku15 ま でD
  16. 16. 実機向け bitstream を作る bitstream は FPGA 上の構成を 指示する bit 列。 こ れの bitstream を ConfigROM( 最近は Flash ) に書き 込んで置く と 、 PON 時に指定の回路が 構成さ れる $ cd $RETROBASE/rtl/sys_gen/w11a/s3board $ make sys_w11a_s3.bit ./sys_gen/w11a/s3board/sys_w11a_s3.bit $RETROBASE/rtl/sys_gen/w11a/s3board/sys_w11 a_s3.bit  に bitstream ができ る
  17. 17. bitstream を FPGA に書き 込む$ djtgcfg enumFound 1 device(s)Device: JtagUsbFs    Product Name:   Digilent JTAG USB Full Speed    User Name:      JtagUsbFs    Serial Number:  210153238924$ djtgcfg prog  ­d JtagUsbFs ­i 0 ­f                  $RETROBASE/rtl/sys_gen/w11a/s3board/sys_w11a_s3.bitWARNING: startup clock for this file is CCLK instead of JTAG CLK.Problems will likely occur. Associate config file with device anyway (Y or N)? [N] yProgramming device. Do not touch your board. This may take a few minutes...Programming succeeded.
  18. 18. Unix version 5 を動かす disukset をダウンロード $ cd $RETROBASE/rtl/sys_gen/w11a/tb $ wget  http://www­linux.gsi.de/~mueller/retro/oc_w11/data/unix_v5_rkset.tgz $ tar xfovz unix_v5_rkset.tgz USB­232C ケーブルをつないで $ sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1 // lat 調整 $ telnet_starter ­d DL0 &  //DL を term に接続 $ dorri ­u0,460 @uv5_boot.pcmd
  19. 19. 実行環境  uv5_boot.pcmd   .mode serv11   att TT0 8000   reset   att rk0 unix_v5_rk.dsk  boot rk0  server  dorri       $ dorri ­s3 @uv5_boot.pcmd       (for ghdl sim of tb_w11a_s3)       $ dorri ­n2 @uv5_boot.pcmd       (for ghdl sim of tb_w11a_n2)       $ dorri ­t      @uv5_boot.pcmd   (fpga link via /dev/ttyS0)       $ dorri ­u0,460 @uv5_boot.pcmd  (fpga link via /dev/ttyUSB0)
  20. 20. 他の OS BSD 2.11  http://www­linux.gsi.de/~mueller/retro/oc_w11/data/211bsd_rkset.tgz  W11 は FPP をサポート し ていないので、 パッ チを適用 Version6, Version7  FPU パッ チを充てて、 RK DISK のでカーネルを再構成すれば動くはず  合宿でやり たかっ たけど、 到達でき ず  お詫びに
  21. 21. PDP­11 on FPGA Shoppes guide  2011 年3 月購入時  Spartan­3 Starter Board(1000K) $159.00   JTAG­USB Full Speed Module   $37.99  Subtotal:       $196.99  Shipping (UPS International):  $63.78  TOTAL: $260.77  USB­232 変換  1400 円  秋月 : 通販コード  K­01798 いま すぐ ポチッ

×