【FPGA】ModelSimのTutorial 。。演習5 非同期クリア & クロック・イネーブル付きフリップ・フロップ【Verlog HDの基礎の基礎】

非同期クリア & クロック・イネーブル付きフリップ・フロップ

演習問題もいよいよ最後。。

フリップフロップ ってメモリなどに使われるデジタル回路の定番。

port map はこんな感じ

ff u1 (.aclr(aclr),.clk(clk),.clken(clken),.d(d),.q(q));

動作条件は

if aclr == 0 then  q=0

if aclr == 1 & clken ==1 then q=d

って感じ

module ff ( input aclr,input clk,input clken,input d,output q);
 
   reg q;
 
   always @ (posedge clk)
      case ({aclr,clken})
         2'b00 :  q <= 0;
         2'b01 :  q <= 0;
         2'b10 :  q <= 0;
         2'b11 :  q <= d;
         default: q <= 0;
      endcase
endmodule

かな?って書いてみたけど。。

非同期リセット付き

http://www.kumikomi.net/archives/2009/07/verilog_hdl.php?page=3

ここにあるように。。aclrが0になった瞬間に、clkと非同期に状態が変わらないといけないみたいなので。。

always @(posedge clk or negedge aclr)

としないといけないみたい。

とすると、条件分岐も

 if (aclr == 1'b1)
   q<=1b'0;
else if ( clken == 1'b1)
   q<=d;

って感じか。。

動かしたコードをGithubにおいておきました。

Githubの全体のリポジトリはこちら

https://github.com/tom2rd/VerilogHDL-Modelsim1

とりあえず、Verilog HDLの練習は、ここまでとしよう。。次はいよいよ。。FPGAに焼いてみるところかな??

本HPのFPGA関係は、こちら

 

 

 

投稿者 tom2rd

コメントを残していただけるとありがたいです

Loading Facebook Comments ...

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください