- 1、本文档共49页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FPGA设计中的基本问题
第六讲 FPGA设计中的基本问题 数字电路设计的基本概念 时钟问题 如何提高系统速度 四种基本思想 6.1 数字电路设计基本概念 二、FPGA中的冒险现象 三、消除毛刺 四、清除和置位信号 在同步电路设计中,可以用同步置位的办法来替代异步清0。在用硬件描述语言的设计中可以用如下的方式来描述: 异步清零 process(rst,clk) begin if rst=’1’ then count=(others=’0’); elsif clk’event and clk=’1’ then count=count+1; end if; end process; 五、触发器与锁存器 我们知道,触发器是在时钟的沿进行数据的锁存的,而锁存器是用电平使能来锁存数据的。所以触发器的Q输出端在每一个时钟沿都会被更新,而锁存器只能在使能电平有效器件才会被更新。 在FPGA设计中建议如果不是必须那么应该尽量使用触发器而不是锁存器。 六、FPGA中的延时设计 当需要对电路中的某一信号作一段延时时,可在信号后串接一些“非门”或其它门电路。 但在FPGA中,开发软件会在综合设计时将这些门当作冗余逻辑去掉,达不到延时的效果。可以通过插入LCELL原语或调用延时线模块来产生一定的延时。但这样形成的延时在FPGA芯片中并不稳定,会随温度等外部环境的改变而改变,这样会影响FPGA的性能。 因此,可以用高频时钟来驱动一移位寄存器,需要延时的信号作为数据输入,按所需延时正确设置移位寄存器的级数,移位寄存器的输出即为延时后的信号。此方法产生的延时信号有误差,误差大小由高频时钟的周期来决定。对于数据信号的延时,在输出端用数据时钟对延时后的信号重新采样,就可以消除误差。当然,当所需延时较长时,这样做比较浪费资源。 此外,用VHDL语言进行FPGA设计时,不能用after语句来实现延时,因为目前的综合工具还不能做到如此精确的延时,即程序中的after语句不能被综合。 4.时钟歪斜 电路中控制各元件同步运行的时钟源到各元件的距离相差很大,时钟歪斜就是在系统内不同元件处检测到有效的时钟跳变沿所需的时间差异。若歪斜的程度大于从一边缘敏感存储器的输出到下一级输入的延迟时间,就能使移位寄存器的数据丢失,使同步计数器输出发生错误,故必须设法消除时钟歪斜。 减少时钟歪斜的方法有以下几种: (1)采用适当的时钟缓冲器,或者在边缘敏感器件的输出与其馈给的任何边缘敏感器件输入端之间加入一定的延迟以减小歪斜。 (2)严重的时钟歪斜往往是由于在FPGA内的时钟及其它全局控制线(如复位线)使负载过重造成的,在信号线上接一串线形缓冲器,使驱动强度逐步增大,可以消除时钟歪斜。 (3)在受时钟控制的部件之后分别接入缓冲器,并在两个缓冲器输出端之间接一平衡网络。 (4)采用FPGA内的PLL模块可以对输入时钟进行很好的分频和倍频,从而使时钟歪斜减到最低程度。 6.3 FPGA系统速度 6.5 FPGA设计的注意问题 (1)所有的状态机输入,包括复位、置位信号,都要用同步信号。所有的状态机输出都要用寄存器寄存输出。注意在状态机设计中不要出现死锁状态。 (2)要用寄存器和触发器设计电路,尽量不要用锁存器,因它对输入信号的毛刺太敏感。如果坚持用锁存器设计必须保证输入信号绝对没有毛刺,且满足保持时间。 (3)设计译码逻辑电路时必须十分小心,因为译码器和比较器本身会产生尖峰,容易产生毛刺,把译码器或比较器的输出直接连到时钟输入端或异步清除端,会造成严重的后果。 (4)应该尽量避免隐含RS触发器的出现。一般要控制输出被直接反馈到输入端,采用反馈环路会出现隐含RS触发器,其对输入尖峰和假信号很敏感,输入端有任何变化都有可能使输出值立刻改变,此时易造成毛刺的产生,导致时序的严重混乱。一旦具有隐含的RS触发器,加锁存器消除毛刺是不能解决问题的。此时只有通过全面修改电路来从根本上解决。 (5)每一个模块中只用一个时钟,避免使用多时钟设计,同时避免使用主时钟分频后的二次时钟作为时序器件的时钟输入,因为二次时钟相对于一次时钟可能存在过大的时钟歪斜。对所有模块的输入时钟、输入信号、输出信号都用D触发器或寄存器进行同步处理,即输出信号直接来自触发器或寄存器的输出端。这样可以消除尖峰和毛刺信号。不论是控制信号还是地址总线信号、数据总线信号,都要采用另外的寄存器,以使内部歪斜的数据变成同步的数据。这些表面上看似乎无用的操作可以大大提高电路系统的性能。 (6)应该尽量避免使用延迟线,因它对工艺过程的变化极为敏感,会大大降低电路的稳定性和可靠性,并将为测试带来麻烦。 (7)大部分FPGA器件都为时钟、复位、预置等信号提供特殊的全局布线资源,要充分利用这些资
文档评论(0)