当前位置:网站首页>【Verilog】HDLBits题解——Verification: Writing Testbenches
【Verilog】HDLBits题解——Verification: Writing Testbenches
2022-08-03 12:03: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
边栏推荐
- Matlab学习11-图像处理之图像变换
- 深度学习中数据到底要不要归一化?实测数据来说明!
- GET 和 POST 有什么区别?
- R语言拟合ARIMA模型并使用拟合模型进行预测推理、使用autoplot函数可视化ARIMA模型预测结果、可视化包含置信区间的预测结果
- FR9811S6 SOT-23-6 23V, 2A Synchronous Step-Down DC/DC Converter
- 笔试题:金额拆分
- 微信为什么使用 SQLite 保存聊天记录?
- 从零开始Blazor Server(6)--基于策略的权限验证
- viewstub 的详细用法_pageinfo用法
- 本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现
猜你喜欢
随机推荐
基于SSM和Web实现的农作物生长监控系统
Redis发布订阅和数据类型
从零开始Blazor Server(6)--基于策略的权限验证
项目概述、推送和存储平台准备
bash case用法
awk入门教程
Go 语言快速入门指南: 介绍及安装
Matlab学习13-图像处理之可视化GUI程序
Matlab学习10-图像处理之傅里叶变换
【MySQL】数据库进阶之索引内容详解(上篇 索引分类与操作)
广州番禺:暑期防溺水,安全不放假
LyScript implements memory stack scanning
【一起学Rust】Rust包管理工具Cargo初步了解
优维低代码:Provider 构件
LeetCode-48. 旋转图像
流式编程使用场景
5个超好用手机开源自动化工具,哪个适合你?
深度学习跟踪DLT (deep learning tracker)
Matlab学习11-图像处理之图像变换
__unaligned修饰指针