Upload
magoroku-yamamoto
View
3.045
Download
7
Embed Size (px)
Citation preview
FPGAで動かすPDP11 互換プロセッサ
Lions commentary on unix 読書会 2011秋合宿
PDP11
DECが開発販売していたミニコン 16bitで数 100Kbyteから数Mbyte程度のメモリ 当時のメインフレームに比較して安価
命令セッ トが高級言語向けでエンジニアに好まれた
UNIXの開発プラッ ト フォームとして有名 てな話をまわりにしても、「無反応」なので、芦ノ湖畔の秘密結社の集会に持ち込む事にした
FPGAで PDP11 が動く ?
某コミュニティの飲み会で@himamura さんと飲んだときに同席した青年が、 東海大学出身で学生時代で学生時代に FPGAで動く PDP11を作っていた!!
調べてみると東海大学清水研の pop11が見つかる
POP11
http://labo.nshimizu.com/pop11.html PARTHENON SFL 言語で記述
Design Wave Magazine 2003 Julyに解説記事あり 論理設計の素人がいきなり SFL と言われても、資料も少ないし
断念
w11
もんもんと調べてみるとフリー IPを公開しているOpenCoresに w11見つけた
今日の集会でははこの w11の入手、 動作させるために機材、手順をまとめる
OpenCores にアカウント を作る
OpenCores.orgはフリーな IPを集めたサイト アカウントを作ってログインしたら
http://opencores.org/project,w11 へ
w11 の動作環境
FPGAボード Digilent S3BOARD または Digilent Nexys2 今回は S3BOARDを利用
Programmer Bitstreamを書き込むだけなら安価な USBプログラマで可
今回は JTAGSPI Full Speedを利用
USBシリアル FTDIコントローラを推奨を使ったもの
開発環境の準備
Xilinx ISE WebPackのダウンロード Programmerのインストール その他以下を Ubuntuにインストール
fxload libusbdev ghdl
tcl8.4dev libboostalldev
Xilinx ISE WebPack のダウンロード
論理合成ツールXilinx ISE WebPack WebPackはライセンス無料
http://www.xilinx.com/products/designtools/isedesignsuite/isewebpack.htm
Xilinxにアカウント を作成後 以下から Full Installer for Linuxダウンロード
今回は version 13.2を利用 http://www.xilinx.com/support/download/index.htm
Xilinx ISE WebPack のインストール
IDEのアーカイブを展開したディ レクト リで sudo ./xsetup 標準の /opt以下へインストール
Select Editon to Installの画面で ISE WebPackを選択
環境設定ファ イル .bashrcの最後に以下を追加 (64bit bashの場合 ) . /opt/Xilinx/13.2/ISE_DS/settings64.sh
Programmer のインストール
今回は digilent社の JTAGSPI Full Speedを利用 https://www.digilentinc.com/Products/Detail.cfm?NavPath=2,395,707&Prod=JTAGUSBFS
他に、 次の 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
手順にしたがってインストール
W11の論理合成
OpenCoreから w11をダウンロード http://opencores.org/project,w11,installation
今回は w11a_V0.531 20110912 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がプロジェクトのベースデレクト リ
手順の概略
1.ライブラリの調整
2.テストベンチを構成
3.実機向け bitstreamを生成
ライブラリの調整
cd $RETROBASE $ xilinx_ghdl_unisim $ xilinx_ghdl_simprim
テストベンチを構成
ライブリの不整合、 64bit環境未対応などでコンパイルエラーが出ます
テキトーに修正してください
テキトーな修正でも欲しい方は@magoroku15 まで D
実機向け 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_w11a_s3.bit に bitstreamができる
bitstream を FPGAに書き込む$ djtgcfg enum
Found 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.bit
WARNING: 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] y
Programming device. Do not touch your board. This may take a few minutes...
Programming succeeded.
Unix version 5 を動かす
disuksetをダウンロード $ cd $RETROBASE/rtl/sys_gen/w11a/tb
$ wget http://wwwlinux.gsi.de/~mueller/retro/oc_w11/data/unix_v5_rkset.tgz
$ tar xfovz unix_v5_rkset.tgz
USB232C ケーブルをつないで $ sudo $RETROBASE/tools/bin/set_ftdi_lat USB0 1 // lat 調整
$ telnet_starter d DL0 & //DLを termに接続
$ dorri u0,460 @uv5_boot.pcmd
実行環境
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)
他のOS
BSD 2.11 http://wwwlinux.gsi.de/~mueller/retro/oc_w11/data/211bsd_rkset.tgz
W11は FPPをサポートしていないので、 パッチを適用
Version6, Version7
FPUパッチを充てて、 RK DISKのでカーネルを再構成すれば動くはず
合宿でやりたかったけど、 到達できず
お詫びに
PDP11 on FPGA Shoppes guide 2011年3 月購入時
Spartan3 Starter Board(1000K) $159.00
JTAGUSB Full Speed Module $37.99
Subtotal: $196.99
Shipping (UPS International): $63.78
TOTAL: $260.77
USB232変換 1400円
秋月 :通販コード K01798
いますぐポチッ