数字电路中寄存器和RAM在上电之后默认的状态和数据是不确定的,如果有复位,我们可以把寄存器复位到初始状态0,RAM的数据可以通过复位来触发RAM初始化到全0。还有一种情况是逻辑进入到了错误的状态,通过复位可以把所有的逻辑状态恢复到初始值,如果没有复位,那么逻辑可能永远运行在错误的状态。因此复位功能是很重要的一个功能。

同步复位:

同步复位指的是当时钟上升沿检测到复位信号,执行复位操作,有效的时钟沿是前提。

always@(posedge clk)begin

if (rst_n==1'b0)

y<=1'b0;

else

y<=b;

end

优点:

(1)可以使设计的系统成为100%的同步时序电路,有利于时序分析,而且可综合出较高的Fmax。

(2)由于只在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的复位毛刺。

缺点:

(1)复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。同时还要考虑时钟偏移、组合逻辑路径延时、复为延时等因素,所以复位信号有时需要脉冲展宽,用以保证时钟有效期间有足够的复位宽度。

(2)大多数厂商的目标库内的触发器只有异步复位端口,采用同步复位的话,就会耗费较多的逻辑资源。

异步复位:

异步复位指的是无论时钟是否到来,只要复位信号有效,就对系统进行复位。当时钟上升沿检测到复位信号,执行复位操作。

always@(posedge clk  or negedge rst_n )begin

if (rst_n==1'b0)

y<=1'b0;

else

y<=b;

end

优点:

(1)大多数目标器件库的DFF都有异步复位端口,那么触发器的复位端口就不需要额外的组合逻辑,这样就可以节省资源。

(2)异步复位信号产生和响应都很方便(电路在任何情况下都能复位而不管是否有时钟)。

缺点:

(1)最大的问题在于它属于异步逻辑,问题出现在复位释放时,而不是有效时,如果复位释放接近时钟有效沿,则触发器的输出可能进入亚稳态(此时clk检测到的rst_n的状态就会是一个亚稳态,既是0是1不确定的),从而导致复位失败。

(2)可能因为噪声或者毛刺造成虚假复位信号(比如系统正常工作时突然复位)。

(3)静态时序分析比较困难,静态时序分析一般是针对同步设计的,都是基于时钟周期来分析时序的。

(4)对于dft,如果复位信号不是直接来自于I/O引脚,在dft扫描和测试时,复位信号必须被禁止,因此需要额外的同步电路。

异步复位、同步释放:

异步复位同步撤离的目的是为了防止复位信号撤离时,可能产生的亚稳态。复位信号到来的有效与否与clk无关,而且复位信号的撤除也与clk无关,但是复位信号的撤除是在下一个clk来到后才起作用。

always@(posedge clk or negedge rst_async_n)begin

if (!rst_async_n)begin

rst_s1<=1'b0;

rst_s2<=1'b0;

end

else  begin

rst_s1<=1'b1;

rst_s2<=rst_s1;

end

end

assign  rst_sync_n =rst_s2;

always@(posedge clk or negedge rst_sync_n)begin

if (!rst_sync_n)

y<=1'b0;

else

y<=b;

end

FPGA和ASIC中的复位相关推荐

  1. FPGA开发中全局复位置位(GSR)

    最近几天读了Xilinx网站上一个很有意思的白皮书(white paper,wp272.pdf),名字叫<Get Smart About Reset:Think Local, Not Globa ...

  2. FPGA开发中全局复位置位(GSR)简介

      最近几天读了Xilinx网站上一个很有意思的白皮书(white paper,wp272.pdf),名字叫<Get Smart About Reset:Think Local, Not Glo ...

  3. FPGA 和ASIC开发的区别

    FPGA和ASIC区别很多.ASIC的逻辑通常远远大于FPGA的,门数上有数量级的差别,运行时钟也远远高于FPGA.而且,ASIC只有一次机会,FPGA因为可以编程,所以coding的灵活性相对提高. ...

  4. (10)FPGA与ASIC区别

    (10)FPGA与ASIC区别 1 文章目录 1)文章目录 2)FPGA入门与提升课程介绍 3)FPGA简介 4)FPGA与ASIC区别 5)技术交流 6)参考资料 2 FPGA入门与提升课程介绍 1 ...

  5. FPGA与ASIC:它们之间的区别以及使用哪一种?

    FPGA与ASIC:它们之间的区别以及使用哪一种? FPGA Vs ASIC: Differences Between Them And Which One To Use? VL82C486 Sing ...

  6. 如何在FPGA设计环境中加时序约束 SDC (Z)

    如何在FPGA设计环境中加时序约束     在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序的约束.通常,在FPGA设计工具中都FPGA中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器, ...

  7. CPU、GPU、FPGA、ASIC等AI芯片特性及对比

    1.前言 目前,智能驾驶领域在处理深度学习AI算法方面,主要采用GPU.FPGA 等适合并行计算的通用芯片来实现加速.同时有部分芯片企业开始设计专门用于AI算法的ASIC专用芯片,比如谷歌TPU.地平 ...

  8. FPGA或ASIC:我们应该怎么选?

    来源:内容来自半导体行业观察(ID:icbank)编译自eejournal,谢谢. 土耳其伊斯坦布尔 ElectraIC 总经理兼管理合伙人 Ates Berna 最近在 LinkedIn 上发布了一 ...

  9. 入行IC | 一文读懂FPGA与ASIC的区别

    IC行业的范围很广,有数字.模拟不同的研究方向,也有设计.制造.封测不同的产业环节.还有FPGA.ASIC等不一样的芯片领域. 遇到过很多想要入行.转行IC的同学,都有"选FPGA还是ASI ...

最新文章

  1. python OrderedDict 详解
  2. python试卷(有答案版本、个人答案不是官方答案)_python试卷(有答案版本,个人答案不是官方答案).doc...
  3. 学Java发展前景好的三个原因
  4. php sublime 插件安装教程,【图片】【Sublime Text 2神器教程】ST安装、插件及操作详解【php吧】_百度贴吧...
  5. 获取异常信息_如何在 ASP.NET Core 中实现全局异常拦截
  6. Android官方开发文档Training系列课程中文版:连接无线设备之网络服务搜索功能
  7. python绘制三维图散点图_python matplotlib模块——绘制三维图形、三维数据散点图...
  8. 对996最客观的描述,一叶知秋
  9. OpenShift 4 - 基于CPU负载和网络负载的HPA
  10. int main():声明指定了两个以上的数据类型
  11. error C2440: “<function-style-cast>”: 无法从“IplImage *”转换为“cv::Mat”
  12. Citrix为什么要兼容第三方服务器虚拟化平台
  13. 本模型基于Cruise软件搭建整车模型,基于Matlab/Simulink软件搭建整车控制模块,包括整车模式控制、扭矩分配
  14. matlab三维网格绘图函数mesh、meshc、mesh、zmeshgrid、surf【matlab图行绘制五】
  15. 计算机网络什么是p2p,计算机网络-p2p(示例代码)
  16. 魔方机器人之SVM算法识别魔方颜色
  17. oracle实例恢复 redo,ORACLE不完全恢复之current或active状态redo损坏(二)
  18. 常见的电商直播模式有哪些,你都了解过吗?
  19. 工程管理系统源码-专注项目数字化管理
  20. 魔力宝贝 - 窗口分辨率修改

热门文章

  1. ld: symbol(s) not found for architecture i386 只在iPad模拟器上报错,其它模拟器上正常显示
  2. MATLAB与Baxter机器人通信---网络环境配置篇
  3. 含泪整理最优质窗帘 落地3d模型素材,你想要的这里都有
  4. C++代码:整数的个数
  5. 信息时代,为什么还读纸质书
  6. 最牛逼的自媒体平台今日头条申请秘籍,包过!
  7. Android 热修复技术浅析
  8. 测试人高中低音的软件,【精】Q3原车音箱35TFS调试测试与高中低音设置,放音乐调试结果附最后...
  9. 基于深度强化学习的长期推荐系统
  10. Kafka (阿里云 ECS)磁盘类故障修复操作文档