ISE对verilog的语法支持比较弱,最近一个IP需要在FPGA上测试,里面有比较多的for循环等在综合中用的比较少语法。ISE的XST综合时总是报错。因此需要切换到synplify来综合。
为了方便我想直接在ISE中用synplify来替代XST。首先尝试在GUI上替换,没有问题一切正常。然后想用脚本来全流程生成bit文件。
配置synplify,在GUI中可以右键单击synplify的图标,从下拉菜单中选择process propeties,然后可以从这里面配置需要的选项。我想在脚本配置这些选项的话其实和配置XST是一样的,只需要使用project set Switch Name或者“Property Name” 相应的值。其中Switch Name和Property Name都能在GUI上看到,两者二选一即可。譬如我要关闭Resource sharing这个选项,可以在脚本中写project set resource_sharing 0或者project set “”Resource sharing“ false。
另外如果需要配置一些synplify的属性,那么这些属性不是option,很多是在sdc的约束中写的。譬如打平设计应该在sdc中写define_global_attribute syn_hier ” flatten,remove”。
具体有哪些option,哪些属性,请自行参考synplify的安装目录。
再记录一下我走的弯路。我开始看xilinx的文档,里面将了可以在ISE运行synplify -batch script_file.tcl来配置synplify。但是发现怎么配置都不行。后来查看了gise和xise文件,才知道所有ISE的配置都会是由这两个文件控制的。而这两个文件在脚本中是由project set来设置的。还有就是,配置synplify的属性时,不知道不是通过option来配置,而是在约束中配置,或者在verilog文件中加注释来配置。