《Xilinx-FPGA高级开发工具精讲.ppt》由会员分享,可在线阅读,更多相关《Xilinx-FPGA高级开发工具精讲.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、FPGAFPGA应用应用Xilinx FPGA高级开发工具高级开发工具高级工具高级工具约束与约束相关工具约束与约束相关工具Constraint Constraint Editor,PACEEditor,PACE配置下载工具配置下载工具(iMPACTiMPACT)第三方工具第三方工具仿真器:仿真器:ModelSimModelSim综合器:综合器:SimplifySimplify在线逻辑分析仪在线逻辑分析仪(ChipScopeChipScope)时序分析器时序分析器(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周期约束周期约束TckoTcko:时钟输出时钟输出TlogicTlogic:组合逻辑延迟组合逻辑延迟TnetTnet:网线延迟网线延迟TsetupTsetup:建立时间建立时间Tclk_skewTclk_skew:时钟偏移时钟偏移时钟最小周期时钟最小周期:TclkTclk=TckoTcko+TlogicTlogic+TnetTnet+TsetupTset
4、up Tclk_skewTclk_skewTclk_skewTclk_skew=Tcd2 =Tcd2 Tcd1 Tcd1时钟约束语法时钟约束语法(简单方法简单方法)约束信号约束信号 PERIOD=PERIOD=周期长度周期长度HIGH|LOW HIGH|LOW 脉脉冲持续时间冲持续时间 约束信号约束信号:NET:NET“net_namenet_name”或或TIMEGRP TIMEGRP“group_namegroup_name”HIGH|LOW:HIGH|LOW:第一个脉冲为高电平第一个脉冲为高电平/低电平低电平脉冲持续时间:该脉冲持续时间脉冲持续时间:该脉冲持续时间举例举例NET SYS_
5、CLK PERIOD=10ns HIGH 4nsNET SYS_CLK PERIOD=10ns HIGH 4ns时钟约束语法时钟约束语法(推荐方法推荐方法)TIMESPEC TIMESPEC“TSidentifierTSidentifier”=PERIOD=PERIOD“TNM_referenceTNM_reference”周期长度周期长度 HIGH|LOW HIGH|LOW 脉脉冲持续时间冲持续时间;TIMESPEC:TIMESPEC:时序规范标识时序规范标识;TS+TS+标识:标识:TSTS属性定义,可用于派生时钟定义属性定义,可用于派生时钟定义举例举例NET NET“clk_50Mclk
6、_50M”TNM_NET=TNM_NET=“sys_clksys_clk”TIMESPEC TIMESPEC“TS_sys_clkTS_sys_clk”=PERIOD =PERIOD“sys_clksys_clk”20 HIGH 10 20 HIGH 10时钟约束语法时钟约束语法(派生方法派生方法)TIMESPEC TIMESPEC“clk_synclk_syn”=PERIOD =PERIOD“clkclk”5ns;5ns;反向时钟:反向时钟:TIMESPEC TIMESPEC“clk_syn_180clk_syn_180”=PERIOD=PERIOD“clk_180clk_180”clk_s
7、ynclk_syn PHASE+2.5ns;PHASE+2.5ns;2 2分频时钟:分频时钟:TIMESPEC TIMESPEC“clk_syn_180clk_syn_180”=PERIOD=PERIOD“clk_syn_halfclk_syn_half”clk_syn/2 clk_syn/2偏移约束偏移约束外部时钟与数据输入外部时钟与数据输入/输出管脚之间时序;输出管脚之间时序;只能用于端口信号,不能用于内部信号;只能用于端口信号,不能用于内部信号;输入偏移输入偏移输出偏移输出偏移OFFSET=OFFSET=IN|OUTIN|OUT”offset_timeoffset_time”unitsB
8、EFORE|AFTERunitsBEFORE|AFTER”clk_nameclk_name”TIMEGRP TIMEGRP“group_namegroup_name 输入约束输入约束OFFSET_IN_AFTEROFFSET_IN_AFTER:时钟之后可以到达输入端,芯片内部延迟上限:时钟之后可以到达输入端,芯片内部延迟上限OFFSET_IN_BEFOREOFFSET_IN_BEFORE:时钟之前必须到达输入端:时钟之前必须到达输入端NET NET“DATA_INDATA_IN”OFFSET=IN 10.0 BEFORE OFFSET=IN 10.0 BEFORE“CLK_50MHzCLK_5
9、0MHz”NET NET“DATA_INDATA_IN”OFFSET=IN 10.0 AFTER OFFSET=IN 10.0 AFTER“CLK_50MHzCLK_50MHz”输出约束输出约束OFFSET_OUT_BEFOREOFFSET_OUT_BEFORE:下一个时钟到来之前必须完成输出:下一个时钟到来之前必须完成输出OFFSET_OUT_AFTEROFFSET_OUT_AFTER:本时钟有效沿之后必须输出:本时钟有效沿之后必须输出NET NET“DATA_OUTDATA_OUT”OFFSET=OUT 10.0 BEFORE OFFSET=OUT 10.0 BEFORE“CLK_50MH
10、zCLK_50MHz”NET NET“DATA_OUTDATA_OUT”OFFSET=OUT 10.0 AFTER OFFSET=OUT 10.0 AFTER“CLK_50MHzCLK_50MHz”分组约束分组约束将同步元件分为不同的组,每组附加各自的约束将同步元件分为不同的组,每组附加各自的约束TNM/TNM_NETTNM/TNM_NET:选出可构成一个分组的元件,然后:选出可构成一个分组的元件,然后整体添加到组中整体添加到组中TIMEGRPTIMEGRP:分组合并和拆分:分组合并和拆分TPSYNCTPSYNC:将不是管脚和同步元件的组件定义为同:将不是管脚和同步元件的组件定义为同步,以便作
11、为时序规范起点和终点步,以便作为时序规范起点和终点TPTHRUTPTHRU:定义一个或一组路径上的关键点,可使:定义一个或一组路径上的关键点,可使用户定义任意期望的路径用户定义任意期望的路径TNM/TNM_NET分组约束分组约束选出可构成一个分组的元件,然后整体添加到组中选出可构成一个分组的元件,然后整体添加到组中TNM_NETTNM_NET只加在网线上只加在网线上NET|INST|PIN NET|INST|PIN“ob_nameob_name”TNM=TNM=“New_nameNew_name”NET NET“net_namenet_name”TNM_NET=TNM_NET=“new_nam
12、enew_name”示例示例INST INST“ff1ff1”TNM=TNM=“MY_FF1MY_FF1”;INST INST“ff2ff2”TNM=TNM=“MY_FF1MY_FF1”;NET NET“A0A0”TNM=TNM=“MY_FF1MY_FF1”;NET NET“PADCLKPADCLK”TNM_NET=TNM_NET=“PADGRPPADGRP”TNM/TNM_NET分组约束分组约束TNMTNM约束添加到线网时不穿越约束添加到线网时不穿越IBUFG/BUFGIBUFG/BUFG组件组件,TNM_NET,TNM_NET可可穿越穿越IBUFG/BUFGIBUFG/BUFGTIMEGR
13、P分组约束分组约束分组合并和拆分分组合并和拆分合并合并:TIMEGRP:TIMEGRP“New_groupNew_group”=“old_group1old_group1”“old_group2old_group2”;拆分拆分:TIMEGRP:TIMEGRP“New_groupNew_group”=“old_group1old_group1”EXCEPT EXCEPT“old_group2old_group2”;示例示例TIMEGRP TIMEGRP“big_groupbig_group”=“small_groupsmall_group”“medium_groupmedium_group”TP
14、SYNC分组约束分组约束同步点分组。如约束附加在同步点分组。如约束附加在NETNET,NETNET驱动源为同步点;如驱动源为同步点;如果是果是INSTINST,它的输出为同步点;如果是输入输出引脚,该,它的输出为同步点;如果是输入输出引脚,该引脚为同步点;引脚为同步点;NET|INST|PIN NET|INST|PIN“ob_nameob_name”TPSYNC=TPSYNC=“New_partNew_part”TPTHRU分组约束分组约束定义一个或一组路径上的关键点,可使用户定义任意期望定义一个或一组路径上的关键点,可使用户定义任意期望的路径的路径NET|INST|PIN NET|INST|
15、PIN“ob_nameob_name”TPTHRU=TPTHRU=“New_nameNew_name”;示例示例INST INST“A1A1”TNM=TNM=“S S”INST INST“A2A2”TNM=TNM=“E E”NETNET”A1toA2_1A1toA2_1”TPTHRU=TPTHRU=“M M”TIMESPEC TIMESPEC“TSpath1TSpath1”=FROM=FROM“A A”THRU THRU“ABCABC”TO TO“B B”30;30;专用约束专用约束FROM_TOFROM_TO约束约束:定义两个组之间的时序约束,可以是用户组,定义两个组之间的时序约束,可以是用
16、户组,或与定义组或与定义组(FFS,LATCHES,PADS,RAMS(FFS,LATCHES,PADS,RAMS等等)TIMESPEC TIMESPEC“TS_P2STS_P2S”=FROM PADS TO FFS 25ns;=FROM PADS TO FFS 25ns;TIMESPEC TIMESPEC“TS_C2STS_C2S”=FROM FFS TO FFS 30ns;=FROM FFS TO FFS 30ns;MAXDELAYMAXDELAY约束:定义特定线网最大延迟约束:定义特定线网最大延迟NET NET“ENEN”MAXDELAY=5ns;MAXDELAY=5ns;MAXSKEW
17、MAXSKEW约束:控制线网偏移不大于某值约束:控制线网偏移不大于某值NET NET“SIG_3SIG_3”MAXSKEW=3ns;MAXSKEW=3ns;TIGTIG约束:定义时序无关路径约束:定义时序无关路径NET NET“Sig_5Sig_5”TIG TIGUCF语法项目语法项目通配符通配符“*”:代表任何字符串及空格串代表任何字符串及空格串“?”:代表一个字符代表一个字符设计层次设计层次“*”:所有层次所有层次“Level1/*Level1/*”:level1:level1及以下层次及以下层次“Level1/*/Level1/*/”:level1:level1中模块,但不遍历更低层次中
18、模块,但不遍历更低层次注释注释“”:单行注释:单行注释“/*/*/”:跨行注释:跨行注释示例示例NET NET“*AT?*AT?”INST INST“/loads_of_logicloads_of_logic/*/*”LOC=LOC=CLB_rCLB_r*c8;*c8;约束输入工具约束输入工具约束编辑器约束编辑器(Constraints Editor)(Constraints Editor)全局约束全局约束(Global)(Global)端口约束端口约束(Ports)(Ports)高级约束高级约束(Advanced)(Advanced)杂类杂类(MiscMisc)引脚与区域约束编辑器引脚与区域
19、约束编辑器(PACE)(PACE)文本编辑文本编辑全局约束全局约束针对时钟信号针对时钟信号全局约束分为:全局约束分为:周期约束周期约束(PERIOD)(PERIOD)输入延迟约束输入延迟约束(Pad to Setup)(Pad to Setup)输出延迟约束输出延迟约束(Clock to Pad)(Clock to Pad)全局约束全局约束(Global)周期约束周期约束(PERIOD)Jitter:Jitter:抖动抖动Specify TimeSpecify TimeRelative toRelative to倍数倍数相移相移示例:示例:NET NET“clkclk”TNM_NET=TNM_
20、NET=“clkclk”;TIMESPEC TIMESPEC“TS_clkTS_clk”=PERIOD=PERIOD“clkclk”20ns HIGH 50%20ns HIGH 50%输入延迟约束输入延迟约束(Pad to Setup)OFFSET:OFFSET:偏移偏移Clock Pad Net:Clock Pad Net:时时钟线网钟线网Clock Edge:Clock Edge:上升上升沿沿/下降沿下降沿示例示例OFFSET=IN 20ns OFFSET=IN 20ns BEFORE BEFORE“clkclk”HIGH;HIGH;输出延迟约束输出延迟约束OFFSET:OFFSET:偏移
21、偏移Clock Pad Net:Clock Pad Net:时钟线网时钟线网Clock Edge:Clock Edge:上升沿上升沿/下降下降沿沿示例:示例:OFFSET=OUT 20ns AFTER OFFSET=OUT 20ns AFTER“clkclk”HIGH;HIGH;端口约束端口约束(Ports)针对除时钟以针对除时钟以外的信号外的信号分组约束,输分组约束,输入约束,输出入约束,输出约束约束单端口约束单端口约束目前版本不能修改端口方向、位置等;目前版本不能修改端口方向、位置等;对灰色的对灰色的N/AN/A的域因已经在其它相关地方定义,不的域因已经在其它相关地方定义,不能修改;能修改
22、;对需要修改的域,鼠标双击修改;对需要修改的域,鼠标双击修改;分组约束分组约束新建分组:新建分组:选中信号选中信号填填Group NameGroup Name单击单击Create GroupCreate Group示例示例INST INST“dpd_datain_i5dpd_datain_i5”TNM=TNM=“dpd_datain_idpd_datain_i”;INST INST“dpd_datain_i6dpd_datain_i6”TNM=TNM=“dpd_datain_idpd_datain_i”;INST INST“dpd_datain_i7dpd_datain_i7”TNM=TNM=
23、“dpd_datain_idpd_datain_i”;INST INST“dpd_datain_i8dpd_datain_i8”TNM=TNM=“dpd_datain_idpd_datain_i”;高级约束高级约束(Advanced)分组约束:分组约束:TNM/TNM_NET/TNM/TNM_NET/TPT/THRUTPT/THRU专用约束:专用约束:FROM_TOFROM_TO分组约束分组约束(TNM_NET)点击对应点击对应”CreateCreate”输入输入Time NameTime Name选择线网选择线网增加组内线网增加组内线网示例示例NET NET“clkclk”TNM_NET=T
24、NM_NET=“my_netmy_net”;NET NET“clk_ibufclk_ibuf”TNM_NET=TNM_NET=“my_netmy_net”;NET NET“clk_cclk_c”TNM_NET=TNM_NET=“my_netmy_net”;专用约束专用约束(Pad To Setup for Source Synchronous(OFFSET IN BEFORE)点击对应点击对应”CreateCreate”选择源时序分组选择源时序分组输入输入Time Time RequirementRequirement选择时钟网及边沿选择时钟网及边沿选择设置作用分组选择设置作用分组示例示例TI
25、MEGRP TIMEGRP“dpd_datain_idpd_datain_i”OFFSET=IN 20ns OFFSET=IN 20ns“clkclk”HIGH;HIGH;杂项约束杂项约束(Misc)局部约束局部约束I/OI/O端口端口工作电压工作电压工作温度工作温度区域分组区域分组DCMDCM反馈路径延迟反馈路径延迟初始化控制初始化控制杂项约束杂项约束(INIT Value for)Filter:Filter:筛选筛选Init Value:Init Value:值值示例示例INST INST“dpd_data01/dpd_faidpd_data01/dpd_fai_bank01/cnt0_b
26、ank01/cnt0”INIT=0;INIT=0;INST INST“dpd_data01/dpd_faidpd_data01/dpd_fai_bank01/cnt1_bank01/cnt1”INIT=0;INIT=0;管脚和区域约束管脚和区域约束实现软件:实现软件:底层工具编辑器底层工具编辑器(FPGA Editor),(FPGA Editor),布局规划器布局规划器(FloorplannerFloorplanner),),管脚与区域约束编辑器管脚与区域约束编辑器(PACE)(PACE)LOCLOC语句语句基本形式:基本形式:INST INST“instance_nameinstance_n
27、ame”LOC=location LOC=location多个定位任选:多个定位任选:LOC=location1,location2,LOC=location1,location2,;范围定位:范围定位:INST INST“instance_nameinstance_name”LOC=LOC=location:locationSOFTlocation:locationSOFT;示例示例NET NET“Top_Module_PORTTop_Module_PORT”LOC=LOC=“Chip_PortChip_Port”LOC属性属性约束类型约束类型可用属性示例可用属性示例含义含义I/O管脚管脚P
28、12管脚管脚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属性属性约束类型约束类型可用属性示例可用属性示例含义含义TBUFTBUF_R6C7(or.0 or.1)TBUF_X6Y7块块RAMRAMB4_R3C1RAMB16_X2Y56硬件乘法器硬件乘法器M
29、ULT1818_X55Y82全局时钟全局时钟GCLKBUF0(或或1,2,3)全局时钟缓冲器全局时钟缓冲器GCLKPAD0(或或1,2,3)全局时钟端口全局时钟端口DLLDLL0P(或或S)(1,2,3)DCMDCM_X0Y0管脚区域示例管脚区域示例INST INST“instance_nameinstance_name”LOC=P12;LOC=P12;INST INST“instance_nameinstance_name”LOC=CLB_R3C5;LOC=CLB_R3C5;INST INST“instance_nameinstance_name”LOC=SLICE_X3Y2;LOC=SLI
30、CE_X3Y2;INST INST“instance_nameinstance_name”LOC=TBUF_R1C2.*;LOC=TBUF_R1C2.*;INST INST“instance_nameinstance_name”LOC=MULT18 LOC=MULT1818_X0Y6;18_X0Y6;INST INST“instance_nameinstance_name”LOC=clb_r4c5.s1,clb_r4c6.*;LOC=clb_r4c5.s1,clb_r4c6.*;INST INST“instance_nameinstance_name”LOC=SLICE_X2Y10,SLICE
31、_X1Y10;LOC=SLICE_X2Y10,SLICE_X1Y10;INST INST“instance_nameinstance_name”LOC=SLICE_X3Y5:SLICE_X5Y20;LOC=SLICE_X3Y5:SLICE_X5Y20;PACE(Pinout&Area Constraint Editor)PACEI/O管脚约束分配操作管脚约束分配操作确认芯片型号无误确认芯片型号无误菜单菜单IOB-Make Pin Compatible with.IOB-Make Pin Compatible with.菜单菜单IOB-Prohibit Special Pins,IOB-Proh
32、ibit Special Pins,禁止不可用禁止不可用I/OI/O信号分组信号分组按按”ctrlctrl”键选择,键选择,Edit-GroupEdit-Group创建信号组创建信号组分配分配拖放拖放编辑编辑区域约束区域约束关联耦合逻辑,减少布线压力关联耦合逻辑,减少布线压力加大资源利用率加大资源利用率区域约束操作区域约束操作显示资源:显示资源:选择选择LogicLogic鼠标右键,鼠标右键,”Object PropertiesObject Properties”点击点击(assign Area constraint Mode),(assign Area constraint Mode),用鼠
33、标用鼠标划分出布局区域划分出布局区域保存,即可在保存,即可在UCFUCF文件中查看约束文件中查看约束其它操作其它操作多区域划分多区域划分/删除删除禁止布局区域增加禁止布局区域增加/删除删除区域约束操作区域约束操作FPGA配置下载配置下载初始化初始化清空配置存储器清空配置存储器加载配置数据加载配置数据CRCCRC错误检查错误检查Start-UPStart-UPJTAG原理原理iMPACT创建配置文件创建配置文件配置编程参数配置编程参数生成生成FPGAFPGA比特配置文件:比特配置文件:.bit.bit文件文件生成生成PROMPROM比特配置文件比特配置文件芯片下载编程芯片下载编程生成生成FPGA
34、比特配置文件比特配置文件FPGAFPGA比特配置文件:用于调试阶段快速通过比特配置文件:用于调试阶段快速通过JTAGJTAG模式配置模式配置FPGAFPGA芯片芯片断电后,断电后,FPGAFPGA芯片内逻辑立即消失芯片内逻辑立即消失直接单击直接单击”Generate Programming FileGenerate Programming File”即生成即生成生成生成PROM比特配置文件比特配置文件生成生成PROM比特配置文件比特配置文件生成生成PROM比特配置文件比特配置文件生成生成PROM比特配置文件比特配置文件生成生成PROM比特配置文件比特配置文件下载编程下载编程“Configure
35、 DeviceConfigure Device”选择下载方式选择下载方式ISEISE自动连接自动连接FPGAFPGA设备设备鼠标右键选择鼠标右键选择”Initialize ChainInitialize Chain”在希望编程的芯片上单击鼠标右键在希望编程的芯片上单击鼠标右键对对FPGAFPGA芯片,选择芯片,选择”Assign New Assign New Configuration FileConfiguration File”,读取,读取.bit.bit文件;然后文件;然后右键选择右键选择”ProgramProgram”对对PROMPROM芯片,类似芯片,类似初始化扫描链初始化扫描链下载编程下载编程下载中下载中第三方工具第三方工具仿真器:仿真器:ModelSimModelSim综合器:综合器:SimplifySimplify在在ISEISE内直接调用:修改项目属性内直接调用:修改项目属性修改项目属性修改项目属性修改项目属性修改项目属性