版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、FPGAFPGA应用应用Xilinx FPGA高级开发工具高级开发工具高级工具高级工具 约束与约束相关工具约束与约束相关工具 Constraint Editor,PACEConstraint Editor,PACE 配置下载工具配置下载工具(iMPACT)(iMPACT) 第三方工具第三方工具 仿真器:仿真器:ModelSimModelSim 综合器:综合器:SimplifySimplify 在线逻辑分析仪在线逻辑分析仪(ChipScope)(ChipScope) 时序分析器时序分析器(Timing Analyzer)(Timing Analyzer)约束约束 目的:目的: 控制综合与实现,设
2、计高性能电路;控制综合与实现,设计高性能电路; 获得正确时序分析报告获得正确时序分析报告 指定引脚位置和电气标准指定引脚位置和电气标准 时序约束,分组约束时序约束,分组约束 管脚约束,区域约束管脚约束,区域约束约束文件约束文件 UCFUCF:文本文件,由用户输入;:文本文件,由用户输入; NCFNCF:由综合工具自动生成;:由综合工具自动生成; PCFPCF: 映射产生的物理约束映射产生的物理约束 用户输入的约束用户输入的约束时序相关约束时序相关约束 周期约束周期约束(PERIOD(PERIOD约束约束) ) 偏移约束偏移约束(OFFSET(OFFSET约束约束) ) 静态路径约束静态路径约束
3、 专门约束专门约束 分组约束分组约束时序约束时序约束 周期约束周期约束(PERIOD(PERIOD约束约束) ):FFFF到到FFFF 偏移约束偏移约束(OFFSET(OFFSET约束约束) ):IPADIPAD到到FF,FFFF,FF到到OPADOPAD 静态路径约束:静态路径约束:IPADIPAD到到OPADOPAD周期约束周期约束Tcko:Tcko:时钟输出时钟输出Tlogic:Tlogic:组合逻辑延迟组合逻辑延迟Tnet:Tnet:网线延迟网线延迟Tsetup:Tsetup:建立时间建立时间Tclk_skew:Tclk_skew:时钟偏移时钟偏移时钟最小周期时钟最小周期:Tclk =
4、 Tcko + Tlogic + Tnet + Tsetup :Tclk = Tcko + Tlogic + Tnet + Tsetup Tclk_skewTclk_skewTclk_skew = Tcd2 Tcd1Tclk_skew = Tcd2 Tcd1时钟约束语法时钟约束语法(简单方法简单方法) 约束信号约束信号 PERIOD = PERIOD = 周期长度周期长度HIGH|LOW HIGH|LOW 脉脉冲持续时间冲持续时间 约束信号约束信号:NET “net_name”:NET “net_name”或或TIMEGRP TIMEGRP “group_name”“group_name” H
5、IGH|LOW:HIGH|LOW:第一个脉冲为高电平第一个脉冲为高电平/ /低电平低电平 脉冲持续时间:该脉冲持续时间脉冲持续时间:该脉冲持续时间 举例举例 NET SYS_CLK PERIOD=10ns HIGH 4nsNET SYS_CLK PERIOD=10ns HIGH 4ns时钟约束语法时钟约束语法(推荐方法推荐方法) TIMESPEC “TSidentifier”=PERIOD TIMESPEC “TSidentifier”=PERIOD “TNM_reference” “TNM_reference” 周期长度周期长度 HIGH|LOW HIGH|LOW 脉冲持续时间脉冲持续时间;
6、 TIMESPEC:TIMESPEC:时序规范标识时序规范标识; ; TS+TS+标识:标识:TSTS属性定义,可用于派生时钟定义属性定义,可用于派生时钟定义 举例举例 NET “clk_50M” TNM_NET=“sys_clk”NET “clk_50M” TNM_NET=“sys_clk” TIMESPEC “TS_sys_clk” = PERIOD “sys_clk” TIMESPEC “TS_sys_clk” = PERIOD “sys_clk” 20 HIGH 1020 HIGH 10时钟约束语法时钟约束语法(派生方法派生方法) TIMESPEC “clk_syn” = PERIOD
7、 “clk” 5ns;TIMESPEC “clk_syn” = PERIOD “clk” 5ns; 反向时钟:反向时钟: TIMESPEC “clk_syn_180”=PERIOD “clk_180” TIMESPEC “clk_syn_180”=PERIOD “clk_180” clk_syn PHASE+2.5ns;clk_syn PHASE+2.5ns; 2 2分频时钟:分频时钟: TIMESPEC “clk_syn_180”=PERIOD TIMESPEC “clk_syn_180”=PERIOD “clk_syn_half” clk_syn/2“clk_syn_half” clk_s
8、yn/2偏移约束偏移约束 外部时钟与数据输入外部时钟与数据输入/ /输出管脚之间时序;输出管脚之间时序; 只能用于端口信号,不能用于内部信号;只能用于端口信号,不能用于内部信号; 输入偏移输入偏移 输出偏移输出偏移 OFFSET=IN|OUT”offset_time” OFFSET=IN|OUT”offset_time” unitsBEFORE|AFTER”clk_name” TIMEGRP unitsBEFORE|AFTER”clk_name” TIMEGRP “group_name“group_name输入约束输入约束OFFSET_IN_AFTEROFFSET_IN_AFTER:时钟之后可
9、以到达输入端,芯片内部延迟上限:时钟之后可以到达输入端,芯片内部延迟上限OFFSET_IN_BEFOREOFFSET_IN_BEFORE:时钟之前必须到达输入端:时钟之前必须到达输入端NET “DATA_IN” OFFSET = IN 10.0 BEFORE “CLK_50MHz”NET “DATA_IN” OFFSET = IN 10.0 BEFORE “CLK_50MHz”NET “DATA_IN” OFFSET = IN 10.0 AFTER “CLK_50MHz”NET “DATA_IN” OFFSET = IN 10.0 AFTER “CLK_50MHz”输出约束输出约束OFFSET
10、_OUT_BEFOREOFFSET_OUT_BEFORE:下一个时钟到来之前必须完成输出:下一个时钟到来之前必须完成输出OFFSET_OUT_AFTEROFFSET_OUT_AFTER:本时钟有效沿之后必须输出:本时钟有效沿之后必须输出NET “DATA_OUT” OFFSET = OUT 10.0 BEFORE “CLK_50MHz”NET “DATA_OUT” OFFSET = OUT 10.0 BEFORE “CLK_50MHz”NET “DATA_OUT” OFFSET = OUT 10.0 AFTER “CLK_50MHz”NET “DATA_OUT” OFFSET = OUT 10
11、.0 AFTER “CLK_50MHz”分组约束分组约束 将同步元件分为不同的组,每组附加各自的约束将同步元件分为不同的组,每组附加各自的约束 TNM/TNM_NETTNM/TNM_NET:选出可构成一个分组的元件,然后:选出可构成一个分组的元件,然后整体添加到组中整体添加到组中 TIMEGRPTIMEGRP:分组合并和拆分:分组合并和拆分 TPSYNCTPSYNC:将不是管脚和同步元件的组件定义为同:将不是管脚和同步元件的组件定义为同步,以便作为时序规范起点和终点步,以便作为时序规范起点和终点 TPTHRUTPTHRU:定义一个或一组路径上的关键点,可使:定义一个或一组路径上的关键点,可使用
12、户定义任意期望的路径用户定义任意期望的路径TNM/TNM_NET分组约束分组约束 选出可构成一个分组的元件,然后整体添加到组中选出可构成一个分组的元件,然后整体添加到组中 TNM_NETTNM_NET只加在网线上只加在网线上 NET|INST|PIN “ob_name” TNM = “New_name”NET|INST|PIN “ob_name” TNM = “New_name” NET “net_name” TNM_NET = “new_name”NET “net_name” TNM_NET = “new_name” 示例示例 INST “ff1” TNM=“MY_FF1”;INST “ff
13、1” TNM=“MY_FF1”; INST “ff2” TNM=“MY_FF1”;INST “ff2” TNM=“MY_FF1”; NET “A0” TNM = “MY_FF1”;NET “A0” TNM = “MY_FF1”; NET “PADCLK” TNM_NET=“PADGRP”NET “PADCLK” TNM_NET=“PADGRP”TNM/TNM_NET分组约束分组约束 TNMTNM约束添加到线网时不穿越约束添加到线网时不穿越IBUFG/BUFGIBUFG/BUFG组件组件,TNM_NET,TNM_NET可可穿越穿越IBUFG/BUFGIBUFG/BUFGTIMEGRP分组约束分组
14、约束 分组合并和拆分分组合并和拆分 合并合并:TIMEGRP “New_group”=“old_group1” :TIMEGRP “New_group”=“old_group1” “old_group2”;“old_group2”; 拆分拆分:TIMEGRP “New_group”=“old_group1” :TIMEGRP “New_group”=“old_group1” EXCEPT “old_group2”;EXCEPT “old_group2”; 示例示例 TIMEGRP “big_group”=“small_group” TIMEGRP “big_group”=“small_grou
15、p” “medium_group”“medium_group”TPSYNC分组约束分组约束 同步点分组。如约束附加在同步点分组。如约束附加在NETNET,NETNET驱动源为同步点;如驱动源为同步点;如果是果是INSTINST,它的输出为同步点;如果是输入输出引脚,该,它的输出为同步点;如果是输入输出引脚,该引脚为同步点;引脚为同步点; NET|INST|PIN “ob_name” TPSYNC=“New_part”NET|INST|PIN “ob_name” TPSYNC=“New_part”TPTHRU分组约束分组约束 定义一个或一组路径上的关键点,可使用户定义任意期望定义一个或一组路径上
16、的关键点,可使用户定义任意期望的路径的路径 NET|INST|PIN “ob_name” TPTHRU=“New_name”;NET|INST|PIN “ob_name” TPTHRU=“New_name”; 示例示例 INST “A1” TNM=“S”INST “A1” TNM=“S” INST “A2” TNM=“E”INST “A2” TNM=“E” NET”A1toA2_1” TPTHRU=“M”NET”A1toA2_1” TPTHRU=“M” TIMESPEC “TSpath1”=FROM “A” THRU “ABC” TO TIMESPEC “TSpath1”=FROM “A” T
17、HRU “ABC” TO “B” 30;“B” 30;专用约束专用约束 FROM_TOFROM_TO约束约束: :定义两个组之间的时序约束,可以是用户组,定义两个组之间的时序约束,可以是用户组,或与定义组或与定义组(FFS,LATCHES,PADS,RAMS(FFS,LATCHES,PADS,RAMS等等) ) TIMESPEC “TS_P2S”=FROM PADS TO FFS 25ns;TIMESPEC “TS_P2S”=FROM PADS TO FFS 25ns; TIMESPEC “TS_C2S”=FROM FFS TO FFS 30ns;TIMESPEC “TS_C2S”=FROM
18、FFS TO FFS 30ns; MAXDELAYMAXDELAY约束:定义特定线网最大延迟约束:定义特定线网最大延迟 NET “EN” MAXDELAY=5ns;NET “EN” MAXDELAY=5ns; MAXSKEWMAXSKEW约束:控制线网偏移不大于某值约束:控制线网偏移不大于某值 NET “SIG_3” MAXSKEW=3ns;NET “SIG_3” MAXSKEW=3ns; TIGTIG约束:定义时序无关路径约束:定义时序无关路径 NET “Sig_5” TIGNET “Sig_5” TIGUCF语法项目语法项目通配符通配符 “* *”:”:代表任何字符串及空格串代表任何字符串
19、及空格串 “?”:?”:代表一个字符代表一个字符设计层次设计层次 “* *”:”:所有层次所有层次 “Level1/Level1/* *”:level1”:level1及以下层次及以下层次 “Level1/Level1/* */”:level1/”:level1中模块,但不遍历更低层次中模块,但不遍历更低层次注释注释 “”:单行注释:单行注释 “/ /* * * */”/”:跨行注释:跨行注释示例示例NET “NET “* *AT?”AT?”INST “/loads_of_logic/INST “/loads_of_logic/* *” LOC=CLB_r” LOC=CLB_r* *c8;c8
20、;约束输入工具约束输入工具 约束编辑器约束编辑器(Constraints Editor)(Constraints Editor) 全局约束全局约束(Global)(Global) 端口约束端口约束(Ports)(Ports) 高级约束高级约束(Advanced)(Advanced) 杂类杂类(Misc)(Misc) 引脚与区域约束编辑器引脚与区域约束编辑器(PACE)(PACE) 文本编辑文本编辑全局约束全局约束 针对时钟信号针对时钟信号 全局约束分为:全局约束分为: 周期约束周期约束(PERIOD)(PERIOD) 输入延迟约束输入延迟约束(Pad to Setup)(Pad to Setu
21、p) 输出延迟约束输出延迟约束(Clock to Pad)(Clock to Pad)全局约束全局约束(Global)周期约束周期约束(PERIOD) Jitter:Jitter:抖动抖动 Specify TimeSpecify Time Relative toRelative to 倍数倍数 相移相移 示例:示例: NET “clk” NET “clk” TNM_NET=“clk”;TNM_NET=“clk”; TIMESPEC TIMESPEC “TS_clk”=PERIOD “TS_clk”=PERIOD “clk” 20ns HIGH 50%“clk” 20ns HIGH 50%输入延
22、迟约束输入延迟约束(Pad to Setup) OFFSET:OFFSET:偏移偏移 Clock Pad Net:Clock Pad Net:时时钟线网钟线网 Clock Edge:Clock Edge:上升上升沿沿/ /下降沿下降沿 示例示例 OFFSET=IN 20ns OFFSET=IN 20ns BEFORE “clk” BEFORE “clk” HIGH;HIGH;输出延迟约束输出延迟约束 OFFSET:OFFSET:偏移偏移 Clock Pad Net:Clock Pad Net:时钟线时钟线网网 Clock Edge:Clock Edge:上升沿上升沿/ /下下降沿降沿 示例:示
23、例: OFFSET=OUT 20ns AFTER OFFSET=OUT 20ns AFTER “clk” HIGH;“clk” HIGH;端口约束端口约束(Ports) 针对除时钟以针对除时钟以外的信号外的信号 分组约束,输分组约束,输入约束,输出入约束,输出约束约束单端口约束单端口约束 目前版本不能修改端口方向、位置等;目前版本不能修改端口方向、位置等; 对灰色的对灰色的N/AN/A的域因已经在其它相关地方定义,不的域因已经在其它相关地方定义,不能修改;能修改; 对需要修改的域,鼠标双击修改;对需要修改的域,鼠标双击修改;分组约束分组约束 新建分组:新建分组: 选中信号选中信号 填填Grou
24、p NameGroup Name 单击单击Create GroupCreate Group 示例示例 INST “dpd_datain_i5” INST “dpd_datain_i5” TNM=“dpd_datain_i”;TNM=“dpd_datain_i”; INST “dpd_datain_i6” INST “dpd_datain_i6” TNM=“dpd_datain_i”;TNM=“dpd_datain_i”; INST “dpd_datain_i7” INST “dpd_datain_i7” TNM=“dpd_datain_i”;TNM=“dpd_datain_i”; INST “
25、dpd_datain_i8” INST “dpd_datain_i8” TNM=“dpd_datain_i”;TNM=“dpd_datain_i”;高级约束高级约束(Advanced) 分组约束:分组约束:TNM/TNM_NET/TNM/TNM_NET/TPT/THRUTPT/THRU 专用约束:专用约束:FROM_TOFROM_TO分组约束分组约束(TNM_NET) 点击对应点击对应”Create”Create” 输入输入Time NameTime Name 选择线网选择线网 增加组内线网增加组内线网 示例示例 NET “clk” NET “clk” TNM_NET=“my_net”;TNM
26、_NET=“my_net”; NET “clk_ibuf” NET “clk_ibuf” TNM_NET=“my_net”;TNM_NET=“my_net”; NET “clk_c” NET “clk_c” TNM_NET=“my_net”;TNM_NET=“my_net”;专用约束专用约束(Pad To Setup for Source Synchronous(OFFSET IN BEFORE) 点击对应点击对应”Create”Create” 选择源时序分组选择源时序分组 输入输入Time Time RequirementRequirement 选择时钟网及边沿选择时钟网及边沿 选择设置作用
27、分组选择设置作用分组 示例示例 TIMEGRP TIMEGRP “dpd_datain_i” “dpd_datain_i” OFFSET=IN 20ns OFFSET=IN 20ns “clk” HIGH;“clk” HIGH;杂项约束杂项约束(Misc) 局部约束局部约束 I/OI/O端口端口 工作电压工作电压 工作温度工作温度 区域分组区域分组 DCMDCM反馈路径延迟反馈路径延迟 初始化控制初始化控制杂项约束杂项约束(INIT Value for) Filter:Filter:筛选筛选 Init Value:Init Value:值值 示例示例 INST INST “dpd_data01
28、/dpd_fai“dpd_data01/dpd_fai_bank01/cnt0” _bank01/cnt0” INIT=0;INIT=0; INST INST “dpd_data01/dpd_fai“dpd_data01/dpd_fai_bank01/cnt1” _bank01/cnt1” INIT=0;INIT=0;管脚和区域约束管脚和区域约束 实现软件:实现软件: 底层工具编辑器底层工具编辑器(FPGA Editor),(FPGA Editor),布局规划器布局规划器(Floorplanner),(Floorplanner),管脚与区域约束编辑器管脚与区域约束编辑器(PACE)(PACE)
29、 LOCLOC语句语句 基本形式:基本形式:INST “instance_name” LOC=locationINST “instance_name” LOC=location 多个定位任选:多个定位任选:LOC=location1,location2,;LOC=location1,location2,; 范围定位:范围定位:INST “instance_name” INST “instance_name” LOC=location:locationSOFT;LOC=location:locationSOFT; 示例示例 NET “Top_Module_PORT” LOC=“Chip_Port
30、”NET “Top_Module_PORT” LOC=“Chip_Port”LOC属性属性约束类型约束类型可用属性示例可用属性示例含义含义I/O管脚管脚P12管脚管脚A12阵列号阵列号B,L,T,R边界边界(上下左右上下左右)LB,RB,LT,RT,BR,TR,BL,TL边界一半边界一半(上左,上左,)Bank0,Bank1,Bank2,Bank3, Bank4, Bank5, Bank6, Bank7,管脚分组管脚分组CLBCLB_R4C3(或或.S0,或或.S1)CLB_R6C8.S0(或或S1)CLB中中SLICESLICESLICE_X22Y3LOC属性属性约束类型约束类型可用属性示例
31、可用属性示例含义含义TBUFTBUF_R6C7(or .0 or .1)TBUF_X6Y7块块RAMRAMB4_R3C1RAMB16_X2Y56硬件乘法器硬件乘法器MULT1818_X55Y82全局时钟全局时钟GCLKBUF0(或或1,2,3)全局时钟缓冲器全局时钟缓冲器GCLKPAD0(或或1,2,3)全局时钟端口全局时钟端口DLLDLL0P(或或S)(1,2,3)DCMDCM_X0Y0管脚区域示例管脚区域示例 INST “instance_name” LOC=P12;INST “instance_name” LOC=P12; INST “instance_name” LOC=CLB_R3C
32、5;INST “instance_name” LOC=CLB_R3C5; INST “instance_name” LOC=SLICE_X3Y2;INST “instance_name” LOC=SLICE_X3Y2; INST “instance_name” LOC=TBUF_R1C2.INST “instance_name” LOC=TBUF_R1C2.* *; ; INST “instance_name” LOC=MULT18INST “instance_name” LOC=MULT1818_X0Y6;18_X0Y6; INST “instance_name” LOC=clb_r4c5.
33、s1,clb_r4c6.INST “instance_name” LOC=clb_r4c5.s1,clb_r4c6.* *; ; INST “instance_name” LOC=SLICE_X2Y10,SLICE_X1Y10;INST “instance_name” LOC=SLICE_X2Y10,SLICE_X1Y10; INST “instance_name” LOC=SLICE_X3Y5:SLICE_X5Y20;INST “instance_name” LOC=SLICE_X3Y5:SLICE_X5Y20;PACE(Pinout&Area Constraint Editor)PACEI
34、/O管脚约束分配操作管脚约束分配操作 确认芯片型号无误确认芯片型号无误 菜单菜单IOB-Make Pin Compatible with.IOB-Make Pin Compatible with. 菜单菜单IOB-Prohibit Special Pins,IOB-Prohibit Special Pins,禁止不可禁止不可用用I/OI/O 信号分组信号分组 按按”ctrl”ctrl”键选择,键选择,Edit-GroupEdit-Group创建信号组创建信号组 分配分配 拖放拖放 编辑编辑区域约束区域约束 关联耦合逻辑,减少布线压力关联耦合逻辑,减少布线压力 加大资源利用率加大资源利用率区域约束操作区域约束操作 显示资源:显示资源: 选择选择LogicLogic 鼠标右键,鼠标右键,”Object Properties”Objec
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024居间合同受法律保护居间合同正式合同范本
- 编剧合同编剧合同终止协议2024年
- 2024常规解除劳动合同证明书范本
- 标准版采购协议样本
- 大学毕业生就业意向协议书
- 人才公寓优惠政策协议
- 个人个人存单质押贷款合同
- 广告拍摄合同案例
- 企业合伙协议合同样本欣赏
- 企业劳动合同范本汇编
- GB 16809-2008防火窗
- 2018年木地板公司组织架构及部门职能
- 《百团大战》历史课件
- 银行涉农贷款专项统计制度讲解
- DB31-T 540-2022 重点单位消防安全管理要求
- 儿化音变课件
- 国家开放大学《传感器与测试技术》实验参考答案
- 工程造价司法鉴定实施方案
- 材料成型工艺基础习题答案
- 剧本写作课件
- 计算方法第三章函数逼近与快速傅里叶变换课件
评论
0/150
提交评论