如何用vivado将ucf转成xdc篇1
很高兴告诉你!自从去年10月Xilinx发布ISE147之后,ISE套件便暂时没有了更新计划,相当于进入了软件生命中的“中年”;而当初在2012x版本还作为ISE套件中的一个组件的Vivado,此时已经如早上8、9点钟的太阳一样冉冉升起:因为随着FPGA/SOC制造工艺、硬件单规模和设计方法的不断改进,传统的基于ISE的设计方法已经逐渐不能满足我们的要求了。
所以针对新的Artix-7/Kintex-7/Virtex-7芯片,Xilinx都建议我们使用全新设计的Vivado套件来进行开发(使用Spartan-6的筒子可以在新设计中考虑向Artix-7过渡了)。此外,因为ISE套件已经没有升级计划表,所以对新的作系统也无法支持了,例如在Win8/81上面,ISE147几乎无法完美运行,而从Vivado20141版本就开始全面支持了。
直观的来看,我理解的Vivado套件,相当于把ISE、ISim、XPS、PlanAhead、ChipScope和iMPACT等多个独立的套件集合在一个Vivado设计环境中,在这个集合的设计流程下,不同的设计阶段我们采用不同的工具来完成,此时Vivado可以自动变化菜单、工具栏,可以显著提高效率:因为不需要在多个软件间来回切换、调用,白白浪大量的时间。基于VivadoIP集成器(IPI),则把我们对硬件的配置更好地集成到我们的设计中,既极大地提高了对IP的使用和管理,也帮助我们减小了软件和硬件(例如ZYNQ器件的PS)之间的隔阂。
VivadoHLS则可以把现有的C代码,在一些特定的规范下直接转换为可综合的逻辑,这也将极大地提高我们实现和移植现有算法的速度。因为Vivado套件较为复杂,所以先用一个对比测试,来检验一下它们之间的性能差别。
采用的测试环境是:作系统:win7sp1x64CPU:I7-4770k,开启超线程,全部超频至43GHzISE:147Vivado:20141使用的芯片:ZYNQ系列中的xc7z020-clg400-2(设计全部在PL中实现)待测试程序:一个用来做实时仿真的模型(算下来有140424行Verilog代码)。为了减小硬盘的延迟影响,作系统和软件都安装在SSD上面,而把工程文件放在RAMdisk上面(因为综合、实现的过程都需要大量的小文件读取作)。
运行的测试:输入正确的工程,但是清理所有工程文件,这样就可以从0开始完成所有的综合、翻译、映射、布局布线和升级bit流文件的所有作;使用的策略则全部用默认策略。首先,在ISE上运行,测试开始时间是7:33:10,生成bit文件的时间是7:37:01,共花了231秒。
然后,在Vivado上运行。为了方便测试,在Vivado套件里直接导入ISE的工程,源文件都可以正常导入,但是约束文件需要重新配置,因为ISE使用的ucf格式,而Vivado则升级为更先进的xdc格式,需要全部重写约束文件。
不过这也不是特别困难的事情,例如管脚约束的转换就比较容易:例如,ucf为:NET"gateway_out1[0]"LOC=Y12;NET"gateway_out1[0]"IOSTANDARD=LVCMOS18;xdc则为:set_propertyPACKAGE_PINY12[get_ports{gateway_out1[0]}]set_propertyIOSTANDARDLVCMOS18[get_ports{gateway_out1[0]}]为了快速转换,用查找/替换可以较快的完成其中的一部分转换。然后在Vivado中点击resetruns,如图1所示,这样会清除所有潜在的已经生成的结果(清除综合的结果时可以选择自动清除实现的结果)。
图1resetruns为了分发挥Vivado套件的潜力,在tclconsole里输入下面的脚本:set_paramgeneralmaxThreads8这样就可以分发挥最大的CPU潜力了(例如DRC检查可以使用全部的线程进行并行作)。然后运行产生比特流的作,开始时间是8:15:20,生成bit文件的时间是8:17:12,共花了112秒。
对比ISE的231秒,可以看出Vivado使用的时间只有ISE的485%。俗话说,“时间就是金”,“效率就是生命”,Vivado只用了不到ISE一半的时间就完成了这个复杂工程的全部实现过程,数据非常有说服力。
当然Vivado使用的内存貌似比ISE多了几百MB,但是对于现在配置中等的机器都可以达到8GB内存的情况下,这点内存的差距还是可以忽略的。(好马配好鞍,电脑的这点投资和高端的芯片带来的性能提升和time-to-market减小相。
VIVADO的XDC怎么实现LOC约束篇2
_delay。其中,只有那些从FPGA管脚进入和/或输出都不经过任何时序元件的纯组合逻辑路径可以用set_max_delay/set_min_delay来约束,其余I/O时序路径都必须由set_input_delay/set_output_delay来约束。如果对FPGA的I/O不加任何约束,Vivado会缺省认为时序要求为无穷大,不仅综合和实现时不会考虑I/O时序,而且在时序分析时也不会报出这些未约束的路径。
本文以下章节将会着重
怎么写xdc约束文件setproperty篇3
在java.util.Properties提供有读取资源文件的工具。
privatestaticvoidreadProperties()throwsIOException{Propertiesprops=newProperties();InputStreaminStream=Spike.class.getResourceAsStream("Mock.properties");props.load(inStream);Enumerationenums=props.propertyNames();while(enums.hasMoreElements()){Stringkey=(String)enums.nextElement();System.out.println("Property--->>>>["+key+"]"+props.getProperty(key));}}。
eclipse怎么添加约束文件篇4
第一步:打开编译器Eclipse然后打开一个xml文件。
第二步:然后点击鼠标右键,后选择Preferences。
第三步:而后再Preferences里选择xml
第四步:第四步:先选择XMLFiles,再选择Editor,再选择ContentAssist
第五步:第五步:再在我所圈出的地方设置时间(500)和字母(.),而后点击ok即可。
怎么写xdc约束文件setproperty篇5
在java.util.Properties提供有读取资源文件的工具。
privatestaticvoidreadProperties()throwsIOException{
Propertiesprops=newProperties();
InputStreaminStream=Spike.class.getResourceAsStream("Mock.properties");
props.load(inStream);
Enumerationenums=props.propertyNames();
while(enums.hasMoreElements()){
Stringkey=(String)enums.nextElement();
System.out.println("Property--->>>>["+key+"]"+props.getProperty(key));
}
}