mafan88的个人空间 https://blog.eetop.cn/162539 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Quartus笔记3—— 复位设计

已有 962 次阅读| 2011-9-19 19:03 |个人分类:IC设计

Quartus笔记3—— 复位设计  


本篇大部分内容参考了其他网友的内容,因为在设计中也遇到了复位问题,所以在这里总结记录。

复位的目的就是让电路在上电之后有一个确定的初始状态,而很多时候我们设计的复位电路没有能够达到这个效果。

1. 同步复位电路    

             

()Quartus笔记3—— 复位设计 - donglianjie2005 - donglianjie2005的博客

    同步复位信号在时钟有效沿到达时才能起作用,复位信号成为逻辑路径中的一部分,同时可以滤掉复位信号中的毛刺,使用起来比异步复位简单方便。     一般如果在同步电路内部产生异步的控制信号,这样容易产生毛刺。但同步复位信号的译码要比需要作用的时刻提前一个时钟周期。

当系统上电后,晶振还没有起振,或者锁相环还未稳定,这时候没有时钟,所以同步复位没有起作用,总线上就有可能发生冲突,产生短路,只有增加异步上电复位电路才能解决此问题;由于异步复位不需要时钟,对于系统的突发事件复位也要采用异步复位方式。

 

2. 异步复位电路    

 

ScreenShot002

 

异步复位电路是指 复位信号连接在专用复位端,和时钟没有关联,可以再任何时候进行复位。

异步复位的优点:无需额外的逻辑资源,实现简单,而且CPLD有针对复位信号的全局专用不限资源,可以保证复位管脚到各个寄存器的clock skew最小(注意不是到各个寄存器的延迟最小);

异步复位缺点:

1). 复位信号容易受到外界的干扰,产生毛刺,导致进入不希望的复位;

2). 异步复位信号释放的随机性,可能导致亚稳态。对于状态机来说,不稳定的复位将导致进入不确定的状态。

 

 上面说了那么多,问题出来了:1. 在VHDL代码中如何实现上述两种复位呢2. 有没有更可靠的复位形式呢?

3. VHDL 实现

同步复位和异步复位的区别就在于,复位信号和时钟 有没有关系。VHDL 代码实现的差异,就是是否将复位语句放入 时钟内。 下面以一个 10 循环计数器为例说明。 

同步复位 VHDL 代码:

()Quartus笔记3—— 复位设计 - donglianjie2005 - donglianjie2005的博客 

同步复位 RTL  视图:

()Quartus笔记3—— 复位设计 - donglianjie2005 - donglianjie2005的博客

异步复位 VHDL 代码:

()Quartus笔记3—— 复位设计 - donglianjie2005 - donglianjie2005的博客

异步复位 RTL  视图:

()Quartus笔记3—— 复位设计 - donglianjie2005 - donglianjie2005的博客

顺便提一下,signal 和 variable 的区别。可以理解为《 变量赋值语句生成组合电路,是不受时钟边沿控制的。信号赋值语句形成一个D触发器,受时钟边沿控制。另外 变量必须只能在进程内使用。》

 

4. 异步复位,同步释放

altera 推荐使用 异步复位电路,并给出 异步复位,同步释放 电路形式。()

时序图:


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 6

    粉丝
  • 0

    好友
  • 15

    获赞
  • 6

    评论
  • 105786

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-23 19:49 , Processed in 0.014973 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部