数字电路设计中的时钟设计.doc





《数字电路设计中的时钟设计.doc》由会员分享,可在线阅读,更多相关《数字电路设计中的时钟设计.doc(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、FPGA/CPLD 数字电路设计经验 1FPGA/CPLD 数字电路设计经验分享数字电路设计经验分享摘要:摘要:在数字电路的设计中,时序设计是一个系统性能的主要标志,在高层次设计方法中, 对时序控制的抽象度也相应提高,因此在设计中较难把握,但在理解 RTL 电路时序模型的 基础上,采用合理的设计方法在设计复杂数字系统是行之有效的,通过许多设计实例证明 采用这种方式可以使电路的后仿真通过率大大提高,并且系统的工作频率可以达到一个较 高水平。 关键词:关键词:FPGA 数字电路 时序 时延路径 建立时间 保持时间1 数字电路设计中的几个基本概念:数字电路设计中的几个基本概念:1.1 建立时间和保持
2、时间:建立时间和保持时间:建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时 间,如果建立时间不够,数据将不能在这个时钟上升沿被打入触发器;保持时间(hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间, 如果保持时间不 够,数据同样不能被打入触发器。 如图 1 。 数据稳定传输必须满足建立和保持时间的要 求,当然在一些情况下,建立时间和保持时间的值可以为零。 PLD/FPGA 开发软件可以自 动计算两个相关输入的建立和保持时间(如图 2)图 1 建立时间和保持时间关系图 注:注: 在考虑建立保持时间时,应该考虑时钟树向后偏斜的情况,
3、在考虑建立时间时应 该考虑时钟树向前偏斜的情况。在进行后仿真时,最大延迟用来检查建立时间, 最小延时用来检查保持时间。 建立时间的约束和时钟周期有关,当系统在高频时钟下无法工作时,降低时钟频 率就可以使系统完成工作。保持时间是一个和时钟周期无关的参数,如果设计不 合理,使得布局布线工具无法布出高质量的时钟树,那么无论如何调整时钟频率 也无法达到要求,只有对所设计系统作较大改动才有可能正常工作,导致设计效 率大大降低。因此合理的设计系统的时序是提高设计质量的关键。在可编程器件 中,时钟树的偏斜几乎可以不考虑,因此保持时间通常都是满足的。1.2 FPGA 中的竞争和冒险现象中的竞争和冒险现象信号在
4、 FPGA 器件内部通过连线和逻辑单元时,都有一定的延时。延时的大小与连线 的长短和逻辑单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。 信号的高低电平转换也需要一定的过渡时间。由于存在这两方面因素,多路信号的电平值FPGA/CPLD 数字电路设计经验 2发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会 出现一些不正确的尖峰信号,这些尖峰信号称为“毛刺“。如果一个组合逻辑电路中有“毛 刺“出现,就说明该电路存在“冒险“。(与分立元件不同,由于 PLD 内部不存在寄生电容 电感,这些毛刺将被完整的保留并向下一级传递,因此毛刺现象在 PLD、FPG
5、A 设计中尤为 突出)图 2 是一个逻辑冒险的例子,从图 3 的仿真波形可以看出,“A、B、C、D“四个输入 信号经过布线延时以后,高低电平变换不是同时发生的,这导致输出信号“OUT“出现了毛 刺。(我们无法保证所有连线的长度一致,所以即使四个输入信号在输入端同时变化,但 经过 PLD 内部的走线,到达或门的时间也是不一样的,毛刺必然产生)。可以概括的讲, 只要输入信号同时变化,(经过内部走线)组合逻辑必将产生毛刺。 将它们的输出直接 连接到时钟输入端、清零或置位端口的设计方法是错误的,这可能会导致严重的后果。 所以我们必须检查设计中所有时钟、清零和置位等对毛刺敏感的输入端口,确保输入不会 含
6、有任何毛刺图 2 存在逻辑冒险的电路示例图 3 图 2 所示电路的仿真波形冒险往往会影响到逻辑电路的稳定性。时钟端口、清零和置位端口对毛刺信号十分敏 感,任何一点毛刺都可能会使系统出错,因此判断逻辑电路中是否存在冒险以及如何避免 冒险是设计人员必须要考虑的问题。如何处理毛刺如何处理毛刺我们可以通过改变设计,破坏毛刺产生的条件,来减少毛刺的发生。例如,在数字电 路设计中,常常采用格雷码计数器取代普通的二进制计数器,这是因为格雷码计数器的输 出每次只有一位跳变,消除了竞争冒险的发生条件,避免了毛刺的产生。毛刺并不是对所有的输入都有危害,例如 D 触发器的 D 输入端,只要毛刺不出现在时 钟的上升沿
7、并且满足数据的建立和保持时间,就不会对系统造成危害,我们可以说 D 触发FPGA/CPLD 数字电路设计经验 3器的 D 输入端对毛刺不敏感。 根据这个特性,我们应当在系统中尽可能采用同步电路, 这是因为同步电路信号的变化都发生在时钟沿,只要毛刺不出现在时钟的沿口并且不满足 数据的建立和保持时间,就不会对系统造成危害。 (由于毛刺很短,多为几纳秒,基本 上都不可能满足数据的建立和保持时间)去除毛刺的一种常见的方法是利用 D 触发器的 D 输入端对毛刺信号不敏感的特点,在 输出信号的保持时间内,用触发器读取组合逻辑的输出信号,这种方法类似于将异步电路 转化为同步电路。 图 4 给出了这种方法的示
8、范电路,图 5 是仿真波形。图 4 消除毛刺信号方法之二图 5 图 4 所示电路的仿真波形如前所述,优秀的设计方案,如采用格雷码计数器,同步电路等,可以大大减少毛刺, 但它并不能完全消除毛刺。 毛刺并不是对所有输入都有危害,例如 D 触发器的 D 输入端, 只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成危害。 因此我们可以说 D 触发器的 D 输入端对毛刺不敏感。但对于 D 触发器的时钟端,置位端, 清零端,则都是对毛刺敏感的输入端,任何一点毛刺就会使系统出错,但只要认真处理, 我们可以把危害降到最低直至消除。下面我们就对几种具体的信号进行探讨。1.3 清除和置位信
9、号清除和置位信号在 FPGA 的设计中,全局的清零和置位信号必须经过全局的清零和置位管脚输入,因 为他们也属于全局的资源,其扇出能力大,而且在 FPGA 内部是直接连接到所有的触发器FPGA/CPLD 数字电路设计经验 4的置位和清零端的,这样的做法会使芯片的工作可靠、性能稳定,而使用普通的 IO 脚则 不能保证该性能。在 FPGA 的设计中,除了从外部管脚引入的全局清除和置位信号外在 FPGA 内部逻辑的 处理中也经常需要产生一些内部的清除或置位信号。清除和置位信号要求象对待时钟那样 小心地考虑它们,因为这些信号对毛刺也是非常敏感的。在同步电路设计中,有时候可以用同步置位的办法来替代异步清
10、0。在用硬件描述语 言的设计中可以用如下的方式来描述:异步清 0 的描述方法:process(rst,clk) beginif rst=1 thencount0); elsif clkevent and clk=1 thencount0); elsecount0);elsecount add_12_a_0 add_12_a_0 add_12_a_0 add_12_a_0 X);add_12_b_0 X);end case; end process;-12 bits adder add_12_result_0 0);Carry_0_0 count_buffer(0)(10 downto 0) c
11、ount_buffer(0)(21 downto 11) count_buffer(0)(31 downto 22) Carry_0_2 = 0; end case; end if; end if; end process;2.42.4 信号输出信号输出当你需要将 FPGA/CPLD 内部的信号通过管脚输出给外部相关器件的时候,如果不影响 功能最好是将这些信号通过用时钟锁存后输出。因为通常情况下一个板子是工作于一种或FPGA/CPLD 数字电路设计经验 15两种时钟模式下,与 FPGA/CPLD 相连接的芯片的工作时钟大多数情形下与 FPGA 的时钟同 源,如果输出的信号经过时钟锁存可以起到如
12、下的作用:容易满足芯片间信号连接的时序要求; 容易满足信号的建立保持时间;12CLKSIGSIG2SIG1如上图所示,比如 FPGA/CPLD 在 CLK 的时钟沿 1 锁存一个信号得到 SIG 所示的波形,SIG 信号需要给另外的一个与其接口的芯片,那么该芯片将一定会在 CLK 的时钟沿 2 正确采样 到 SIG 信号。但是如果该信号在 FPGA/CPLD 中输出的时候不是用时钟沿锁存的,那将有可 能出现 SIG1/SIG2 所示的时序关系,则与其接口的芯片在时钟沿 2 处采样该信号的时候有 可能出现建立保持时间不满足要求而出现采样不可靠、沿打沿等情况。另外通过组合逻辑 输出还有可能出现毛刺
13、的情况。所有这些不规范的设计都会引起系统工作时的不可靠、不 稳定的情形。2.5 寄存异步输入信号寄存异步输入信号我们在日常的设计工作中,FPGA/CPLD 总是要与别的芯片相连接的,FPGA/CPLD 会给 别的芯片输出信号,同时也要处理别的芯片送来的信号,这些信号往往对 FPGA/CPLD 内部 的时钟系统而言是异步的,为了可靠的采样到这些输入信号,建议将这些输入信号使用相 应的时钟锁存后在处理,这样做:将原来的异步信号转化成同步来处理; 去除输入信号中的毛刺(特别是对于数据总线);图 FPGA/CPLD 中信号的输入、输出锁存FPGA/CPLD 数字电路设计经验 162.6 FPGA/CP
14、LD 中的时钟设计中的时钟设计无沦是用离散逻辑、可编程逻辑,还是用全定制硅器件实现的任何数字设计,为了成 功地操作,可靠的时钟是非常关键的。设计不良的时钟在极限的温度、电压或制造工艺的 偏差情况下将导致错误的行为,并且调试困难、花销很大。在设计 FPGA/CPLD 时通常采用 几种时钟类型。时钟可分为如下四种类型:全局时钟、门控时钟、多级逻辑时钟和波动式 时钟。多时钟系统能够包括上述四种时钟类型的任意组合。无论采用何种方式,电路中真实的时钟树也无法达到假定的理想时钟,因此我们必须 依据理想时钟,建立一个实际工作时钟模型来分析电路,这样才可以使得电路的实际工作 效果和预期的一样。在实际的时钟模型
15、中,我们要考虑时钟树传播中的偏斜、跳变和绝对 垂直的偏差以及其它一些不确定因素。对于寄存器而言,当时钟工作沿到来时它的数据端应该已经稳定,这样才能保证时钟 工作沿采样到数据的正确性,这段数据的预备时间我们称之为建立时间(setup time) 。数据同样应该在时钟工作沿过去后保持一段时间,这段时间称为保持时间(hold time) 。因此 具体的时钟如图 5 所示。其中网络延迟是指时钟的传播延时以及因为跳变不垂直等效的偏 差,在此基础上考虑一些不确定因素实际的工作时钟沿如图中所示。保持时间(hold)和 建立时间(setup)都是相对于实际时钟跳变而言的。因此在确定电路时序时,必须要考虑 到这
16、些因素,使得建立时间和保持时间符合要求。 为了使电路正常工作,建立时间和保持时间应该分别满足:其中tclock_Q_max是时钟沿变化到数据输出端变化的最慢变化情况,tlogic_max是寄存器间组合逻辑的最大可能延迟,tclock_Q_min和tlogic_min表示最快情况。在考虑建立保持时间时,应该考虑时钟树向后偏斜的情况,在考虑建立时间时应该考虑时钟树向前偏斜的情况。在 进行后仿真时,最大延迟用来检查建立时间,最小延时用来检查保持时间。holdsetup理想 跳变网络 延迟实际时 钟沿网络 延迟实际时 钟沿理想 跳变网络 延迟有效工作区图 5 工作时钟模型skewsetupicQclo
17、ckclocktttttmax_logmax_min_logmin_icQclockskewholdttttFPGA/CPLD 数字电路设计经验 172.6.1 全局时钟全局时钟对于一个设计项目来说,全局时钟(或同步时钟)是最简单和最可预测的时钟。在 PLD/FPGA 设计中最好的时钟方案是:由专用的全局时钟输入引脚驱动的单个主时钟去钟控 设计项目中的每一个触发器。只要可能就应尽量在设计项目中采用全局时钟。PLD/FPGA 都 具有专门的全局时钟引脚,它直接连到器件中的每一个寄存器。这种全局时钟提供器件中 最短的时钟到输出的延时。图 1 示出全局时钟的实例。图 1 定时波形示出触发器的数据输入
18、 D1.3应遵守建立时间 和保持时间的约束条件。建立和保持时间的数值在 PLD 数据手册中给出,也可用软件的定 时分析器计算出来。如果在应用中不能满足建立和保持时间的要求,则必须用时钟同步输 入信号(参看下一章“异步输入”)。图 1 全局时钟(最好的方法是用全局时钟引脚去钟控 PLD 内的每一个寄存器,于是数据只要遵守相对时 钟的建立时间 tsu 和保持时间 th)2.6.2 门控时钟门控时钟在许多应用中,整个设计项目都采用外部的全局时钟是不可能或不实际的。PLD 具有 乘积项逻辑阵列时钟(即时钟是由逻辑产生的),允许任意函数单独地钟控各个触发器。 然而,当你用阵列时钟时,应仔细地分析时钟函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电路设计 中的 时钟 设计

限制150内