首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 【Vivado使用误区与进阶】XDC约束技巧之时钟篇-2
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
【Vivado使用误区与进阶】XDC约束技巧之时钟篇-2
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-3-20 13:11
|
只看该作者
【Vivado使用误区与进阶】XDC约束技巧之时钟篇-2
时序例外约束
时序例外约束包括set_max_delay/set_min_delay,set_multicycle_path,set_false_path等,这类约束除了要满足XDC的先后顺序优先级外,还受到自身优先级的限制。一个总的原则就是针对同一条路径,对约束目标描述越具体的优先级越高。不同的时序例外约束以及同一约束中不同条件的优先级如下所示:
举例来说,依次执行如下两条XDC,尽管第二条最后执行,但工具仍然认定第一条约束设定的15为clk1到clk2之间路径的max delay值。
再比如,对图示路径依次进行如下四条时序例外约束,优胜者将是第二条。但如果再加入最后一条约束,false path的优先级最高,会取代之前所有的时序例外约束。
高级时钟约束
约束最终是为了设计服务,所以要用好XDC就需要深入理解电路结构和设计需求。接下来我们就以常见FPGA设计中的时钟结构来举例,详细阐述XDC的约束技巧。
时序的零起点
用create_clock定义的主时钟的起点即时序的"零起点",在这之前的上游路径延时都被工具自动忽略。所以主时钟创建在哪个"点"很重要,以下图所示结构来举例,分别于FPGA输入端口和BUFG输出端口创建一个主时钟,在时序报告中体现出的路径延时完全不同,很明显sysclk_bad的报告中缺少了之前一段的延时,时序报告不可信。
时钟定义的先后顺序
时钟的定义也遵从XDC/Tcl的一般优先级,即:在同一个点上,由用户定义的时钟会覆盖工具自动推导的时钟,且后定义的时钟会覆盖先定义的时钟。若要二者并存,必须使用 -add 选项。
上述例子中BUFG的输出端由用户自定义了一个衍生钟clkbufg,这个衍生钟便会覆盖此处原有的sysclk。此外,图示BUFR工作在bypass模式,其输出不会自动创建衍生钟,但在BUFR的输出端定义一个衍生钟clkbufr,并使用-add 和 -master_clock 选项后,这一点上会存在sysclk和clkbufg两个重叠的时钟。如下的Tcl命令验证了我们的推论。
同步时钟和异步时钟
不同于UCF约束,在XDC中,所有的时钟都会被缺省认为是相关的,也就是说,网表中所有存在的时序路径都会被Vivado分析。这也意味着FPGA设计人员必须通过约束告诉工具,哪些路径是无需分析的,哪些时钟域之间是异步的。
如上图所示,两个主时钟ssclkin和sysclk由不同的端口进入FPGA,再经由不同的时钟网络传递,要将它们设成异步时钟,可以使用如下约束:
其中,-include_generated_clocks 表示所有衍生钟自动跟其主时钟一组,从而与其它组的时钟之间为异步关系。不加这个选项则仅仅将时钟关系的约束应用在主时钟层面。
重叠(单点多个)时钟
重叠时钟是指多个时钟共享完全相同的时钟传输网络,例如两个时钟经过一个MUX选择后输出的时钟,在有多种运行模式的设计中很常见。
如下图所示,clk125和clk250是clkcore_buf的两个输入时钟,不约束时钟关系的情况下,Vivado会对图示路径做跨时钟域(重叠时钟之间)分析。这样的时序报告即便没有违例,也是不可信的,因为clk125和clk250不可能同时驱动这条路径上的时序元件。这么做也会增加运行时间,并影响最终的实现效果。
如果clk125和clk250除了通过clkcore_buf后一模一样的扇出外没有驱动其它时序元件,我们要做的仅仅是补齐时钟关系的约束。
在很多情况下,除了共同的扇出,其中一个时钟或两个都还驱动其它的时序元件,此时建议的做法是在clkcore_buf的输出端上创建两个重叠的衍生钟,并将其时钟关系约束为-physically_exclusive 表示不可能同时通过。这样做可以最大化约束覆盖率,也是ISE和UCF中无法做到的。
其它高级约束
时钟的约束是XDC的基础,熟练掌握时钟约束,也是XDC约束技巧的基础。其它高级约束技巧,包括复杂的CDC(Clock Domain Crossing)约束和接口时序(SDR、DDR、系统同步接口和源同步接口)约束等方面还有很多值得注意的地方。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议