HDLbits答案更新系列23(5|HDLbits答案更新系列23(5 Verification: Reading Simulation)
目录
前言
5 Verification: Reading Simulation
5.1 Clock(Tb/clock)
【HDLbits答案更新系列23(5|HDLbits答案更新系列23(5 Verification: Reading Simulation)】5.2 Testbench1(Tb/tb1)
5.3 AND gate(Tb/and)
5.4 Testbench2(Tb/tb2)
5.5 T flip-flop(Tb/tff)
结语
HDLbits网站链接
前言 今天终于来到了最后一个部分,HDLbits的178道题目答案更新系列终于完成了!一口气完成这全部的题目,相信同学们和我一样,心中还是有一点点小成就感的,这里面的题目有简单的有难的,将这些小模块完成之后,设计起大的模块来会更加游刃有余,让我们一起继续进步吧~
5 Verification: Reading Simulation
5.1 Clock(Tb/clock)
文章图片
`timescale 1ps / 1ps
module top_module ( );
reg clk;
dut u_dut(
.clk (clk)
);
initial begin
clk = 1'b0;
forever
#5
clk = ~clk;
end/*
//second way
initial begin
clk = 1'b0;
endalways begin
#5
clk = ~clk;
end
*/endmodule
这道题需要产生一个周期为10ns的时钟,博主给出两种方式。
5.2 Testbench1(Tb/tb1)
文章图片
`timescale 1ps / 1psmodule top_module ( output reg A, output reg B );
//// generate input patterns here
initial begin
A=1'b0;
B=1'b0;
#10;
A = 1'b1;
B = 1'b0;
#5;
A = 1'b1;
B = 1'b1;
#5;
A = 1'b0;
B = 1'b1;
#20;
A = 1'b0;
B = 1'b0;
endendmodule
这道题目是根据波形写出A、B对应时刻的值。
5.3 AND gate(Tb/and)
文章图片
`timescale 1ps / 1psmodule top_module();
reg [1:0]in;
wireout;
andgate u_andgate(
.in(in),
.out (out)
);
initial begin
in = 2'b00;
#10;
in = 2'b01;
#10;
in = 2'b10;
#10;
in = 2'b11;
end/*
initial begin
in[1] = 1'b0;
in[0] = 1'b0;
#10;
in[1] = 1'b0;
in[0] = 1'b1;
#10;
in[1] = 1'b1;
in[0] = 1'b0;
#10;
in[1] = 1'b1;
in[0] = 1'b1;
end
*/endmodule
这道题目作者给了我们一个与门的module,我们需要调用一下,然后就是按照时刻给in赋值。
5.4 Testbench2(Tb/tb2)
文章图片
module top_module();
regclk;
regin;
real s;
wire out;
q7 u_q7(
.clk (clk ),
.in(in),
.s(s),
.out(out )
);
initial begin
clk = 1'b0;
forever
#5
clk = ~clk;
endinitial begin
in = 1'b0;
s = 3'd2;
#10;
in = 1'b0;
s = 3'd6;
#10;
in = 1'b1;
s = 3'd2;
#10;
in = 1'b0;
s = 3'd7;
#10;
in = 1'b1;
s = 3'd0;
#30;
in = 1'b0;
s = 3'd0;
endendmodule
这道题目作者同样给出了一个module,我们只需调用即可。
5.5 T flip-flop(Tb/tff)
module top_module ();
reg clk;
reg reset;
reg t;
wire q;
tff u_tff(
.clk (clk),
.reset (reset),
.t(t),
.q(q)
);
initial begin
clk=1'b0;
forever
#5
clk=~clk;
endinitial begin
reset = 1'b0;
#3;
reset = 1'b1;
#10;
reset = 1'b0;
endalways@(posedge clk)begin
if(reset)begin
t <= 1'b0;
end
else begin
t <= 1'b1;
end
endendmodule
这道题目作者给出了一个T触发器的module,我们只需要将其复位,然后切换到状态1就可以了。
结语 这个系列终于算是完成更新了,HDLbits网站的题目搞定啦~~~还是那句话,如果有错误的地方,欢迎随时指出,我会尽快改正。
HDLbits网站链接 https://hdlbits.01xz.net/wiki/Main_Page
推荐阅读
- 六月更新的......
- 一般模型化关系——从模型是什么到如何起作用的基本答案
- 【情感】答案在风中飘荡(2)
- 上过大学和没上大学的区别在哪(几张现实对比图告诉你答案)
- K8S|K8S 生态周报| Istio 即将发布重大安全更新,多个版本受影响
- 意想不到,《逆天邪神》断更半个月更新之后,又断更了
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)
- 一树梨花开(第二十次更新)
- 创业or打工(你要的答案在这里——《穿越寒冬》(一))
- 安装ambari|安装ambari Hadoop--0(更新中...)