※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

とりあえず簡単なところから書いていくとする

ハードウェア言語において関数みたいなものとしてモジュールというものがある。基本的にモジュール単位でファイル作るのが最初はイイと思う。


とりあえずモジュールの書き方は作成するモジュール名がtestなら


module test(clk ,rst , , ,);

モジュールの中身

endmodule


といった書き方になる。rstにつづくものはそのモジュールにおける引数、出力になる。,で区切ること。あと必ずしもclk,rst必要はないのであしからず。




次に回路の構成になるがまず、変数の型としてwireとregがある。

wireはただ単にデータをつなげる、regは値を保存するためにとだけ理解しておけばまずよい。


データの大きさとしてはainという名前の4bit幅のwireを宣言するなら

wire[3:0] ain;

といった形になる。


あと値の代入に関して、ブロッキング代入(=)、ノン・ブロッキング代入(<=)があるが、とりあえずハードウェア記述言語に慣れるまではwire型はブロッキング、regはノンブロッキングとして統一しておいたほうがいい。(混乱すると思う)


で実際どういう風に使うというと

wire [3:0] ain;

assign ain = ain + 4'h6;

reg [5:0] cnt;

always(posedge clk or negedge rst)begin

   if(!rst)

       cnt <= 6'h0;

   else

      cnt <= cnt + 6'h1;

end







| 新しいページ | 編集 | 差分 | 編集履歴 | ページ名変更 | アップロード | 検索 | ページ一覧 | タグ | RSS | ご利用ガイド | 管理者に問合せ |
@wiki - 無料レンタルウィキサービス | プライバシーポリシー