在设计中,读afifo时需要根据afifo数据输出的拍数进行数据采样。

数据采样时,建议使用非空判断后产生的vld信号进行数据采样,避免因空读产生无效的数据输出。如下文,afifo_rd_en是 afifo的读使能,afifo_rd_en_dly1是afifo读使能打一拍后的信号。afifo_rd_data_vld 是afifo输出有效valid,是由afifo_rd_en && (!empty)打拍后产生的,产生空读时afifo_rd_data_vld为0,推荐使用afifo_rd_data_vld进行数据采样,当afifo没有数据时,afifo_rd_en即使有效,也不会输出无效数据。不推荐使用afifo_rd_en_dly1进行数据采样,否则当afifo内部没有数据时也会产生data_vld。当然如果afifo_rd_en的产生逻辑没有问题也不会出现问题,但方式1的自我保护能力更强,更推荐使用

//方式1:推荐使用方式,应该使用afifo_rd_data_vld作为有效信号
always @(posedge rd_clk or negedge rd_rst_n)if(~rd_rst_n)data_out <= 1024{1'b0}};else if(afifo_rd_data_vld)                        data_out  <=  afifo_rd_data;always @(posedge rd_clk or negedge rd_rst_n)if(~rd_rst_n)data_vld <= 1'b0 ;else                     data_vld  <=  afifo_rd_data_vld;//方式2:不推荐方式,
always @(posedge rd_clk or negedge rd_rst_n)if(~rd_rst_n)data_out <= 1024{1'b0}};else if(afifo_rd_en_dly1)                        data_out  <=  afifo_rd_data;always @(posedge rd_clk or negedge rd_rst_n)if(~rd_rst_n)data_vld <= 1'b0 ;else                     data_vld  <=  afifo_rd_en_dly1;//-------------------------------------------//
//afifo外部代码
always @(posedge rd_clk or negedge rd_rst_n)if(~rd_rst_n)afifo_rd_en_dly1 <= 1'b0;else                         afifo_rd_en_dly1  <=  afifo_rd_en;//如下部分为afifo内部代码
input     afifo_rd_en,
output    afifo_rd_data_vld,
output  [1023:0]  afifo_rd_data,assign afifo_ren = afifo_rd_en && (!empty);bit_delay
#(
.DELAY_CYCLES (1),
.INIT_VAL     (0)
)
bit_delay_u0(.clk     (rd_clk),   .rst_n   (rd_rst_n),.inbit   (afifo_ren),.outbit  (afifo_rd_data_vld)
);

IC设计高级012:afifo读数据用什么信号采样相关推荐

  1. linux mipi驱动分析_寒武纪社招内推数字IC设计、DSI驱动、软件架构、产品经理、芯片架构、工具链开发、深度学习、FAE工程师...

    点击上方蓝字关注我吧! 为什么内推更靠谱?内推是基于人脉关系链的推荐,其背后有一定的信用背书,靠谱的人推荐的人相对也会比较靠谱,所以企业一般职位都是从内部开始分享的,相较于自己海投简历,内推的效率和成 ...

  2. verilog hdl数字集成电路设计原理与应用_数字IC设计经典书籍推荐

    数字IC设计流程很复杂,从前端到后端,也有很多职位.在这里整理了个数字IC各个环节的经典必读书籍.市面上的书籍种类纷繁复杂,这里每种只推荐两本左右,如果需要,建议知识类的书籍还是购买正版,尊重作者,也 ...

  3. 半导体公司IC设计环境概况

    我现在的公司是家专门做半导体芯片设计的,算是一家不大不小的中型企业,这也就注定,里面的硬件环境无法和大型公司媲美,因为预算等各方面的原因,所以,里面所有的系统都是用Linux,服务器全部使用的是DEL ...

  4. 数字IC设计经典书籍

    1 <Verilog HDL高级数字设计> 中文版和原著.这本书本人以为是讲Verilog方面的最好的一本书,看完此书后,相信大家的code水平会有很大提高.书中例子及其丰富,涵盖了RIS ...

  5. IC - 什么是数字IC设计?

    什么是数字IC设计? 数字集成电路设计是一个程序化的过程,包括将规格和特性转换成数字块,然后再进一步转换成逻辑电路.与数字集成电路设计相关的许多限制来自铸造工艺和技术限制. 在数字集成电路设计的更高层 ...

  6. 2012年中国本土IC设计企业排名TOP10

    为了近距离了解中国IC设计公司,特精心整合推出中国IC设计TOP10厂商发展现状及产业格局分析. TOP1展讯通信 展讯公司自成立以来,就一直立足于自主技术创新,采用独特的设计理念和方法,研制成功多款 ...

  7. 数字IC设计工程师笔试面试经典100题

    1:什么是同步逻辑和异步逻辑? 同步逻辑是时钟之间有固定的因果关系.异步逻辑是各时钟之间没有固定的因果关系.同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来 ...

  8. Verilog十大基本功7 (IC设计经典书籍)

    来自:https://blog.csdn.net/limanjihe/article/details/52674827 学习数字IC设计一段时间,总结一下自己学习期间遇到的比较好的书籍,希望能给大家一 ...

  9. Cadence IC设计环境搭建( IC617+MMSIM151+Calibre2015)

    做IC版图设计,必不可少的环境搭建,是在Linux上进行开发,此类的安装教程网上比较少,自己也是跌跌撞撞,最终耗了一天的时间才装好呵呵呵~,期间主要参考了下面文章. 1. 知乎文章 2. 简书文章 3 ...

最新文章

  1. windows系统服务器数据库,windows系统的服务器肿么访问数据库
  2. HTML5 实现手机拍照上传
  3. linux系统管理常用命令
  4. js实现上传图片及时预览
  5. EMR Spark Runtime Filter性能优化
  6. python一行代码迷宫_通过Python代码实现走迷宫的方法
  7. 调整idea中控制台及右侧提示框字体大小
  8. cannot find mysql.frm_mysql 问题 - Run佳的个人空间 - OSCHINA - 中文开源技术交流社区...
  9. HDU1465 不容易系列之一【递推】
  10. .xyz文件_Orca.xyz:除了银行系统瑞士还有同样安全的数字保险箱
  11. Linux搭建Redis集群(搭建集群必看)
  12. Servlet 身份验证体系结构(源码)
  13. 基于python的词频分析
  14. 揭露SAP培训机构的套路
  15. GoJS学习-节点渐变背景色
  16. postman接口测试之断言+参数化
  17. MAC电脑突然开不了机的解决方案
  18. [文献翻译自用]运用本地差分隐私的基于物品的协同过滤
  19. Invalid format specifier的解决方法
  20. 使用Excel打造一款个人日志系统

热门文章

  1. 安卓小米系统开发一些适配问题
  2. cTorrent-linux命令行BT下载工具 cTorrent下载
  3. Excel 2010打开两个窗口----最终解决版本
  4. 【Vulnhub系列】DC1
  5. 如何严谨地做性能测试
  6. Linux网络文件共享服务(一)存储类型和文件传输协议FTP
  7. 面试:系统启动流程简介
  8. HTML基础--CSS3(二)
  9. 国产化网管软件的开发与应用
  10. 诚之和:苹果被爱立信起诉要5G专利费 这下麻烦大了