工程中FIFO空,满,将空,将满标志使用
来源:互联网 发布:淘宝拍卖二手车靠谱吗 编辑:程序博客网 时间:2024/06/05 19:36
最近跳槽到了一家公司做硬件防火墙,第一次真真正正的用Verilog做工程,学到了很多东西,尤其对FIFO的empty,full,aempty,afull感触很深,使用好了,可以提高系统性能,使用不当,会造成性能下降,甚至会出现FIFO写、读反转,造成空、满标志同时拉起,系统挂死。
防火墙处理的对象是报文,下面的例子就直接取的项目中的实际情况。
一般设置afull为能再容纳一个完整的报文且FIFO不会满,如32*144的字节FIFO,一个报文为6PAT,afull最好设置为24或者更低,这样当看到afull拉起时,并反压上级模块时,可以在写进去一个完整的报文,且不会反转,
empty标志最好在状态机或流水线的第一级就判断,如不满足,需等待fifo非空,不要等状态机跳转到了某一状态后再判断,此时如果为空,会造成逻辑错误。如在BM地址管理中,如果该报文需要申请BM地址,就必须判断bm地址非空,否则就必须在idle状态等待,如果跳转到了这一状态,发现为空,选择不读,此时rdata为上次读取数据,会造成数据被覆盖,出现错误。
此外,full,aempty在项目很少用,full是尽力避免的情况,aempty有可能会造成fifo中数据读不完。
0 0
- 工程中FIFO空,满,将空,将满标志使用
- C/C++实现FIFO(FIFO满,写失败;FIFO空,读失败
- js 将数组清空
- xcode6中新建空工程
- 标志接口,空接口,
- 将空标签替换为空元素标签
- 如何将datetimepicker默认设置为空?
- 如何将datetimepicker默认设置为空?
- 将viewstate值设置为空
- 将input file 内容清空
- 将字符串数组清空的操作
- mybaits将0值判断为空
- 将字符串中的空字符串去掉
- keil4如何将数组清空
- keil4如何将数组清空
- Mybatis将整数0识别为空
- springMVC将属性""空字符串转为null
- 1>创建一个空的LinkedList通过使用ListIterator,将若干个Integer插入这个List中,插入时总是将他们插入到List的中间.
- 虚拟机CentOS_6.3通过nat方式上网
- 如何解决 “fatal error C1083: ”无法打开包括文件
- dojo表格的一些属性
- fdisk
- iOS KVO & KVC
- 工程中FIFO空,满,将空,将满标志使用
- 万能js实现翻页,动态生成内容自动翻页,兼容各种浏览器(已测试)----神器版!
- UVA 11800 - Determine the Shape 几何
- 0400000080
- Spring框架核心
- python中单引号,双引号,多引号区别
- 陌陌卸下“约炮”皮
- 0400000081
- Timer类 和 TimerTask类。一种有用计时器工具。可以每隔相同时间去执行某任务一次。