如何为双向/输入端口编写Verilog Testbench

这篇文章介绍了如何编写 Verilog 双向或输入端口的测试台。这在包含双向或输入的特殊设计中会发生 端口,例如I2C内核,IO垫,存储器等。 

在这篇文章中,我将举例说明如何编写 试验台 数字代码 IO 垫。基本上,IO垫具有逻辑输入DS,OEN,IE,PE,以将IO垫配置为输入或输出。当DS = OEN = IE = PE = 1时,IO垫用作输入垫。因此,来自双向端口PAD的数据被写入输出C。当DS = PE = 1且OEN = IE = 0时,IO垫用作输出垫。因此,来自输入I的信号将传递到双向端口PAD。
双向/输入端口的Verilog测试平台

Verilog测试平台的框图

如Verilog测试平台的框图所示,被测IO垫是DUT模块。 块0按如下方式控制入站端口PAD:


分配PAD = wr == 1? din:1'bz;

当wr == 1时,输入端口PAD用作输入,因此PAD = din。当wr == 0时,输入端口PAD分配给高阻抗1'bz。因此,它成为从IO垫的输入I获取数据的输出。
块1是生成测试用例以检查IO垫的输入/输出功能的主要测试平台。

以下是用于IO垫的完整Verilog测试平台。

`timescale 1ns/10ps
// hzgifts.cn
// FPGA projects, Verilog projects, VHDL projects
// How to write a verilog 试验台 for bidirectional/ inout port 
module test_IO();

reg DS,OEN,IE,PE,I,din;
wire PAD;
reg wr;
wire C;
// inout port
assign PAD = wr==1 ? din:1'bz;

DIGITAL_IO dut(I,DS,OEN,PAD,C,PE,IE);

initial begin
 // test the pad as an input
 wr=1;
 DS=1;
 OEN=1;
 din=0;
 IE=1;
 PE=1;
 #100;
 din=1;
 #100;
 din=0; 
 #100;
 din=1;
 #100;
 din=0;
 #100;
 din=1;
 #100;
 din=0;
 #100;
 din=1;
 #100;
 din=0; 
 #100;
 wr=0;
 // test the pad as an output
 // by reading data out 
 #1000;
 DS=1;
 OEN=0;
 din=0;
 IE=0;
 PE=1;
 I=1;
 #100;
 I=0; 
 #100; 
 I=1;
 #100;
 I=0; 
 #100;
 I=1;
 #100;
 I=0; 
 #100;
 end 

endmodule 

双向端口的仿真波形:

双向/输入端口的Verilog测试平台

仿真波形显示,当wr = DS = OEN = IE = PE = 1时,IO垫用作输入垫,并且来自双向端口PAD的信号传递到输出C。当DS = PE = 1且OEN = IE时= 0,wr = 0时,IO垫用作输出垫。因此,从输入端口I读取来自双向端口PAD的信号。
简而言之,外卖东西是以下“ assign” Verilog语句:

分配PAD =(wr == 1) din:1'bz;

推荐的 Verilog projects:
2. FIFO存储器的Verilog代码
3. 用于16位单周期MIPS处理器的Verilog代码
4. Verilog HDL中的可编程数字延迟计时器
5. 用于数字电路中基本逻辑组件的Verilog代码
6. 用于32位无符号除法器的Verilog代码
7. 用于定点矩阵乘法的Verilog代码
8. Verilog HDL中的车牌许可证识别
9. 提前进位乘法器的Verilog代码
10。 微处理器的Verilog代码
11。 4x4乘法器的Verilog代码
12 停车场系统的Verilog代码
13 使用Verilog HDL在FPGA上进行图像处理
14。 如何使用Verilog HDL将文本文件加载到FPGA中
15 交通信号灯控制器的Verilog代码
16。 FPGA上的闹钟的Verilog代码
17。 比较器设计的Verilog代码
18岁 D触发器的Verilog代码
19 Full Adder的Verilog代码
20 带testbench的计数器的Verilog代码
21 16位RISC处理器的Verilog代码
22 用于在FPGA上反跳按钮的Verilog代码
23。 如何为双向/输入端口编写Verilog Testbench
28。 解码器的Verilog代码
29。 复用器的Verilog代码
30岁  Verilog中的N位加法器设计
31。 Verilog和VHDL:通过示例解释
32。 FPGA上时钟分频器的Verilog代码
33。 如何在Verilog中生成时钟使能信号
34。 用于PWM发生器的Verilog代码
35岁 Verilog编码与软件编程
FPGA Verilog VHDL课程

1条评论:

  1. 您好..您能否使用FPGA共享数字IC测试仪的vhdl代码。.mailid- [email protected]

    回复删除

热门FPGA项目