ISE_FIFO_IP核接口测试(一)
引荐博文:
xilinx FIFO的使用及各信号的讨论
Xilinx ISE FIFO读写操作仿真学习
这两篇博文都很好,一共介绍了两种比较全面的fifo数据接口测量方案。
下面进行博主自己的fifo_ip测试。
后来复习时新写的,互为参考吧各有侧重ISE_FIFO_IP核接口测试(二)
接口代码
这里是生成的ip核的代码接口
fifo_ip fifotest (.rst (rst), // input rst.wr_clk (wr_clk), // input wr_clk.rd_clk (rd_clk), // input rd_clk.din (din), // input [7 : 0] din.wr_en (wr_en), // input wr_en.rd_en (rd_en), // input rd_en.dout (dout), // output [7 : 0] dout.full (full), // output full.almost_full (almost_full), // output almost_full.wr_ack (wr_ack), // output wr_ack.overflow (overflow), // output overflow.empty (empty), // output empty.almost_empty (almost_empty), // output almost_empty.valid (valid), // output valid.underflow (underflow), // output underflow.rd_data_count (rd_data_count), // output [7 : 0] rd_data_count.wr_data_count (wr_data_count), // output [7 : 0] wr_data_count.prog_full (prog_full), // output prog_full.prog_empty (prog_empty) // output prog_empty
);
接口测试
测试代码
module ip_test_fifo(input clk,input rst_n);
wire rst ;
wire [7 : 0] din ;
// wire wr_en ;
wire rd_en ;
wire [7 : 0] dout ;
wire full ;
wire almost_full ;
wire wr_ack ;
wire overflow ;
wire empty ;
wire almost_empty ;
wire valid ;
wire underflow ;
wire [7 : 0] rd_data_count ;
wire [7 : 0] wr_data_count ;
wire prog_full ;
wire prog_empty ;
reg [8:0] din_cnt;
always @ (posedge clk or negedge rst_n)
beginif(!rst_n)din_cnt <= 'd0;else if(din_cnt == 'd511)din_cnt <= 'd0;else din_cnt <= din_cnt + 1'b1;
end
assign wr_en = ((din_cnt >= 9'd10) && (din_cnt <= 9'd100));
assign rd_en = ((din_cnt >= 9'd110) && (din_cnt <= 9'd200));
assign din = (wr_en) ? din_cnt : 'd0; assign rst = ~rst_n ;fifo_ip fifotest (.rst (rst), // input rst.wr_clk (clk), // input wr_clk.rd_clk (clk), // input rd_clk.din (din), // input [7 : 0] din.wr_en (wr_en), // input wr_en.rd_en (rd_en), // input rd_en.dout (dout), // output [7 : 0] dout.full (full), // output full.almost_full (almost_full), // output almost_full.wr_ack (wr_ack), // output wr_ack.overflow (overflow), // output overflow.empty (empty), // output empty.almost_empty (almost_empty), // output almost_empty.valid (valid), // output valid.underflow (underflow), // output underflow.rd_data_count (rd_data_count), // output [7 : 0] rd_data_count.wr_data_count (wr_data_count), // output [7 : 0] wr_data_count.prog_full (prog_full), // output prog_full.prog_empty (prog_empty) // output prog_empty
);endmodule
测试结果
可以看出
1,wr_ack 是用来标记上一个时钟是否成功写入数据的。
2,wr_data_count是在wr_ack拉高之后开始计数,计数为成功写入加一,进行减一是在数据读数的时候,但有时钟延时
3,rd_data_count是计数可以读数的数据个数,同样会优势种
4,数据的写入实在wr_en拉高的同时写入的,没有时钟延时
5,re_en使能信号来临时数据不会立刻出来,会延时一个时钟周期
6,valid信号是标志读有效的,当有数据出时,valid信号拉高
7,空满信号
7,A,空信号:(图三)可以看出,信号是与写数据计数有关
7,B,满信号:这里没有写满,写一个测试案例进行测试
8,其他信号可以不用去处理(需要进行测试的时候补充)或者见测试二
图一
图二
图三
测试代码
always @ (posedge clk or negedge rst_n)
beginif(!rst_n)din_cnt <= 'd0;else if(din_cnt == 'd511)din_cnt <= 'd0;else din_cnt <= din_cnt + 1'b1;
end
assign wr_en = ((din_cnt >= 9'd0) && (din_cnt <= 9'd260));
assign rd_en = ((din_cnt >= 9'd261) && (din_cnt <= 'd511));
// assign din = (wr_en) ? din_cnt : 'd0;
// din = 0;reg [7 : 0] din = 'd0;
assign rst = ~rst_n ;
always @ (posedge clk)
begindin = ~din;
end
测试结果
9,rst信号:这里的复位信号是高电平有效,这也就是为什么有
assign rst = ~rst_n ;
这样一段代码的原因了。
10,读使能信号的有效必须在复位结束后的一两个时钟周期在给,否则写入数据是不能写入的。两种检验方式,第一,通过后面读出的数据,第二,根据wr_ack信号
11,满信号拉高的时候,就已经不能写入数据了(图五,根据wr_ack可知)
12,溢出信号:在数据满信号拉高,数据继续写入,溢出信号拉高
图四
图五
ISE_FIFO_IP核接口测试(一)相关推荐
- ISE_FIFO_IP核接口测试(二)
本文用于测试FIFO(First-in-First-out)IP,将从界面生成,常用接口的介绍,简单的测试文件及仿真截图分析这几个方面介绍ISE工具中FIFOIP核的使用及相关时序 与笔者之前的ISE ...
- 软件测试丨工具在接口测试中发挥什么样的作用?
搜索:TestingStudio 霍格沃兹的干货都很硬核 接口测试究竟是什么?为什么要用接口测试?它有哪些工具呢?这一连串的问题敲击着我们,请带着这些问题,在本文中寻找答案,我将为您打开接口测试的大门 ...
- UT-Exynos4412 三星ARM四核旗舰开发平台android4.0体验-10HDMI功能调试支持
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
- 春眠不觉晓,读书醒醒脑|世界读书日送送送10本硬核书
曾经有人说 从一座城市图书馆的数量 可以看出城市文化底蕴的深浅 而阅读指数关乎国民素质的提升 因此无论是阅读纸质书还是电子书 在提高国民阅读上都有着很大的意义 在生活节奏快速的今天 不少技术派为生活奔 ...
- A40I工控主板(SBC-X40I)CAN接口测试
SBC-X40I产品特性 采用Allwinner公司Cortex-A7四核A40i处理器,运行最高速度为1.2GHZ: 支持Mali-400MP2 GPU,支持OpenGL ES 2.0 / Open ...
- A40I工控主板(SBC-X40I)网络接口测试
SBC-X40I产品特性 采用Allwinner公司Cortex-A7四核A40i处理器,运行最高速度为1.2GHZ: 支持Mali-400MP2 GPU,支持OpenGL ES 2.0 / Open ...
- UT-Exynos4412开发板三星ARM四核旗舰开发平台android4.0体验-12音频输入输出功能调试
经过2012年的等待,四核的开发平台终于跟广大嵌入从业人员见面了,下面让我们来看下UT-Exynos 4412 开发板的详细参数吧,共广大嵌入式开发人员参考. 一.UT-Exynos 4412开发板高 ...
- jmeter接口测试及详细步骤
一.Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. Jmeter可以实现分 ...
- H1--HDMI接口测试应用2022-07-15
HDMI接口应用 1.简介 HDMI接口的全称是高清多媒体接口(High Definition Multimedia Interface),最初在2004年出现,能够同时传输视频与音频信号,而且质量很 ...
最新文章
- SAP PM 初级系列26 - 设备功能位置的Document
- 深拷贝与浅拷贝、空类与空数组
- ubuntu下配置eclipse3.3
- Pidgin Portable 使用点滴
- 单片机利用蜂鸣器如何输出音乐
- print输出字体特效
- php mysql 连接不上_php连接不上MySQL问题解决办法_PHP教程
- Flexslider图片轮播、文字图片相结合滑动切换效果
- 为Windows Phone SDK 模拟器安装应用
- cass转换jpg_【转】南方CASS作原有地形图数字化--对扫描栅格图像进行校正及矢量化...
- charset参数 sqluldr2_SQLULDR2
- Hamcrest匹配器框架
- 二叉树叶子结点个数——C++
- 在多媒体计算机系统中图像的颜色是,图像量化位数越大,记录图像中每个像素点的颜色种类就越多。() - 试题答案网问答...
- python在视频上方加字_使用moviepy给视频加字遇到的坑
- 二、芦哲峰《桃花粉,梨花白》
- MySQL - MySQL 8.0(二)基本操作:对象
- 绿色版软件 tomcat+eclipse的使用
- springMVC的大体结构及工作流程
- 一个项目的流程和前期的准备工作
热门文章
- Java 图片处理解决方案:ImageMagick 快速入门教程
- Python读取文件时出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in position xx: 解决方案
- react-native-echarts 解决数据刷新闪烁,不能动态连续绘制问题(转载)
- 如何删除选择框的所有选项,然后添加一个选项并使用jQuery选择它?
- 对网站实施“记住我”的最佳方法是什么? [关闭]
- 如何通过索引从列表中删除元素?
- win11鼠标指针如何设置 Windows11鼠标指针的设置方法
- geek软件是干什么的_详解强力卸载软件Geek Uninstaller使用教程
- php mixed约束,Mixed Content: 混合被动/显示内容和混合活动内容
- ifpc币_劳力士手表价格表一览表