从FPGA转换到门阵列
时间:08-31
来源:互联网
点击:
概述
从FPGA或PLD转换到门阵是经济高效的,有时甚至只需几百个单元就能实现。这已经引起越来越多设计者提出同样的问题:这种转换设计需要什么后续技术?事实上转换到门阵面临着许多电路的时序问题,这在FPGA设计中是不被注意的。
本文论述了转换时遇到的几种由于设计不当所造成的时序问题,提出了避免这些问题的方案。同时对时序变化的部分原因及充分利用门阵列技术亦在文中进行了讨论。
时序上的差异
如果知道原始设计电路工作中每一步时序上的裕量,Orbit保证无论FPGA是否模拟过,都可以成功完成转换,而使用其ATPG和结合缺省模拟分级确保了这一点。在转换完成前,由用户模拟或由Obrit ATPG产生的测试向量,用IC测试仪对FPGA进行测试。如果是用户提供的测试装置或测试向量,此时需分析时序情况,验证系统功能。注意:只有管腿到管腿的测试向量才有助于确认转换的正确性,设置内部节点的模拟向量在芯片级的验证模拟时是无用的。
毛刺信号的产生
许多逻辑电路能产生小的,寄生的信号,称作为毛刺信号。无法预见毛刺信号可通过设计来传播并产生不需要的时钟脉冲。任何组合电路都可能是潜在的毛刺信号的发生器,当毛刺信号影响后续电路时,就成为一个较大问题。
图1用于说明与门的输出变化与否依赖于线路的延时。假定图中信号AO总比BO提前5ns到达。
情况1:信号A1的延时为10ns,B1为20ns,那么与门的输出一直为低电平。
情况2:信号A1的延时为20ns,B1为10ns,那么与门的输出为5ns的高电平,其余为低电平。
情况3:两路信号延时都很小(如同在门阵列中一样),那么与门的输出一直为低电平。
上述差异的重要性完全依赖于信号的用途。如果电路输出后续由触发器锁定,情况2中非期望的毛刺信号可能被忽略;而如果毛刺信号在后续电路中被看作是有意义的信号,那么情况1和情况3中由于没有产生毛刺信号,就会致使电路工作不正常。
开启时钟
许多设计中出现的问题都与如何使用时钟有关。
图2用于解释由逻辑门控制时钟所诱发的问题。逻辑门的介入使得时钟到第二个触发器出现了特殊路经。要考虑两条线路的长度:一是CLK_IN到FF2的D输入端,另一是从CLK_IN到FF2_C端。要验证两种情况:1、数据的变化在时钟信号的上升沿之后到达FF2;2、数据的变化在时钟信号的上升沿之前到达FF2。
情况1中,要改变FF2_Q,需要两个CLK_IN上升沿,而情况2中只需一个CLK_IN的上升沿。当路径2的延迟太长时,FF2_Q变化将早到一个时钟周期。这种设计逻辑特性很大程度上依赖于延迟路径。
替代的方案是用逻辑门来控制数据,而不是用时钟。由于全局时钟信号用于两个触发器,它们几乎在同一时间记录数据。实际上,FPGA中新的路径1几乎一定长于新路径2,这将确保电路的行为同情况1。当电路转换到门阵列时,必须仍保持这种相同。
总之,要尽量减少或者不使用逻辑门控制时钟信号,因为它会在时钟和数据之间产生较多的扭曲。 如果时钟信号上由逻辑等式产生,那么这种方法就会有一些自身的问题。如果全局时钟信号线不用于路由派生时钟,那么时钟的同步上会有一些重要的差别。如果出于不同的用途分别产生时钟,情况甚至会变得更糟。
全局时钟信号的使用
在长串寄存器链中,这个问题会在多处出现。此电路的一个替代方法如图3所示。使用CLK信号,用第二个与门消除了多路时钟。这样只产生一个时钟信号到触发器串。图3中触发器串的时钟信号是系统时钟通过门延迟得到的,当到达触发器串的数据与触发器串的时钟不同步时,将在两个路径间产生竞争。一路是触发器串的数据输入路径,另一路是系统时钟到达触发器串的时钟输入端路径。解决方案是用系统时钟的下降沿触发的单独触发器串记录数据。
状态检测:
如果不考虑电路钟的延迟,状态机的状态检测可能会出错。如果用组合逻辑来产生复位信号,那么即使是同步电路也会产生问题。
尽量保持状态控制逻辑(如计数器、分频器等)少于10位。如果超过10位,长计数器应该有用于监视内部状态的抽头,或者至少有一预置的功能。这些监视用抽头应能够很容易地将数据传送到输出引脚,以便监测。
复位问题:
如同时钟一样,如果使用组合逻辑或者不详细考虑时序,复位信号也能产生一系列问题。
图4示出了一种产生短脉冲的方法:当触发器D输入是高电位时,每个时钟周期后Q端产生一个短脉冲。复位信号是低电位有效,Q(输出高电位时不引起复位。当时钟的上升沿到来时,如果D端是高电位,Q(输出变低,导致触发器复位。然后Q(又被拉回到高电位,从而结束复位。为避免组合复位信号的问题,可以使用图5所示得另一触发器的输出来驱动复位信号。
执行问题:
当逻辑等式用于描述一种功能,而编辑器用于产生逻辑关系时,情况变得更有趣。考虑最近发现的一个例子:
if T,OUT=/A
else,OUT=B
如图6,尽管电路在逻辑上是正确的,但当T变化时会产生毛刺信号。A=0,B=1时出现问题。图7为简化电路。信号T仅仅用作模式切换。当系统在工作台上测试时,毛刺信号绝不会是问题。当随后使用自动系统测试时,要考虑很多效应以找到系统错误的根源。图7所示的逻辑在门阵列实现时,将可能在不需要的时候产生脉冲。事实上,这个问题是转换到门阵列实现时发现的,正可以解释自动的系统测试期间所出现的反常现象。
从FPGA或PLD转换到门阵是经济高效的,有时甚至只需几百个单元就能实现。这已经引起越来越多设计者提出同样的问题:这种转换设计需要什么后续技术?事实上转换到门阵面临着许多电路的时序问题,这在FPGA设计中是不被注意的。
本文论述了转换时遇到的几种由于设计不当所造成的时序问题,提出了避免这些问题的方案。同时对时序变化的部分原因及充分利用门阵列技术亦在文中进行了讨论。
时序上的差异
如果知道原始设计电路工作中每一步时序上的裕量,Orbit保证无论FPGA是否模拟过,都可以成功完成转换,而使用其ATPG和结合缺省模拟分级确保了这一点。在转换完成前,由用户模拟或由Obrit ATPG产生的测试向量,用IC测试仪对FPGA进行测试。如果是用户提供的测试装置或测试向量,此时需分析时序情况,验证系统功能。注意:只有管腿到管腿的测试向量才有助于确认转换的正确性,设置内部节点的模拟向量在芯片级的验证模拟时是无用的。
毛刺信号的产生
许多逻辑电路能产生小的,寄生的信号,称作为毛刺信号。无法预见毛刺信号可通过设计来传播并产生不需要的时钟脉冲。任何组合电路都可能是潜在的毛刺信号的发生器,当毛刺信号影响后续电路时,就成为一个较大问题。
图1用于说明与门的输出变化与否依赖于线路的延时。假定图中信号AO总比BO提前5ns到达。
情况1:信号A1的延时为10ns,B1为20ns,那么与门的输出一直为低电平。
情况2:信号A1的延时为20ns,B1为10ns,那么与门的输出为5ns的高电平,其余为低电平。
情况3:两路信号延时都很小(如同在门阵列中一样),那么与门的输出一直为低电平。
上述差异的重要性完全依赖于信号的用途。如果电路输出后续由触发器锁定,情况2中非期望的毛刺信号可能被忽略;而如果毛刺信号在后续电路中被看作是有意义的信号,那么情况1和情况3中由于没有产生毛刺信号,就会致使电路工作不正常。
开启时钟
许多设计中出现的问题都与如何使用时钟有关。
图2用于解释由逻辑门控制时钟所诱发的问题。逻辑门的介入使得时钟到第二个触发器出现了特殊路经。要考虑两条线路的长度:一是CLK_IN到FF2的D输入端,另一是从CLK_IN到FF2_C端。要验证两种情况:1、数据的变化在时钟信号的上升沿之后到达FF2;2、数据的变化在时钟信号的上升沿之前到达FF2。
情况1中,要改变FF2_Q,需要两个CLK_IN上升沿,而情况2中只需一个CLK_IN的上升沿。当路径2的延迟太长时,FF2_Q变化将早到一个时钟周期。这种设计逻辑特性很大程度上依赖于延迟路径。
替代的方案是用逻辑门来控制数据,而不是用时钟。由于全局时钟信号用于两个触发器,它们几乎在同一时间记录数据。实际上,FPGA中新的路径1几乎一定长于新路径2,这将确保电路的行为同情况1。当电路转换到门阵列时,必须仍保持这种相同。
总之,要尽量减少或者不使用逻辑门控制时钟信号,因为它会在时钟和数据之间产生较多的扭曲。 如果时钟信号上由逻辑等式产生,那么这种方法就会有一些自身的问题。如果全局时钟信号线不用于路由派生时钟,那么时钟的同步上会有一些重要的差别。如果出于不同的用途分别产生时钟,情况甚至会变得更糟。
全局时钟信号的使用
在长串寄存器链中,这个问题会在多处出现。此电路的一个替代方法如图3所示。使用CLK信号,用第二个与门消除了多路时钟。这样只产生一个时钟信号到触发器串。图3中触发器串的时钟信号是系统时钟通过门延迟得到的,当到达触发器串的数据与触发器串的时钟不同步时,将在两个路径间产生竞争。一路是触发器串的数据输入路径,另一路是系统时钟到达触发器串的时钟输入端路径。解决方案是用系统时钟的下降沿触发的单独触发器串记录数据。
状态检测:
如果不考虑电路钟的延迟,状态机的状态检测可能会出错。如果用组合逻辑来产生复位信号,那么即使是同步电路也会产生问题。
尽量保持状态控制逻辑(如计数器、分频器等)少于10位。如果超过10位,长计数器应该有用于监视内部状态的抽头,或者至少有一预置的功能。这些监视用抽头应能够很容易地将数据传送到输出引脚,以便监测。
复位问题:
如同时钟一样,如果使用组合逻辑或者不详细考虑时序,复位信号也能产生一系列问题。
图4示出了一种产生短脉冲的方法:当触发器D输入是高电位时,每个时钟周期后Q端产生一个短脉冲。复位信号是低电位有效,Q(输出高电位时不引起复位。当时钟的上升沿到来时,如果D端是高电位,Q(输出变低,导致触发器复位。然后Q(又被拉回到高电位,从而结束复位。为避免组合复位信号的问题,可以使用图5所示得另一触发器的输出来驱动复位信号。
执行问题:
当逻辑等式用于描述一种功能,而编辑器用于产生逻辑关系时,情况变得更有趣。考虑最近发现的一个例子:
if T,OUT=/A
else,OUT=B
如图6,尽管电路在逻辑上是正确的,但当T变化时会产生毛刺信号。A=0,B=1时出现问题。图7为简化电路。信号T仅仅用作模式切换。当系统在工作台上测试时,毛刺信号绝不会是问题。当随后使用自动系统测试时,要考虑很多效应以找到系统错误的根源。图7所示的逻辑在门阵列实现时,将可能在不需要的时候产生脉冲。事实上,这个问题是转换到门阵列实现时发现的,正可以解释自动的系统测试期间所出现的反常现象。
FPGA 电路 电压 仿真 半导体 CMOS 振荡器 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- 采用EEPROM对大容量FPGA芯片数据实现串行加载(03-18)
- 赛灵思:可编程逻辑不仅已是大势所趋,而且势不可挡(07-24)