正确解答如下
module top_module (
input clk,
input [7:0] d,
input [1:0] sel,
output [7:0] q
);
wire[7:0] wir1,wir2,wir3;
my_dff8 instance1(.d(d),.clk(clk),.q(wir1));
my_dff8 instance2(.d(wir1),.clk(clk),.q(wir2));
my_dff8 instance3(.d(wir2),.clk(clk),.q(wir3));
always@(*)
case (sel)
2'b00: q = d;
2'b01: q = wir1;
2'b10: q = wir2;
2'b11: q = wir3;
endcase
endmodule
这道题有两个点值得我们注意
1、这是一道端口为多位的元件例化过程,从我上面写的代码可以发现,多位端口的例化与我们之前写过的一位端口的例化是没有什么区别的!
2、模块与模块之间需要类似于C语言里面的中间变量 (上面代码中的wir)来衔接