赛灵思 ISE所涉及的一些命令以及Command Line的使用
,在使用Command Line之前最好确认一下是否存在。偶一般会将这3种文件作备份,到时候好拿出来,改一改就用。
b. 在Xilinx的安装目录Xilinx\doc\usenglish\books\docs下,有关于这些command的pdf文件,如果有需要,可以读一读。不过,经过偶苦读一阵之后,偶发现,其实没有太大必要,有问题再说吧。
4. 总结
其实这个话题也比较简单,三言两语也可说清楚,但根据偶过去惨痛的新手经验,偶相信还是比较详细地讲解一些为好。至少可以让新手们多了解一些ISE本身。
[讨论1]
建议综合和布局布线一定要用命令行的方式来跑,包括synplify和ISE对此的支持都很好。
几大好处偶想到的:
1,如果你用的PC工作站,双CPU,那么可以同时跑两个任务。
2,便于归档,进行版本控制,大项目必须要做的工作。 3,便于重现问题,因为命令行可以保证在原始输入(源码、约束)不变的前提下得到只有时间标签不同的bit文件。
4,便于自定义一些非常规的操作,比如自动生成一个插入某些测试引脚的bit文件等等。
除了楼主提到的还建议几点:
1,修改所有目录路径为相对路径,这样同样一个目录复制到别处也不用改命令行。
2,可以直接用ultraedit打开工程目录下的*.cmd_log文件。
3,那些删除临时目录或者复制网表文件之类的动作可以一起加到命令行中执行。总之,修改代码后,直接运行一个命令行全部搞定!
[讨论2]
建议太棒了!小弟获益匪浅。
偶想再请教几个问题:
1。"便于归档,进行版本控制,大项目必须要做的工作。"
目前我是用ISE的Archive进行版本备份,Archive自动生成一个zip文件,然后备份岛服务器。不知道丁丁所说得用command line进行归档是怎么回事,可否讲解几句?
2。"便于重现问题,因为命令行可以保证在原始输入(源码、约束)不变的前提下得到只有时间标签不同的bit文件"
"时间标签"是指什么?我不明白这个术语。如果源代码和约束保持不变的话,唯一可调节的就是map和PAR的effort了。重现问题是指保存以前的bit文件以备将来使用?
3。"自动生成一个插入某些测试引脚的bit文件等等"
丁丁可否介绍一下这个"插入测试引脚"?
4。"那么可以同时跑两个任务"
我觉得CPU倒不是瓶颈,关键是内存到时恐怕不够用。而且win2000 pro好像最多也就支持2G的内存吧。
我们还有另外一台工作站,使用了4个AMD Appro 64-bit processor。但好像兼容性不太好,PAR的时候老是出错。不知道升级到6.2能不能解决这个问题。
但看另外几个贴子说6.2有几个比较严重的bug,请问丁丁使用过6。2没有?值得升级吗?
多谢!
[讨论1]
1,Achieve可以进行版本管理,但是文件太大。一般来说,作版本控制最好是保存所有原始输入,如果做FPGA,原始输入包括HDL代码,综合工程.prj或者脚本.tcl,综合约束.sdc,实现约束.ucf,所有core的网表.edn,实现的脚本.bat,再有就是注意综合工具的版本和实现工具的版本。
如果所有这些都没有变化,那么可以保证再运行一遍得到完全一样的结果。这也是版本控制的一个关键吧,只要保证可重复性,那么那些结果除了bit你要用到其他也可都不保存。
2,时间标签就是time stamp,在网表文件和bit文件头都有,表示这个文件的生成时间记录,这个不会影响到内部的功能。
3,在插入测试引脚这里,可以利用FPGA Editor来操作,直接编辑.ncd文件,再进行bitgen就可以了,那么如果你需要插入很多测试引脚,利用脚本(好像是.scr)可以帮你自动完成,然后只进行bitgen就可以了,避免重新布局布线浪费时间,避免重新布局布线影响timing。当然FPGA Editor还可以做很多修改了,就不多说了。
4,给一个以前的脚本例子:
综合和实现的命令行:
synplify_pro -batch ../script/chip_syn.tcl
ngdbuild -dd ./_ngo -uc ../script/chip_par.ucf -p xc2s200-fg456-5 .\rev_1\chip.edf chip.ngd
map -p xc2s200-fg456-5 -timing -cm speed -detail -ir -pr b -o chip_map.ncd chip.ngd chip.pcf
par -w -ol med chip_map.ncd chip.ncd chip.pcf
bitgen -w -f ../script/chip_par.ut chip.ncd
copy chip.bit ..\bit\
里面这个chip_par.ut保存了bitgen命令的选项,也可以不用这个文件,都加在命令行里。
后面是chip_syn.tcl:
project -new
#add_file options
add_file -constraint "../script/chip_syn.sdc"
add_file -verilog "../src/src1.v"
add_file -verilog "../src/src2.v"
add_file -verilog "../src/src3.v"
add_file -verilog "../src/src4.v"
add_file -verilog "../src/src5.v"
add_file -verilog "../src/src6.v"
add_file -verilog "../src/src7.v"
add_file -verilog "../src/src8.v"
#device options
set_option -technology SPARTAN2
set_option -part XC2S200
set_option -package FG456
set_option -speed_grade -5
#compilation/mapping options
set_option -default_enum_encoding default
set_option -symbolic_fsm_compiler 0
set_option -resource_sharing 0
set_option -use_fsm_explorer 0
#map options
set_option -frequency 50.000
set_option -fanout_limit 100
set_option -disable_io_insertion 0
set_option -pipe 0
set_option -fixgatedclocks 0
set_option -retiming 0
set_option -modular 0
set_option -update_models_cp 0
set_option -verification_mode 0
#simulation options
set_option -write_verilog 0
set_option -write_vhdl 0
#automatic place and route (vendor) options
set_option -write_apr_constraint 0
#set result format/file last
project -result_file "rev_1/chip.edf"
#implementation attributes
set_option -vlog_std v2001
project -run
只是个人的一点建议,版本控制只要做了就可以,保存archive也要知道这个东东怎么来的,下次可以保证还作出来同样的东东。保存命令行也要知道所有的软件版本等。
- Xilinx Kintex UltraScale 一半尺寸的 PCI Express 平台 (HTG-K816)(06-15)
- Xilinx全新参考设计提供业界首个单芯片400G解决方案(02-12)
- Xilinx用于工业自动化的机器视觉解决方案(11-30)
- Xilinx多协议机器视觉摄像机参考设计(12-01)
- 机器视觉技术原理解析及解决方案集锦(02-06)
- 机器视觉在汽车电子方向的应用解决方案(02-13)
