关于把RTL工程代码封装成IP时对define宏定义参数的处理
在把RTL工程封装成IP的时候,如果工程中的代码中含有global include中定义的参数,则vivado不支持该参数文件的封装。出现IP_FLOW 19-4646的错误代码,解决方法:
1、在用到宏定义变量的v文件中都需要用“ `include ”引用;
2、include的路径:如果A.v需要调用param.v文件,那么A.v中调用的路径是以A.v文件所在的位置为起点,param.v所在的位置为终点进行寻址。
例如A.v放在D:/file1/file2目录下;param.v放在D:/file3/,那么在A.v中需要在前面写:`include "../../file3/param.v"
参考UG1118的相关说明;
继续测试的结论:上述第2点是错误的,param.v必须和A.v放在同一个目录下,这样A.v中的include不需要写路径,生成IP之后可以用;
如果A.v中的文件存在路径,则生成IP之后的文件都打散了,A.v根据路径找不到param.v,会报错。