endmodule
图6.46 用生成循环语句定义n位逐位进位加法器
例6.26
在图6.33中,我们列出了16选1多路选择器Verilog代码,该代码实例引用了五个4
选1多路选择器电路,这个4选1多路器电路由一个独立的名为mux4to1模块提供。
16选1多路选择器也可以使用任务(task)来描述,见图6.47所示。 注意观察关
键的不同点。任务mux4to1包含在模块mux16to1中。在always模块中通过case语句
来调用任务。任务的输出必须是一个变量,因此 g 是 reg 型。
module mux16to1 (W, S16, f);
input [0:15] W;
input [3:0] S16;
output f;
reg f;
always @(W or S16)
case (S16[3:2])
0: mux4to1 (W[0:3], S16[1:0], f);
1: mux4to1 (W[4:7], S16[1:0], f);
2: mux4to1 (W[8:11], S16[1:0], f);
3: mux4to1 (W[12:15], S16[1:0], f);
endcase
1