Lattice FIFO 使用之FIFO_DC输入输出宽度不同时 的一个注意事项
在使用FIFO_DC的时候,我们知道这个FIFO的一个功能是可以输入输出的数据宽度不一样,比如: 输入数据为128bit,输出数据为16bit,FIFO内部可以实现这样的转换,但是输出的时候是先送出一个数据的高16位呢还是数据的低16bit呢??
最好的验证方法就是实验:
1、建立工程,例化fifo,设置如下:

在上图的设置中,重点是红色粗方框内,总线命令类型:高位在前低位在后。 另外数据的宽度和深度设置的有点大,只是实验可以小一点。这里就这样设置吧。
设置完成后,跑内部的仿真(自带的仿真)。
先是写数据:

从图中可以看出在写信号有效的时候,数据先写入个128b的10进制1,然后是2、 3、 4等等,转化为16进制就是上图中的这样,除了最低位为1 2 3 4 其余的高位都是0,这就是说最低的16bit 为 16‘h0001 或 16'h0002、、、、其余的都为16'h0000。为什么化成16bit,而不是8bit,因为输出的数据的宽度是16bit.
写完之后就是读取数据了。
读数据的时序为:

从上图时序可以看出: 在RdEn有效的时候,数据先出的是16’h0001,然后是16‘h0000,这说明,在输入输出数据宽度不一样的时候,并且总线命令类型为高位在前低位在后,数据输出是先低位再高位的送出。
当然,总线命令类型还有第二种类型: 低位在前高位在后。

则生成之后,仍然仿真。
先是写数据:

和上面一样。
接着读取数据:

这个截图没做好,左边的信号没有截取进来,不过可以看出,从上到下信号依次是: 读取rdclock,q,rden,从图中可以看出,这次与上次的读取数据是有差别的,
这次是先送出高位,后送出低位的。
这是使用FIFO所要注意的一个地方。
同时在使用低位在前高位在后的时候,他的WCNT和RCNT的数值会乱掉,这里要格外注意。

不过可以故意去修正一下:

修正之后的计数是这样的:

这样就可以使用了。
Lattice FIFO 使用之FIFO_DC输入输出宽度不同时 的一个注意事项的更多相关文章
- 父级div宽度100%,子级一个div宽度固定,另一个宽度自适应
<!DOCTYPE html> <html> <head> <title>布局测试</title> <style type=" ...
- USB小白学习之路(8)FX2LP cy7c68013A——Slave FIFO 与FPGA通信(转)
此博客转自CSDN:http://blog.csdn.net/xx116213/article/details/50535682 这个博客只对自己理解CY7C68013的配置有一定的帮助,对于配置CY ...
- 转:FIFO的定义与作用
一.先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令. 1.什么是FIFO? FIFO是英文Firs ...
- 深入理解FIFO
深入理解FIFO(包含有FIFO深度的解释) FIFO: 一.先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行 ...
- FIFO认识(一)
1.什么是FIFO? FIFO是英文First In First Out 的缩写,是一种先进先出的数据缓存器,他与普通存储器的区别是没有外部读写地址线,这样使用起来非常简单,但缺点就是只能顺序写入数据 ...
- 深入理解FIFO(包含有FIFO深度的解释)——转载
深入理解FIFO(包含有FIFO深度的解释) FIFO: 一.先入先出队列(First Input First Output,FIFO)这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行 ...
- 异步FIFO及verilog原码
这几天看了Clifford E. Cummings的两篇大作<Simulation and Synthesis Techniques for Asynchronous FIFO Design&g ...
- 【STM32H7教程】第19章 STM32H7的GPIO应用之按键FIFO
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第19章 STM32H7的GPIO应用之按键FIF ...
- IP核——FIFO
一.Quartus 1.打开Quartus ii,点击Tools---MegaWizard Plug-In Manager 2.弹出创建页面,选择Creat a new custom megafunc ...
随机推荐
- Android Studio如何减小APK体积
最近在用AndroidStudio开发一个小计算器,代码加起来还不到200行.但是遇到一个问题,导出的APK文件大小竟然达到了1034K.这不科学,于是就自己动手精简APK.下面我们大家一起学习怎么缩 ...
- github学习
http://1ke.co/course/194 http://www.jianshu.com/p/0fce531dba31 http://www.liaoxuefeng.com/wiki/00137 ...
- 特性 Attribute
特性就是一个类,必须是Attribute的子类 一般以Attribute结尾,然后在使用的时候,可以去掉这个结尾 可以在特性中声明字段.属性.方法.构造函数.委托.事件... [AttributeUs ...
- Java 随机抽奖
package Third; import java.util.Scanner; public class LotteryOdds { public static void main(String[] ...
- MyBatis源码分析(5)——内置DataSource实现
@(MyBatis)[DataSource] MyBatis源码分析(5)--内置DataSource实现 MyBatis内置了两个DataSource的实现:UnpooledDataSource,该 ...
- Xcode6新特性(1)-删除Main.storyboard
当新建完一个空项目的时候,Xcode会自动创建一个Main.storyboard的空文件,如果不需要,可以将其删除.但是如果删除,再次运行程序,程序会报错,提示找不到Main.storyboard文件 ...
- 关于Window Server2008 服务器上无法播放音频文件的解决方案
在偌大的百度当中查找我所需要的资源信息,但网络上所描述的都不能解决,发生此类问题的人很多,但是都没有得到准确的解决方法!经个人各方面的尝试,其实非常简单的解决了无法播放音频文件的问题,如果各位今后也遇 ...
- 4种scope方法
默认作用域,自动加载: default_scope { order(created_at: :desc) } model 调用 find_2时才运行 scope :find_2, ->{ whe ...
- Linux下实现秒级的crontab定时任务
crontab的格式如下 * * * * * command 分 时 日 月 周 命令 第1列表示分钟1-59 每分钟用*或者 */1表示 第2列表示小时1-23(0表示0点) 第3列表示日期1-31 ...
- WinForm用户控件、动态创建添加控件、timer控件--2016年12月12日
好文要顶 关注我 收藏该文 徐淳 关注 - 1 粉丝 - 3 0 0 用户控件: 通过布局将多个控件整合为一个控件,根据自己的需要进行修改,可对用户控件内的所有控件及控件属性进行修 ...