Edited at

4000円から始めるVHDLと脱チューリングマシンの世界へ FPGAを繋ぐ編

More than 1 year has passed since last update.

お急ぎの方は、1.、2.を飛ばして読んでかまいません。


1.ヒストリー

私はある時から禁断のCPUの世界を歩み、それ以来そのソフト屋の一部として今もある。


コンピュータへののめり込み

それは、TI社の7400TTL IC

NAND回路と言うこれ1つで演算からメモリ(正しくはflip-flop)を構成する。

この回路を配線で繋ぎ、入出力のデバイスとクロックを繋ぎLEDの点滅から時刻予約式TVチャンネル自動切り替え装置、、、などなど。


少年の頭の中はこの素子の事で一杯だった


それが今はどうだ?

CPUの上のプログラムにかかればそれらの回路は変数や制御文そしてIOコマンド送信。。。今までのNAND回路を半田付けしては外しまた付ける。この手間をあっという間に取り去った。そんな世界に流された。


時はバブルも終わり、低コスト至上主義の時代へ

組み込みプロセッサーを搭載したシステム

光回線化でアナログからデジタルそして光へ更改するシステム需要の中のほんの小さな終端は立派なアナログ機器、それを一手に引き受け動くシステムが存在した。プロセッサーはミリオーダーで1要求に対してデバイスとやり取りをするのが当たり前のマルチプロセッサーの時代。


数十ミリで数千の要求を一気に処理する為にたった一つの32bitモトローラ製プロセッサー

マイクロオーダーでそれを処理する最適化されたソフトウエア。

プログラマ冥利に尽きるお題だった。

しかしこれ、他に監視から何からのロジックもデバイス同士の伝達制御も受け持つと言う。

どんな時もその要求に応える事は無理だ!想定確率での推定必要性能を提示しても、それはどんな時も動かねばならぬと言う。何故だ!今まではアナログ回路で1回線にそれを持たせたのに何故だ、、、理由はこんな需要も何も無いシステムに対してデジタル化の予算を出せない。今にして大人の事情を理解できる。


そんな私が苦し紛れで出した解


1処理を、入力~判断~状態遷移~出力(指定箇所へのスイッチ切り替え)迄を一貫して1bit幅にてハード及びソフトを構成する

この為、CPUで組んだソフトはソフトと言えない、実は論理演算の塊となる。要は、CPUのデータバスの1bitのみで数値の保存、演算、状態判定(分岐に相当する状態bit反映)。論理演算とデータの必要分bitを縦方向(=メモリアドレス方向)に並べ、処理対象をデータバスの1bit(横方向)として扱う。

ハード屋にとっては基礎の基礎知識である論理回路、会議で私の描いた方式は全てのハード屋にそれを理解させた。ハード屋はソフト向き(CPU向け)のデータバスに込めたコマンドコントローラを脱ぎ捨てMemoryMapedIOにそれを割り当てた。

それは難なく動き課題の処理オーダーは与えられた時間内に難なく動いた。

これは、当時のCPU及びデータバス拡張、高速化の世界の中に何の影響を与える事なくひっそりとその方式とシステム名が飾られた。

https://astamuse.com/ja/granted/JP/No/3654740

https://astamuse.com/ja/granted/JP/No/3436472


ポイントの要約:(上記の公報より)

本発明によれば、・・・1処理を1ビットのデータとしてビット処理を行っている。このため、同時に複数の入力信号を処理することが可能になり・・各処理は排他的論理和や論理積等の基本的な論理演算で構成されているので、速い処理速度を達成することができる。更に、比較結果による分岐処理が無いので、データの値による処理時間のばらつきが無く、常に一定の時間で処理を行うことができる


2.昨今の機械学習ブームは忘れ去られたこの論理素子とそれを繋いだ論理制御回路を呼び起こす

CPUよりもGPU。GPUよりもFPGA。

よりハード素子レベルで動き、それは電源オンで回路を読み込みそれを書き換え可能と言う。


脱チューリングマシンの必要性が現れた

機械学習/Deep Learningの仕事が増える2017年、ソフトウェアエンジニアがFPGAを学ぶべき理由

【突然到来した非ノイマン型時代】寵児FPGAに接近する黄昏の巨人の思惑


3.禁断のFPGAの世界へ、CycloneⅡ EP2C5/EP2C8 MINI BOARD のセットアップ

Amazonにて入門用のAltera CycloneⅡEP2C5 の入門用キッとをUSB-Blaster含めて4000円弱で購入

以下購入元Amazonサイトの記事より

https://www.amazon.co.jp/gp/product/B0719H7RMB

ハードウェア構成:

1)オンボードEP2C5T144チップ。

2)EPROMチップは4MビットのEPCS4を採用しています。

3)オンボードの50M ACTIVE CRYSTAL(背面にあります)。

4)大きな電源コンセント、5V電源を使用。

5)電源インジケータとリセットスイッチがあります。

6)オンボードの3 SMD LED、あなたはLEDテスト実験を行うことができます。

7)すべてのIOポートとクロックピンはピンによってリードされ、これらのインターフェイスを介して任意のメモリとペリフェラルに拡張できます。

8)NiosIIエンベデッドCPUの開発をサポートします。

https://www.intel.co.jp/content/www/jp/ja/programmable/support/support-resources/software/download/nios2/dnl-nios2.html

Openなインフォーメーションは以下参照

http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board

1)のEP2C5・・・がFPGA(フィールド・プログラマブル・ゲートアレイ)そのもで

https://www.intel.com/content/dam/altera-www/global/ja_JP/pdfs/literature/hb/cyc2/cyc2_cii51001.pdf

 #論理素子数: 4,608 MAX

日本語データシート(VycloneⅡ全デバイス共通)

https://manualzz.com/doc/9132507/cyclone-ii-%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%89%E3%83%96%E3%83%83%E3%82%AF-%E6%97%A5%E6%9C%AC%E8%AA%9E%E7%89%88--3-mb--

EP2C5/EP2C8 MINI BOARD リンク

Wiki

http://land-boards.com/blwiki/index.php?title=Cyclone_II_EP2C5_Mini_Dev_Board

Gits

https://github.com/douggilliland/EP2C5-Cyclone-II-Mini-Board

Get Start

http://www.leonheller.com/FPGA/FPGA.html

回路図:

http://www.leonheller.com/FPGA/EP2C5T144mini.pdf

Movies:

https://www.youtube.com/watch?v=le6Jo5DpLao


4.QuantusⅡ開発環境のセットアップとFPGAの認識まで

CycloneⅡデバイスのQuantusは13sp1との事をIntelサイトより


1)ダウンロード:

1:

http://download.altera.com/akdlm/software/acdsinst/13.0sp1/232/ib_installers/QuartusSetupWeb-13.0.1.232.exe

2:

http://download.altera.com/akdlm/software/acdsinst/13.0sp1/232/ib_installers/cyclone_web-13.0.1.232.qdz

3:

http://download.altera.com/akdlm/software/acdsinst/13.0sp1/232/ib_installers/QuartusProgrammerSetup-13.0.1.232.exe

4:

http://download.altera.com/akdlm/software/acdsinst/13.0sp1/232/ib_installers/QuartusHelpSetup-13.0.1.232.exe


2)1,3,4をインストール:

C:\alera\ 等のOS純粋パス(途中にスペース等なし)にダウンロードし、1:からインストールでOK

2はデバイスの選択で必要時最初にインストール。


3)スタートメニューから

:Altera 13.0.1.232 Web Edition

Quartus II 13.0sp1 (64-bit) を起動

Toolsメニュー>Programmerで起動のダイアログでデバイス登録済み*1のUSB-Blasterを選択して認識さる。


セットアップ結果

Screenshot_20180814-130620.png

*1 USB-Blasterを事前にデバイスドライバー登録する。ドライバーの更新からQuantusⅡのインストールディレクトリ及びサブディレクトリを選択でそこからデバイスドライバーもインストールされる。

opc_20180814_124917.jpg

"EP2C5MINI BOARDは初期状態電源オンで3LEDSが同時に点滅する。USB-Blasterはドライバ登録でACT(緑)点灯"

usbbaster.png

Windowsデバイスドライバに登録され(左上)

QuantusⅡでEP2CV5がprogrammer上認識された。


次回予定、VHDLを書いて動かしてみる。