SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
FPGA で動かす
PDP­11  互換プロセッ サ

   Lions commentary on unix  読書会
   2011 秋合宿
PDP­11
   DEC が開発販売し ていたミ ニコ ン
   16bit で数 100Kbyte から数 Mbyte 程度のメ モリ
   当時のメインフレームに比較して安価
   命令セッ ト が高級言語向けでエンジニアに好ま
     れた
   UNIX の開発プラ ッ ト フ ォ ームと し て有名
   てな話をまわりにしても、「無反応」なので、芦ノ湖
     畔の秘密結社の集会に持ち込む事にした
FPGA で PDP­11 が動く ?
   某コミュニティの飲み会で @himamura さ んと 飲
     んだと き に同席し た青年が、 東海大学出身で
     学生時代で学生時代に FPGA で動く PDP­11
     を作っていた!!
   調べてみると東海大学清水研の pop­11 が見つか
     る
POP­11
   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 プログ
             ラ マで可
          今回は JTAG­SPI Full Speed を利用
   USB­ シリ アル
          FTDI コントローラを推奨を使ったもの
開発環境の準備
   Xilinx ISE WebPack のダウ ン ロード
   Programmer のイ ンスト ール
   その他以下を Ubuntu にイ ンスト ール
         fxload 
         libusb­dev ghdl  
         tcl8.4­dev
         libboost­all­dev
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 
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 社の 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

         手順にしたがってインストール
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 がプロジェ ク ト のベースデレ ク ト リ
手順の概略
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_w11
     a_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://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
実行環境
        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://www­linux.gsi.de/~mueller/retro/oc_w11/data/211bsd_rkset.tgz
            W11 は FPP をサポート し ていないので、 パッ チを適用
   Version6, Version7
            FPU パッ チを充てて、 RK DISK のでカーネルを再構成すれば動くはず
            合宿でやり たかっ たけど、 到達でき ず



            お詫びに
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



        いま すぐ ポチッ

Weitere ähnliche Inhalte

Was ist angesagt?

大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説murachue
 
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発TylerShukert
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会7shi
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化Gosuke Miyashita
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)mosa siru
 
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さんエンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さんRakuten Group, Inc.
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことRecruit Lifestyle Co., Ltd.
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことgree_tech
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門demuyan
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントhistoria_Inc
 
わからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なことわからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なことrarihoma
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMPYusuke Kagata
 
まじめに!できる!LT
まじめに!できる!LT まじめに!できる!LT
まじめに!できる!LT Akabane Hiroyuki
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)NTT DATA Technology & Innovation
 
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...Preferred Networks
 
4bit-CPU : TD4の解説
4bit-CPU : TD4の解説4bit-CPU : TD4の解説
4bit-CPU : TD4の解説Seong-Hun Choe
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 

Was ist angesagt? (20)

大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
FlutterとSupabaseでRDBを使った サーバーレスアプリ開発
 
マーク&スイープ勉強会
マーク&スイープ勉強会マーク&スイープ勉強会
マーク&スイープ勉強会
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)開発速度が速い #とは(LayerX社内資料)
開発速度が速い #とは(LayerX社内資料)
 
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さんエンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
エンジニアチームにとって手の届くKPIを考えて、仕事に取り入れてみた supported by アトラクタ原田騎郎さん
 
JS7 JobScheduler プレビュー
JS7 JobScheduler プレビューJS7 JobScheduler プレビュー
JS7 JobScheduler プレビュー
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
 
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったことPHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
 
低レイヤー入門
低レイヤー入門低レイヤー入門
低レイヤー入門
 
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメントヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
ヒストリア HelixCore(Perforce) 運用レギュレーションドキュメント
 
わからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なことわからないまま使っている?UE4 の AI の基本的なこと
わからないまま使っている?UE4 の AI の基本的なこと
 
テストコードの DRY と DAMP
テストコードの DRY と DAMPテストコードの DRY と DAMP
テストコードの DRY と DAMP
 
まじめに!できる!LT
まじめに!できる!LT まじめに!できる!LT
まじめに!できる!LT
 
C++の黒魔術
C++の黒魔術C++の黒魔術
C++の黒魔術
 
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
ChatGPTのデータソースにPostgreSQLを使う[詳細版](オープンデベロッパーズカンファレンス2023 発表資料)
 
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
 
4bit-CPU : TD4の解説
4bit-CPU : TD4の解説4bit-CPU : TD4の解説
4bit-CPU : TD4の解説
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 

Ähnlich wie Pdp11 on-fpga

FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めYou&I
 
Displaylink : Reloaded
Displaylink : ReloadedDisplaylink : Reloaded
Displaylink : ReloadedMasataka Kondo
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみたKazuya Wada
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築yaegashi
 
pkgsrc とは何か? - よもやま話
pkgsrc とは何か? - よもやま話pkgsrc とは何か? - よもやま話
pkgsrc とは何か? - よもやま話Akio OBATA
 
Open-FCoE_osc2011tokyofall_20111119
Open-FCoE_osc2011tokyofall_20111119Open-FCoE_osc2011tokyofall_20111119
Open-FCoE_osc2011tokyofall_20111119metamd
 
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Xilinx SDSoC(2016.2)解体新書ソフトウェア編Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Xilinx SDSoC(2016.2)解体新書ソフトウェア編Mr. Vengineer
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMFAtomu Hidaka
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pitokudahiroshi
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825hiro345
 
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Xilinx SDSoC(2016.3)解体新書ソフトウェア編Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Xilinx SDSoC(2016.3)解体新書ソフトウェア編Mr. Vengineer
 
20110715 osc2011 kyoto
20110715 osc2011 kyoto20110715 osc2011 kyoto
20110715 osc2011 kyotoYamauchi isamu
 
201104016 osc2011 kobe
201104016 osc2011 kobe201104016 osc2011 kobe
201104016 osc2011 kobeYamauchi isamu
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0Kiwamu Okabe
 

Ähnlich wie Pdp11 on-fpga (20)

FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
Displaylink : Reloaded
Displaylink : ReloadedDisplaylink : Reloaded
Displaylink : Reloaded
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
RでGPU使ってみた
RでGPU使ってみたRでGPU使ってみた
RでGPU使ってみた
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
 
pkgsrc とは何か? - よもやま話
pkgsrc とは何か? - よもやま話pkgsrc とは何か? - よもやま話
pkgsrc とは何か? - よもやま話
 
Open-FCoE_osc2011tokyofall_20111119
Open-FCoE_osc2011tokyofall_20111119Open-FCoE_osc2011tokyofall_20111119
Open-FCoE_osc2011tokyofall_20111119
 
about DakotagUI
about DakotagUIabout DakotagUI
about DakotagUI
 
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Xilinx SDSoC(2016.2)解体新書ソフトウェア編Xilinx SDSoC(2016.2)解体新書ソフトウェア編
Xilinx SDSoC(2016.2)解体新書ソフトウェア編
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 
Riscv+fpga200606
Riscv+fpga200606Riscv+fpga200606
Riscv+fpga200606
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
NetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry PiNetBSD/evbarm on Raspberry Pi
NetBSD/evbarm on Raspberry Pi
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Xilinx SDSoC(2016.3)解体新書ソフトウェア編Xilinx SDSoC(2016.3)解体新書ソフトウェア編
Xilinx SDSoC(2016.3)解体新書ソフトウェア編
 
20110715 osc2011 kyoto
20110715 osc2011 kyoto20110715 osc2011 kyoto
20110715 osc2011 kyoto
 
201104016 osc2011 kobe
201104016 osc2011 kobe201104016 osc2011 kobe
201104016 osc2011 kobe
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
InfiniBand on Debian
InfiniBand on DebianInfiniBand on Debian
InfiniBand on Debian
 

Mehr von magoroku Yamamoto

Mehr von magoroku Yamamoto (20)

Deep learning入門
Deep learning入門Deep learning入門
Deep learning入門
 
波形で見るBig.little
波形で見るBig.little波形で見るBig.little
波形で見るBig.little
 
自動並列化コンパイラをAndroidに適用してみた
自動並列化コンパイラをAndroidに適用してみた自動並列化コンパイラをAndroidに適用してみた
自動並列化コンパイラをAndroidに適用してみた
 
Oscar compiler for power reduction
Oscar compiler for power reduction Oscar compiler for power reduction
Oscar compiler for power reduction
 
Unix v6 セミナー vol. 5
Unix v6 セミナー vol. 5Unix v6 セミナー vol. 5
Unix v6 セミナー vol. 5
 
仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に仮想記憶入門 BSD-4.3を例題に
仮想記憶入門 BSD-4.3を例題に
 
V6 unix vol.2 in okinawa
V6 unix vol.2 in okinawaV6 unix vol.2 in okinawa
V6 unix vol.2 in okinawa
 
Adk2012
Adk2012Adk2012
Adk2012
 
Android binder-ipc
Android binder-ipcAndroid binder-ipc
Android binder-ipc
 
V6 unix in okinawa
V6 unix in okinawaV6 unix in okinawa
V6 unix in okinawa
 
ぐだ生システム#2
ぐだ生システム#2ぐだ生システム#2
ぐだ生システム#2
 
ぐだ生って何
ぐだ生って何ぐだ生って何
ぐだ生って何
 
Android builders summit slide tour
Android builders summit slide tourAndroid builders summit slide tour
Android builders summit slide tour
 
第4回名古屋Android勉強会資料
第4回名古屋Android勉強会資料第4回名古屋Android勉強会資料
第4回名古屋Android勉強会資料
 
Poorman’s adk トレーナ
Poorman’s adk トレーナPoorman’s adk トレーナ
Poorman’s adk トレーナ
 
20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント20分でわかった事にするパワーマネジメント
20分でわかった事にするパワーマネジメント
 
Poormans sdk
Poormans sdkPoormans sdk
Poormans sdk
 
Ngk2011 b
Ngk2011 bNgk2011 b
Ngk2011 b
 
オレオレ家電
オレオレ家電オレオレ家電
オレオレ家電
 
V6read#4
V6read#4V6read#4
V6read#4
 

Pdp11 on-fpga

  • 1. FPGA で動かす PDP­11  互換プロセッ サ  Lions commentary on unix  読書会  2011 秋合宿
  • 2. PDP­11  DEC が開発販売し ていたミ ニコ ン  16bit で数 100Kbyte から数 Mbyte 程度のメ モリ  当時のメインフレームに比較して安価  命令セッ ト が高級言語向けでエンジニアに好ま れた  UNIX の開発プラ ッ ト フ ォ ームと し て有名  てな話をまわりにしても、「無反応」なので、芦ノ湖 畔の秘密結社の集会に持ち込む事にした
  • 3. FPGA で PDP­11 が動く ?  某コミュニティの飲み会で @himamura さ んと 飲 んだと き に同席し た青年が、 東海大学出身で 学生時代で学生時代に FPGA で動く PDP­11 を作っていた!!  調べてみると東海大学清水研の pop­11 が見つか る
  • 4. POP­11  http://labo.nshimizu.com/pop11.html  PARTHENON SFL 言語 で記述  Design Wave Magazine 2003 July に解説記事あり  論理設計の素人がいき なり SFL と 言われても 、 資料も少ないし  断念
  • 5. w11   もんもんと調べてみるとフリー IP を公開している OpenCores に w11 見つけた  今日の集会でははこ の w11 の入手、 動作さ せる ために機材、手順をまとめる
  • 6. OpenCores にアカウ ント を作る  OpenCores.org はフリーな IP を集めたサイト  アカウントを作ってログインしたら  http://opencores.org/project,w11  へ
  • 7. w11 の動作環境  FPGA ボード  Digilent S3BOARD  ま たは Digilent Nexys2   今回は S3BOARD を利用  Programmer  Bitstream を書き込むだけなら安価な USB プログ ラ マで可  今回は JTAG­SPI Full Speed を利用  USB­ シリ アル  FTDI コントローラを推奨を使ったもの
  • 8. 開発環境の準備  Xilinx ISE WebPack のダウ ン ロード  Programmer のイ ンスト ール  その他以下を Ubuntu にイ ンスト ール  fxload   libusb­dev ghdl    tcl8.4­dev  libboost­all­dev
  • 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. 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. 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. 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. 手順の概略 1.ラ イ ブラ リ の調整 2.テストベンチを構成 3.実機向け bitstream を生成
  • 14. ラ イ ブラ リ の調整  cd $RETROBASE  $ xilinx_ghdl_unisim  $ xilinx_ghdl_simprim
  • 15. テスト ベン チを構成  ラ イ ブリ の不整合、 64bit 環境未対応など でコ ン パイルエラーが出ます  テキトーに修正してください  テキトーな修正でも欲しい方は @magoroku15 ま でD
  • 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. 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.
  • 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. 実行環境  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. 他の 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. 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 いま すぐ ポチッ