我在verilog中编写了一个实现D触发器的模块,如下所示: -
module d_flip_flop(q,d,clk,reset);
现在,我想使用这个模块实现4位移位寄存器。所以我必须在@(negedge clk)块内并行执行四个d触发器。我不知道如何并行执行四个用户定义的模块(或如何实例化)。我不想直接行为实现4位移位寄存器。
答案 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
块。