全局时钟约束

本文详细介绍了FPGA设计中时序路径的概念,包括输入端口到触发器、触发器之间的路径约束,以及如何使用create_clock命令定义时钟。时序约束对于满足寄存器的建立时间和保持时间至关重要,同时讲解了OFFSET_IN_AFTER和OFFSET_OUTPUT_BEFORE等偏移约束,以确保数据和时钟之间的正确同步。

一、时序路径

1)从输入端口到触发器的数据D端;
2)从触发器的时钟clk端到触发器的数据D端
3)从触发器的时钟clk端到输出端口
4)从输入端口到输出端口
在这里插入图片描述

二、pin、port、cell、net

;
cell就是基本的模块,如触发器、查找表;每个cell都有自己的pin(引脚),pin有方向(pin和port是相对的,根据处理问题的作用域来区分,在一个作用域是pin在另一个作用域也有可能是port);cell之间通过net相连。

三、时序约束

在这里插入图片描述

1,寄存器到寄存器之间路径的约束:

约束时序路径是为了满足寄存器的建立时间和保持时间。寄存器到寄存器之间的路径主要需要包括Tco、Tlogic、Trouting和Tskew。因为数据是随着时钟的节拍一拍一拍往后传的,因此这里的寄存器与寄存器之间的路径约束,就是对时钟的建模,或者是说对时钟的约束。
在这里插入图片描述
定义时钟时钟的命令为:create_clock。假设时钟周期为10ns,定义时钟的命令是:

create_clock   -period  10   [get_ports  clk]

定义时钟时,我们必须定义时钟周期(也就是-period这个选项)和时钟源(端口或引脚)(也就是设计中的clk),也可以加上一些可选项(option)来定义时钟的占空因数(duty cycle),偏移(offset/skew)和时钟名( clock name),我们可以通过man create_clock 来查看命令的相关选项。

2,输入端口到寄存器D端的约束

偏移约束是指数据和时钟之间的约束,规定了外部时钟和数据输入输出引脚之间的时序关系;
在这里插入图片描述
偏置输入:输入管脚到同步元件
OFFSET_IN_AFTER:Tarrival=Tco+Toutput+Tlogic
OFFSET_IN_BEFORE:T-Tarrival=Tinput+Tsu
两者的约束描述等价。

set_input_delay -clock clk max [4] [get_ports name] //即Tarrival

3,寄存器D端到输出端口的约束

偏置输出:同步元件到输出管脚
OFFSET_OUTPUT_BEFORE:Tstable=Tlogic+Tinput+Tsu
OFFSET_OUTPUT_AFTER:T-Tstable=Tco+Tinput
两者的约束描述等价。

set_output_delay -clock clk max [4] [get_ports name] //即Tstable

参考链接
https://wenku.baidu.com/view/6babc8e286c24028915f804d2b160b4e777f8157.html
https://www.cnblogs.com/IClearner/p/6624722.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值