FC2カウンター FPGAの部屋 キャラクタ・ディスプレイ・コントローラをNSLで書こう2(Papyrusでクラス図を作成)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

キャラクタ・ディスプレイ・コントローラをNSLで書こう2(Papyrusでクラス図を作成)

キャラクタ・ディスプレイ・コントローラのクラス図をPapyrusで書いている。
下の図が書きかけのクラス図だ。Top_wDCMのトップ階層を新たに設けた(VerilogとVHDLバージョには無い)が、これは、CharDispCtrlerTestには、CharDispCtrlerを動作させるためのロジックが入っている。ロジックが入っていると、同じ階層でDCMでクロックを変換することが出来ないと思ったからだ。
CDCont_NSL_3_110203.png

CharDispCtrlerTestはすべてreg やwireを書いたのだが、CharDispCtler はinput, outputは全て書いたが、reg やwire は途中でやめてしまった。Verilogで書けばコピペが出来るし、いちいちtypeをダイアログを出して選択するのが面倒だ。やはりここはNSLのスケルトンを生成するのだから、input, outputだけを書いたクラス図で良い気がする。
CharDispCtrlerTestとCharDispCtler のreg, wireはすべて削除したのが、下の図だ。
CDCont_NSL_4_110203.png

クラス図としては、これのほうが良い気がする。NSLのスケルトンを生成するしてから、reg, wire は作ることにする。
Top_wDCMを設けたのは、CharDispCtrlerTestではロジックが入っているので、DCMを接続してクロックを帰るので、トップにクロックを使用するロジックがあってはまずいのでは?と思ったからだ。dcm_instはinterface文を使うか?して、クロックを明示して接続するつもりだ。

そうかメソッドを作成する場合に、reg, wire がないとだめなのかな?早速やってみた。
メソッドを作成していく。
CDCont_NSL_5_110203.png

次はインスタンスだが、これは迷うところ。順当に行けば、CharDispCtler からframe_buffer, char_gen_rom, disp_timing がインスタンスされるんだろうと思う。だが、下のブロック図を見ると、イベント駆動と考えると、disp_timingがタイミングを管理しているので、そこからframe_bufferを駆動して、char_gen_romを駆動するというのが自然のような気がする。しかし、frame_bufferは、キャラクタを書きこむのに、CharDispCtrlerからも駆動されるので、やはり、順当にインスタンスすることになるのだろか?しかし、他のインスタンスのメソッドも使えるんだろうか?考えていても、わからないので、やってることにする。
char_disp_ctler_3_070524.png

色々と構成を考えてみたが、結局、クラス図は下図になった。
CDCont_NSL_6_110204.png

dcm_instは空だが、後で、Verilogファイルを接続するつもりだ。
次に、UMLtoNSLでUMLをNSLのスケルトンに変換した。NSLのスケルトンを下図に示す。
CDCont_NSL_7_110204.png

後は、NSLを書いていくことにする。
  1. 2011年02月03日 05:45 |
  2. NSL
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/1707-3e413beb
この記事にトラックバックする(FC2ブログユーザー)