Adapt from Frank Nelson,the senior technical trainner and course designer at Xilinx Inc.
1.Don't use gate clocks.
Don't route clock signals through the Look-Up Tables(LUTs).These "internally generated clock signals " can glitch easily.
Instead of routing this signal to the clock port of the synchronous elements in the FPGA,route them to the clock enable port.
Not gating clocks also reduces the number of clock signals routed inside the FPGA.
If you do not have a clock enable resource on each register ,this will be implemented as an input to the combinatorial logic driving the register(LUT).
2.Use the global routing resources
This reduces clock skew which makes the design more likely to run reliably.
Use the MaxSkew attribute in the UCF on control signals that are routed on general interconnect ,especially clocks.
3.Register Asynchronous input signals
This means signals which are not registered by the same clock frequency as the FPGA registers may need to be registered ,or use a synchronization circuit.
Consider using the IOB flip-flop to register your input.Note that these flip-flops often have variable set-up and hold times.
Synchronization circuits may also be necessary for transferring signals between clock domains within the FPGA.
Remember that synchronization circuits can prevent set-up and hold time violations on asynchronous inputs, which can cause failure of the circuit due to metastability.
4 .Design with a synchronous Set/Reset.
Use of Asynchronous Set/Reset can easily create circuits that glitch.
Use the Global Set/Reset (GSR) resources in the older device families to reduce the skew on a set/reset.
Don’t use the GSR in Virtex . The GSR has too much delay and general interconnect will distribute this signal quickly.

本文提供了FPGA设计中提高可靠性和减少时钟偏移的关键策略,包括避免使用门控时钟信号、利用全局布线资源、注册异步输入信号以及采用异步置位/复位的设计方法。
1万+

被折叠的 条评论
为什么被折叠?



