Verilog の Specify チートシート の変更点
更新- 追加された行はこの色です。
- 削除された行はこの色です。
- 電気回路/HDL/Verilog の Specify チートシート へ行く。
- 電気回路/HDL/Verilog の Specify チートシート の差分を削除
[[公開メモ]] * 概要 [#d2271aa3] http://verilog.renerta.com/source/vrg00052.htm を元に、あんちょこを作りました。 * Specify の書き方 [#k91713ff] LANG:verilog module ... ... specify ... endspecify ... endmodule の形で module 内に specify ブロックを作成し、 モジュール内の信号同士の間のディレイを規定する。 ** 各種関数 [#m1b49aec] 影付きの部分で tested_event が生じるとエラーになる。~ 境界上はエラーにならない。 &ref(timing-check-tasks.png); - $setup(tested_event, reference_event, limit[, notifier]) - $skew(reference_event, tested_event, limit[, notifier]) - $hold(reference_event, tested_event, limit[, notifier]) - $recovery(reference_event, tested_event, limit[, notifier]) - $setuphold(reference_event, tested_event, setup_limit, hold_limit[, notifier]) - $width(reference_event, limit, threshold [,notifier]) - $period(reference_event, limit[,notifier]) - $nochange(reference_event, data_event, start_edge_offset, end_edge_offset [,notifier]) 以下注釈。 - reference_event や tested_event には posedge clk のようにエッジを指定しても良いし、 ただ単に signal1 などとした場合には posedge signal1 or negedge signal1 の意味になる。 - reference_event や tested_event には通常 posedge clk のようにエッジ指定する。 - ただ単に signal1 などとした場合には posedge signal1 or negedge signal1 の意味になる。 - limit の単位は `timescale の第1引数 -- `timescale 10ns / 10ps ならば 10ns の何倍かで指定する - reference_event に &&& で条件を付けられる -- 例えば posedge clk &&& !rst とすれば !rst の時に限りチェックされる - width における tested_event は reference_event の逆エッジ - period における tested_event は reference_event と同じイベント - $setup では tested_event が reference_event より前に来るのが覚えにくい - $width における tested_event は reference_event の逆エッジ - $period における tested_event は reference_event と同じイベント - notifier に reg を指定すると、エラー時に 1 が代入される -- ゼロで初期化しておく ** パスの宣言 [#m86b7bea] LANG:verilog specify (In1 => Out1) = (10); endspecify specify specparam TRise = 10, TFall = 15; (In2 => Out2) = (TRise, TFall) ; endspecify - 入力 In1 から Out1 への遅延が単位時間の10倍 - 入力 In2 から Out2 への遅延が rise, fall 別に単位時間の10倍, 15倍
Counter: 13914 (from 2010/06/03),
today: 1,
yesterday: 2