虚拟时钟

时间:2022-04-28
本文章向大家介绍虚拟时钟,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在FPGA 做系统同步输入接口的情况下,很多时候上游器件送入的数据并不是跟某个FPGA 中已经存在的真实的时钟相关,而是来自于一个不同的时钟,这时就要用到虚拟时钟(Virtual Clock)。

举例来说,上游器件用一个100MHz 的时钟送出数据到FPGA,实际上这个数据每两个时钟周期才变化一次,所以可以用50MHz 的时钟来采样。FPGA 有个100MHz 的输入时钟,经过MMCM 产生一个50MHz 的衍生时钟,并用其来采样上游器件送来的同步数据。当然,系统级的设计上,必须有一定的机制来保证上游器件中的发送时钟和FPGA 中的接收时钟的时钟沿对齐。

此时,我们可以借助虚拟时钟的帮助来完成相应的Input 接口约束。

create_clock -period 10 -name clk_100 [get_ports i_clk_100MHz] ;
create_clock -period 20 -name clk_50_virtual ;
set_input_delay -max 5.2 -clock clk_50_virtual [get_ports i_data_50] ;
set_input_delay -min 2.0 -clock clk_50_virtual [get_ports i_data_50] ;