如何为双向/ inout端口编写Verilog TestBench

这篇文章描述了如何写作 verilog. 用于双向或InOut端口的测试窗。这发生在包含双向或inout的特殊设计中 诸如I2C核心,IO焊盘,存储器等端口。 

在这篇文章中,我将举个例子如何写作 试验台 数字的代码 IO. 软垫。基本上,IO焊盘具有逻辑输入DS,OEN,IE,PE,可将IO焊盘配置为输入或输出。当DS = OEN = IE = PE = 1时,IO焊盘用作输入焊盘。因此,来自双向端口焊盘的数据被写入输出C.当DS = PE = 1和OEN = IE = 0时,IO焊盘作为输出焊盘操作。因此,来自输入I的信号被传递到双向端口焊盘。
verilog.测试Bidirectional / Inout Port的测试台

verilog. TestBench的框图

如Verilog Testbench的框图所示,所测试的IO焊盘是DUT块。 块0控制InOut端口键盘如下所示:


分配垫= WR == 1? DIN:1'BZ;

当WR == 1时,INOUT端口焊盘作为输入运行,因此填充= DIN。当WR == 0时,InOut Port Pad被分配给高阻抗1'BZ。因此,它成为从IO焊盘的输入I获取数据的输出。
块1是主测试窗,以生成测试用例检查IO焊盘的输入/输出功能。

下面是IO垫的完整Verilog Testbench。

`timescale 1ns/10ps
// yl315.net
// FPGA projects, verilog. projects, VHDL projects
// How to write a verilog testbench 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 

Bidirectional端口的模拟波形:

verilog.测试Bidirectional / Inout Port的测试台

模拟波形表明,当WR = DS = OEN = IE = PE = 1时,IO焊盘作为输入键操作,并且来自双向端口焊盘的信号被传递到输出C.当DS = PE = 1和OEN = IE时= 0,WR = 0使IO焊盘作为输出焊盘运行。因此,从输入端口I读取来自双向端口焊盘的信号。
简而言之,外带的东西是以下'分配'Verilog语句:

分配垫=(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。 VERILOG代码D触发器
19。 完整加法器的Verilog代码
20。 与测试台的计数器的Verilog代码
21。 16位RISC处理器的Verilog代码
22。 FPGA上的按钮的Verilog代码
23。 如何为双向/ inout端口编写Verilog TestBench
28。 解码器的Verilog代码
29。 多路复用器的Verilog代码
30.  Verilog中的n位加法器设计
31。 verilog. vs vhdl.:通过示例解释
32。 FPGA时钟分频器的Verilog代码
33。 如何在Verilog中生成时钟使能信号
34。 PWM生成器的Verilog代码
35。 verilog.编码VS软件编程
FPGA Verilog VHDL课程

1条评论:

  1. 您好.. .Can U PLS使用FPGA的数字IC测试仪共享VHDL代码..Mail ID- [email protected]

    回复删除

趋势FPGA项目