FPGAの部屋のまとめサイトで掲載されている
SPOC Builderのページを参考に,
Qsysに新しいコンポーネントを追加してみました.
多くのサイトで参考文献として見かける
FPGA技術 Vol. 5は,当面再販が
ないとのことで残念です…
DE0-Nanoには,DE0のように7セグLEDが付いていませんので,8個のLEDを
点滅させることにします.
Sim's blogの記事を参考に作成した
前回の回路では,
Qsys付属のPIOを使用していますが,今回はこれを自分のコンポーネントで
置き換えることにします.
まず,Nios IIからPIOを制御するためのMyPIO.vを準備します.あるアドレスに
8ビットの値を書き込むことで,それに対応したLEDをon/offすることができます.
![](https://blogimg.goo.ne.jp/user_image/7f/e8/0a441f1996025d8c0f48f984ba02e8ee.png)
(クリックでコード表示)
次に,Qsysを立ち上げ,前回と同じ要領でPIOなしのシステムを構成します.
![](https://blogimg.goo.ne.jp/user_image/40/7b/19433b716e38b2f1d442f2066cf94d30.png)
(クリックで拡大)
QsysにMyPIO.vを登録するために,new componentをクリックしてComponent Editorを
立ち上げます.
Component Editorでは,まずHDL FilesのタブでAddボタンをクリックしてMyPIO.vを追加します.
ErrorやWarningは気にせず,これから解決してゆきます.
![](https://blogimg.goo.ne.jp/user_image/4e/47/8962f93246714250aa981184e56b0361.png)
(クリックで拡大)
次に,Signalsのタブで,ledを外部信号として登録します.Interfaceにnew conduit,
Signal Typeにexportを選びます.これで外部信号と認識され,WarningとErrorが
ひとつ消えます.
![](https://blogimg.goo.ne.jp/user_image/1a/32/3af0b6583cef349c286339174727c27d.png)
(クリックで拡大)
Interfacesのタブでは,まずresetのAssociated clockとして,clockを選択します.
これでErrorがまたひとつ消えます.
![](https://blogimg.goo.ne.jp/user_image/64/56/256b330da540f04fcd52dc23fcc6b0c1.png)
(クリックで拡大)
次に,avalon_slave_0のAssociated resetとして,resetを選択します.
これで,Errorがすべて消えます.
![](https://blogimg.goo.ne.jp/user_image/4c/7d/2e847aa5ccea7fe56e3821150f84cea6.png)
(クリックで拡大)
最後に,Library Infoのタブで,Display nameとGroupを指定し,Finishボタンを
クリックします.
![](https://blogimg.goo.ne.jp/user_image/34/41/017fa1962f4779c92e57bc4248bd57de.png)
(クリックで拡大)
これでMyPIOがQsysに登録され,Peripheralsの下に表示されます.
MyPIOをダブルクリックすると,システムにMyPIO_0が追加されます.
前回のPIOと同様にConnectionsを接続し,Baseを0x00000030に設定します.
![](https://blogimg.goo.ne.jp/user_image/20/64/ace08ed7be0f89061db22b1b62753641.png)
(クリックで拡大)
最後に,GenerationのタブからGenerateボタンをクリックし,システムを生成します.
後の手順は,前回とまったく同じです.Nios II Software Build Tools for Eclipseで
LED点滅のプログラムを作成し,無事にDE0-Nanoでの動作が確認できました.