1

我在verilog中编写了一个实现D触发器的模块,如下所示:-

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

现在,我想使用这个模块实现 4 位移位寄存器。所以我必须在 always @(negedge clk) 块内并行执行四个 d 触发器。我不知道如何始终并行执行四个用户定义的模块(或如何实例化)。我不想要 4 位移位寄存器的直接行为实现。

4

1 回答 1

3

一种方法是创建 4 个实例,将其中一个的 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 回答