vivado自己设置的工程目录本身比较深,而文件路径太深会导致某些奇怪的错误。这是windows系统本身的特性决定的,windows的路径名不能超过260字节,所以大家设计的时候一定注意路径名长度,尤其是路径很深的时候很容易超过这个上限。这次遇到的报错是使用vivado2017.2在win7 64位系统下运行产生的。当然,其他更老的版本在路径名很长的时候也会遇到相同的问题。
报错
下面是报错的提示信息:
ERROR: [Common 17-680] Path length exceeds 260-Byte maximum allowed by Windows: f:/Company_Prj/Date201509/xilinx_ics_100t/xilinx_wireless_ics_prj0915/xilinx_wireless_35t_prj0915/xilinx_wireless_35t_prj0915.runs/impl_1/.Xil/Vivado-12912-RD-PC/dbg_hub_CV.0/run/.srcs/sources_1/ip/dbg_hub_CV/fifo_generator_v12_0/hdl/fifo_generator_v12_0_vhsyn_rfs.vhd。
从中可以看出,提示也告诉你“路径长度超过windows允许的最大260B”,并且告诉你是哪个文件的路径长度过长导致的。提示信息本身还是很完整的,可以很轻易的找到问题根源。
解决方法
- 在Linux下运行工程,优点是除了这个bug以外其他一些bug也会被规避,因为Linux下的vivado的确运行更稳定。
- 把文件放到一个更浅的目录下,同时变短文件名,保证路径长度小于260字节。
加快编译速度命令
我们都知道Vivado编译起来相当的慢,每次综合起来我就拿起了手机,这个方法可以提高编译速度,在VIVADO中一个run编译时支持的线程数如下表:
vivado2017.2版本在windows下最多支持4线程同时跑,而Linux下最大支持到8,更新的版本还没有试过。在
设置N线程的命令为: set_param general.maxThreads N
N可以为4或者8。在windows下工程越大的时候越明显,我试过以后速度大概快了10~30分钟,根据工程不同会有浮动。
读取当前线程数的命令: get_param general.maxThreads
输入以后会console会输出打印一个数字代表当前线程数。
warning
上面的命令在关闭vivado后不会保存,会回到默认值,所以如果需要设置需要重新输入命令!最好在每次编译前就检查一次。
没有回复内容