当前位置:网站首页>[Verilog] HDLBits Problem Solution - Verification: Writing Testbenches
[Verilog] HDLBits Problem Solution - Verification: Writing Testbenches
2022-08-03 12:11:00 【wjh776a68】
Clock
module top_module ( );
reg clk;
initial begin
clk = 0;
forever #5 clk = ~clk;
end
dut dut_inst(.clk(clk)) ;
endmodule
Testbench1
module top_module ( output reg A, output reg B );//
// generate input patterns here
initial begin
A = 0;
B = 0;
#10
A = 1;
#5
B = 1;
#5
A = 0;
#20
B = 0;
end
endmodule
AND gate
module top_module();
reg [1:0] in;
wire out;
initial begin
in = 'b0;
#10;
in = 'b01;
#10;
in = 'b10;
#10;
in = 'b11;
#10;
//$finish;
end
andgate andgate_inst (
.in(in),
.out(out)
);
endmodule
Testbench2
module top_module();
reg clk;
reg in;
reg [2:0] s;
reg [5:0] STAT;
wire out;
initial begin
STAT = 0;
clk = 0;
in = 0;
s = 'h2;
forever #5 clk = ~clk;
end
always @ (negedge clk) begin
case (STAT)
0: begin
s <= 'h6;
end
1: begin
s <= 'h2;
in <= 1;
end
2: begin
s <= 'h7;
in <= 0;
end
3: begin
s <= 'h0;
in <= 1;
end
6: begin
s <= 'h0;
in <= 0;
end
default: begin
end
endcase
if (STAT < 6) begin
STAT <= STAT + 1;
end
end
q7 q7_inst(
.clk(clk),
.in(in),
.s(s),
.out(out)
);
endmodule
T flip-flop
module top_module ();
reg clk, reset, t;
reg [5:0] STAT;
wire q;
initial begin
clk = 0;
reset = 0;
t = 0;
STAT = 0;
forever #1 clk = ~clk;
end
always @ (posedge clk) begin
case (STAT)
0: begin
reset <= 1;
STAT <= 1;
end
1: begin
reset <= 0;
t <= 1;
STAT <= 2;
end
2: begin
t <= 0;
end
endcase
end
tff tff_inst(
.clk(clk),
.reset(reset), // active-high synchronous reset
.t(t), // toggle
.q(q)
);
endmodule
边栏推荐
猜你喜欢
【倒计时5天】探索音画质量提升背后的秘密,千元大礼等你来拿
【一起学Rust】Rust包管理工具Cargo初步了解
第5章 实现首页Tab数据展示
【一起学Rust】Rust学习前准备——注释和格式化输出
【一起学Rust】Rust的Hello Rust详细解析
After completing the interview and clearance collection of Alibaba, I successfully won the 15th Offer this year
零拷贝、MMAP、堆外内存,傻傻搞不明白...
html网页如何获取后台数据库的数据(html + ajax + php + mysql)
How to do App Automation Testing?Practical sharing of the whole process of App automation testing
4500 words sum up, a software test engineer need to master the skill books
随机推荐
Redis发布订阅和数据类型
什么是Weex
pandas连接oracle数据库并拉取表中数据到dataframe中、生成当前时间的时间戳数据、格式化为指定的格式(“%Y-%m-%d-%H-%M-%S“)并添加到csv文件名称中
想学自动化测试网课哪个好?过了人告诉你:适合自己的才是最重要
bash if conditional judgment
Blazor Server(6) from scratch--policy-based permission verification
子结点的数量
LyScript 实现对内存堆栈扫描
数据库系统原理与应用教程(073)—— MySQL 练习题:操作题 131-140(十七):综合练习
零信任架构分析【扬帆】
-找树根2-
OFDM 十六讲 4 -What is a Cyclic Prefix in OFDM
899. 有序队列 : 最小表示法模板题
基于SSM和Web实现的农作物生长监控系统
pandas连接oracle数据库并拉取表中数据到dataframe中、筛选当前时间(sysdate)到一天之前的所有数据(筛选一天范围数据)
劝退背后。
常用lambda表达式
JUC(三):锁核心类AQS ing
Simple implementation of a high-performance clone of Redis using .NET (1)
RTP协议分析