这是一个在设计中常犯的错误列表,这些错误常使得你的设计不可靠或速度较慢,为了提高你的设计性能和提高速度的可靠性,你必须确定你的设计通过所有的这些检查。 可靠性 **为时钟信号选用全局时钟缓冲器BUFG
• 不选用全局时钟缓冲器的时钟将会引入偏差 。 **只用一个时钟沿来寄存数据
• 使用时钟的两个沿是不可靠的因为时钟的某沿或者两个沿会漂移; 如果时钟有漂移而且你只使用了时钟的一个沿你就降低了时钟边沿漂移的风险。
• 这个问题可以这样来解决就是允许CLKDLL自动纠正时钟的占空比以达百分之五十的占空比否则强烈建议你只使用一个时钟沿 **除了用CLKDLL或DCM产生的时钟外不要在内部产生时钟.
• 这包括产生门控时钟和分频时钟
• 作为替代可以建立时钟使能或使用CLKDLL或DCM来产生不同的时钟信号。
• 对于一个纯同步设计建议你在任何可能的情况下只使用一个时钟 **不要在内部产生异步的控制信号 例如复位信号或者置位信号
• 内部产生的异步控制信号会产生毛刺
• 作为替代可以产生一个同步的复位/置位信号这个信号的译码要比需要作用的时刻提前一个时钟周期 **不要使用没有相位关系的多个时钟
• 你也许并不总能避免这个条件在这些情况下确定你已使用了适当的同步电路来跨越时钟域 **不要使用没有相位关系的多个时钟
• 再次你也许并不总能避免这个条件,相反许多设计都需要这样,在这些情况下确定你已适当地约束了跨越时钟域的路径 **不要使用内部锁存器
• 内部锁存器会混淆时序而且常常会引入另外的时钟信号
• 内部锁存器在透明门打开时可以被看成是组合逻辑但在门被锁存时 可以被看成是同步元件这将会混淆时序分析
• 内部锁存器常常会引入门控时钟门控时钟会产生毛刺使得设计变得不可靠 性能
**逻辑级的时延不要超过时序预算的百分之五十
• 每个路径逻辑级时延可以在逻辑级时序报告或布局后时序报告中找到详细分析了每个路径之后时序分析器将生成每个路径时延的统计量检查一下总共的逻辑级时延超过了你的时序预算的百分之五十吗? **IOB 寄存器
• IOB寄存器提供了最快的时钟到输出和输入到时钟的时延
• 首先有一些限制对于输入寄存器在从管脚到寄存器间不能有组合逻辑存在对于输出寄存器在寄存器和管脚之间也不能有组合逻辑存在对于三态输出在IOB中的所有的寄存器必须使用同一个时钟信号和复位信号而且IOB三态寄存器必须低电平有效才能放到IOB中三态缓冲器低电平有效所以在寄存器和三态缓冲器之间不需要一个反相器
• 你必须使软件能够选用IOB寄存器你可以设置全局实现选项为输入 输出或输入输出选择IOB寄存器缺省值为关(off)。
• 你也可在综合工具或在用户约束文件UCF中设定使得能够使用IOB寄存器句法为: INST IOB = TRUE;
|