题目描述:连接一个长度为3的位移寄存器。my_dff模块已给出
module top_module ( input clk, input d, output q );
wire q1,q2;
my_dff D0(.clk(clk),
.d(d),
.q(q1)
);
my_dff D1(.clk(clk),
.d(q1),
.q(q2)
);
my_dff D2(.clk(clk),
.d(q2),
.q(q));
endmodule
HDL BITS Module shifit8
进阶版本
module top_module (
input clk,
input [7:0] d,
input [1:0] sel,
output [7:0] q
);
wire[7:0] q1,q2,q3;
my_dff8 D0(.clk(clk),
.d(d),
.q(q1)
);
my_dff8 D1(.clk(clk),
.d(q1),
.q(q2)
);
my_dff8 D2(.clk(clk),
.d(q2),
.q(q3)
);
always@(*)begin
case(sel)
2'd0:
begin
q=d;
end
2'd1:
begin
q=q1;
end
2'd2:
begin
q=q2;
end
2'd3:
begin
q=q3;
end
endcase
end
endmodule
case语句:
case语句以case关键字开始,以endcase关键字结束。在括弧内的表达式将被精确地评估一次,并按其编写顺序与备选方案列表进行比较,与给定表达式匹配的备选方案的语句将被执行。一块多条语句必须分组,并在 begin 和 end 范围内。
casez进行控制表达式与分支表达式的比较时,不关注高阻态位(不管是控制表达式还是条件表达式,这些位均默认为匹配);
casex进行控制表达式与分支表达式的比较时,不关注高阻态,以及不定位(不管是控制表达式还是条件表达式,这些位均默认为匹配);