这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » FPGA » FPGA设计之时钟约束操作

共2条 1/1 1 跳转至

FPGA设计之时钟约束操作

高工
2020-04-07 22:08:00     打赏

我们以Vivado自带的wave_gen工程为例,该工程的各个模块功能较为明确,如下图所示。为了引入异步时钟域,我们在此程序上由增加了另一个时钟--clkin2,该时钟产生脉冲信号pulse,samp_gen中在pulse为高时才产生信号。

FPGA设计之时钟约束操作

下面我们来一步一步进行时序约束。

1. 梳理时钟树

我们首先要做的就是梳理时钟树,就是工程中用到了哪些时钟,各个时钟之间的关系又是什么样的,如果自己都没有把时钟关系理清楚,不要指望综合工具会把所有问题暴露出来。

在我们这个工程中,有两个主时钟,四个衍生时钟,如下图所示。

FPGA设计之时钟约束操作

确定了主时钟和衍生时钟后,再看各个时钟是否有交互,即clka产生的数据是否在clkb的时钟域中被使用。

这个工程比较简单,只有两组时钟之间有交互,即:

clk_rx与clk_tx

clk_samp与clk2

其中,clk_rx和clk_tx都是从同一个MMCM输出的,两个频率虽然不同,但他们却是同步的时钟,因此他们都是从同一个时钟分频得到(可以在Clock Wizard的Port Renaming中看到VCO Freq的大小),因此它们之间需要用set_false_path来约束;而clk_samp和clk2是两个异步时钟,需要用asynchronous来约束。

FPGA设计之时钟约束操作

完成以上两步,就可以进行具体的时钟约束操作了。




助工
2020-04-08 21:53:43     打赏
2楼

学习一下


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]