1

次のように、D フリップフロップを実装するモジュールを Verilog で記述しました。

module d_flip_flop(q,d,clk,reset);

今、このモジュールを使用して 4 ビット シフト レジスタを実装したいと考えています。そのため、常に @(negedge clk) ブロック内で 4 つの d フリップフロップを並列に実行する必要があります。常に内部で 4 つのユーザー定義モジュールを並列実行する方法 (またはインスタンス化する方法) がわかりません。4 ビット シフト レジスタの直接的な動作実装は必要ありません。

4

1 に答える 1

3

1 つの方法は、4 つのインスタンスを作成し、1 つの q 出力を次の d 入力に接続することです。

wire [3:0] q;
d_flip_flop i0 (q[0], din , clk,reset);
d_flip_flop i1 (q[1], q[0], clk,reset);
d_flip_flop i2 (q[2], q[1], clk,reset);
d_flip_flop i3 (q[3], q[2], clk,reset);

alwaysブロックを使用する必要はありません。

于 2013-03-28T16:10:14.097 に答える