组合逻辑反馈.docVIP

  • 75
  • 0
  • 约4.22千字
  • 约 5页
  • 2018-11-23 发布于河南
  • 举报
组合逻辑反馈

10月16日组合逻辑的反馈是大忌啊~ 下面是转来的读书笔记~ 写的不错,收藏了~? 在用HDL设计时,理解综合工具如何解释不同的HDL代码风格和预期结果是非常重要的。设计人员的代码风格会影响逻辑的利用率和时限性能。本文讨论一些基本的设计技术,确保FPGA最佳的综合结果,同时避免一些不可靠和不稳定的因素。设计人员应当认真设计组合逻辑以避免潜在的问题,同时应注意时钟方案保证同步功能。 组合逻辑结构 组合环路 组合环路是数字逻辑设计中不稳定性和不可靠性最常见的原因之一。在同步设计中,所有的反馈环路都应该包括寄存器。组合环路直接建立没有寄存器的反馈,违反了同步设计的原则。例如,当算术表达式的左边也出现在右边,就会发生组合循环。当把一个寄存器输出通过组合逻辑反馈给同一个寄存器的异步管脚时,也会产生组合环路,见图1。 图1 通过异步控制管理的组合循环(略) 组合环路是高风险的设计结构,这是因为: ● 组合环路的功能通常依靠环路逻辑的相对传播延迟。正如所讨论的,传播延迟可能改变,那么环路行为也可能发生改变。 ● 在一些设计工具中,组合环路可能造成无尽的计算循环。大部分的工具会打断组合环路进行处理。设计流程中所用的不同工具会以不同的方式打断同样的环路,这样可能和设计初衷不一致。 延迟链 当两个以上连续的单输入单扇出节点引起延迟时,就会产生延迟链。通常, 把反相器连在一起增加延迟。延迟链通常是由异步设计引入的,有时是用来解决其它组合逻辑引起的竞争冒险。FPGA延迟会随每次布局布线的变化而改变。延迟链可能引起不同的设计问题,包括增加了设计对工作条件的敏感性,减小了设计的可靠性,不利于移植到其它器件结构上。在设计中要避免使用延迟链,而应采用同步设计。 脉冲发生器和多频振荡器 设计者有时用延迟链来产生单个脉冲(脉冲发生器)或一系列脉冲(多频振荡器)。脉冲生成有两种常见的方式,这些技术完全依靠异步逻辑,应该避免: ● 触发信号送给一个两输入AND或OR门的输入,但给其中一个输入设计反相或延迟链。脉冲的宽度取决于直接进入门和经过延迟进入门的这两个通道的相对延迟。输入发生变换,这同样在组合逻辑上产生毛刺。这种技术可以用延迟链,人为地增加脉冲信号的宽度。 ● 寄存器的输出经过一个延迟链驱动同一个寄存器的异步复位信号。本质上就是寄存器在经过一定延迟之后异步复位自己。 这些设计的主要问题是综合和布局布线软件很难确定、设置或验证脉冲的宽度。只有在布局布线之后,知道布线和传播延迟之后才能最后确定实际的脉冲宽度。所以,在编写HDL代码时,很难可靠地确定脉冲的宽度,也无法用EDA工具来设置这个宽度。在所有的PVT条件下,脉冲可能并不够宽。如果移植到不同的器件上,脉冲宽度就会改变。另外,静态时限分析并不能用来验证脉冲宽度,所以验证是非常困难的。 多频振荡器除了用组合环路,把电路变成振荡器外,还采用了毛刺生成器的方式来产生脉冲。因为它涉及到多个脉冲,所以这种结构所带来的问题比脉冲生成器要多得多。另外,当结构生成多个脉冲时,它们也会增加设计的频率。 当需要使用脉冲生成器时,应该按照图2的纯同步技术来实现。 在本例设计中,脉冲宽度总是等于时钟周期。这种脉冲生成器是可预测的,可以用时限分析还验证,而且易于移植到其它体系、器件或速度等级。 图2 推荐采用的脉冲生成技术(略) 图3 推荐采用时钟生成技术(略) 锁存器 在数字逻辑中,锁存器保留一个信号的值直到赋予其一个新的值。当设计者不打算使用锁存器,HDL代码也会暗指出锁存器来保存值。FPGA拥有大量的寄存器,因此基于锁存器的设计比基于寄存器的设计要占用更多的逻辑,性能降低。 锁存器会造成设计中的各种困难。虽然锁存器是和寄存器类似的存储单元,但是它们根本上是不同的。当锁存器工作在feed-through模式下,就是数据输入和输出的直接通路。输入数据的毛刺也会传送到输出。锁存器的时限本来就很不明确。例如在分析带有D锁存器的设计时,软件无法确定设计人员是否打算在时钟的前沿或后沿把数据输出。在一些情况下,只有最初的设计者才会知道设计的全部考虑,因而另一个设计者不可能很容易地移植设计或重用代码。 在设计组合逻辑时,某些代码风格可能产生窃て诘乃?存器。例如,当CASE或IF语句没有覆盖所有可能的输入条件时,如果没有赋于新的值,就可能产生锁存器来保持输出结果。在IF或CASE表达中遗漏最后一条ELSE语句或WHEN OTHERS语句也可能产生锁存器。为了避免产生非预期的锁存器,必须将缺省CASE或最后的ELSE语句赋给一个dont care值。 时钟方案 内部生成的时钟 避免使用内部生成的时钟,因为它们可能引起设计中的功能和时限问题。由组合逻辑产生的时钟会引入毛刺会造成功能问题,而引入的延迟则

文档评论(0)

1亿VIP精品文档

相关文档