### FPGACPLD 数字电路设计经验分享 #### 一、数字电路设计中的关键概念 ##### 1.1 建立时间和保持时间 在数字电路设计领域,特别是涉及FPGA/CPLD的设计过程中,时序设计的重要性不言而喻。其中,建立时间和保持时间是确保触发器正确工作的两个关键参数。 **建立时间(Setup Time)**:指的是在触发器的时钟信号上升沿到来之前,数据必须稳定不变的时间。如果建立时间不足,数据将无法在时钟上升沿被正确捕获进入触发器。 **保持时间(Hold Time)**:指在触发器的时钟信号上升沿之后,数据必须继续维持不变的时间。如果保持时间不足,数据也可能无法被正确记录。 为了确保数据的准确传输,必须满足建立和保持时间的要求。在某些特殊情况下,这两个时间可能为零。PLD/FPGA的开发软件能够自动计算出两个相关输入的建立时间和保持时间。 **注意点**: - 在考虑建立保持时间时,应考虑到时钟树的偏斜情况。 - 在后仿真时,使用最大延迟来检查建立时间,而最小延迟用于检查保持时间。 - 建立时间与时钟周期紧密相关;当系统无法在高频时钟下运行时,降低时钟频率可以使系统正常工作。 - 保持时间则是一个相对固定的参数,不受时钟周期的影响。设计不合理会导致布局布线工具无法构建高质量的时钟树,此时无论调整时钟频率都无法解决问题,需要对设计进行重大修改。 - 对于可编程器件,由于时钟树的偏斜几乎可以忽略不计,因此保持时间通常都能得到满足。 #### 二、FPGA中的竞争和冒险现象 在FPGA设计中,信号通过内部连线和逻辑单元时会有一定的延时。这种延时受到多种因素的影响,包括连线的长度、逻辑单元的数量、制造工艺、工作电压和温度等。 **竞争与冒险**:当多个信号同时变化时,由于各个信号经过内部连线和逻辑单元的时间不一致,可能会在组合逻辑电路的输出端产生短暂的不正确的尖峰信号,即“毛刺”。“毛刺”的出现表明电路中存在“冒险”。 **解决办法**: 1. **改进设计结构**:通过更改设计结构,破坏毛刺产生的条件。例如,使用格雷码计数器代替传统的二进制计数器,因为格雷码计数器的输出每次仅有一位发生跳变,从而避免了毛刺的产生。 2. **利用同步电路**:将电路设计成同步电路,这样信号的变化仅发生在时钟沿,只要毛刺不在时钟沿出现并且符合建立和保持时间的要求,就不会对系统产生负面影响。 #### 三、总结 在FPGA/CPLD数字电路设计中,理解和应用时序控制是至关重要的。通过合理的设计方法,不仅可以提高电路的后仿真通过率,还能使系统的工作频率达到较高的水平。在实践中,需要注意建立时间和保持时间的设置,以及避免竞争和冒险现象的产生。此外,采取适当的设计策略,如使用格雷码计数器和同步电路,可以有效减少或消除毛刺,确保电路的稳定性和可靠性。 通过这些经验和技巧的应用,设计师可以更好地应对数字电路设计中的挑战,提高设计质量和效率。
剩余26页未读,继续阅读
- 粉丝: 2
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论1