问题描述:
Error (125091): Tcl error: ERROR: Illegal assignment: IP_GENERATED_DEVICE_FAMILY. Specify a legal assignment name.
while executing
"set_global_assignment -name IP_GENERATED_DEVICE_FAMILY "{Cyclone IV E}""
(file "SPWM_ROM.qip" line 3)
Info (125063): set_global_assignment -name IP_TOOL_VERSION 18.1 -qip SPWM_ROM.qip
问题原因
报错是使用低版本的Quartus软件(如Quartus II 13.0)打开了高版本软件(如Quartus 15.1)创建的工程导致的。普通Verilog程序都是完全兼容的,但是对于使用Quartus软件创建的IP,如FIFO、PLL、RAM等,高版本的软件会在其IP描述文件xxx.qip文件中加入对 器件系列(IP_GENERATED_DEVICE_FAMILY) 和 版本号(IP_TOOL_VERSION)的描述,而这些描述语句又是低版本的软件不支持的,所以编译时候会报错。
解决方案
解决方法很简单,直接使用文本编辑器打开报错的qip文件,如上述报错中报的是“SPWM_ROM.qip”这个文件,直接打开,找到报错说的“IP_GENERATED_DEVICE_FAMILY”所在行(应该是第二行)和“IP_TOOL_VERSION”所在行(应该是第三行),直接删除这些行即可。删除这些内容不会对工程造成任何影响。直接删除并保存后再编译即可。
注意事项
一个工程中可能有多个IP,报错一次只报一个的,所以是修改完一个,编译一下,报下一个,根据报错依次修改完所有报错位置后,工程就可以正常编译了。
附件
二楼上传了该工程,本文用到的例子由网友在网上找到并提供下载,感兴趣的可以自己下载了编译尝试。 |