并行块下并行执行模块

时间:2013-03-28 15:54:47

标签: verilog

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

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

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

1 个答案:

答案 0 :(得分:3)

一种方法是创建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块。