写在开头
进行DDR3读写实验时,发现MIG ip核生成错误,问了很多地方都没找到解决办法,这个问题足足折腾了我一下午,费劲力气终于成功解决,中间曲折不一一赘述,特记录下供道友参考。
问题特征包括以下:
在MIG IP配置对话框,配置好参数,点击generate后,直接弹出以下对话框。
报错信息提示:
ERROR: [Common 17-39] 'set_property' failed due to earlier errors.
[IP_Flow 19-3460] Validation failed on parameter'XML_INPUT_FILE(XML_INPUT_FILE)'for Specified PRJ file does not exist 'mig_a.prj'. IP 'axi_ddr'
[Common 17-17] undo 'set_property -dict.
一、导致该问题的原因
user文件夹下的用户名文件夹名字为中文,导致vivado无法调用ip到系统文件夹下进行生成。
读者可自行查看,自己的系统路径:C盘-用户 下的以用户名命名的文件夹是否为中文。
如果不是这个问题,那说明你的问题跟我的不一样,下文也就无需再看了。
二、解决办法
2.1修改用户名文件夹的名称
注意,这里所指用户名不是电脑的管理员名称,而是C盘下‘用户’文件夹下的以用户名命名的一个文件夹名称。可能有些读者之前遇到过装一些国外研发的软件时由于用户名为中文而安装不上,然后改过用户名。但仅仅改用户名并不会改变系统盘(C盘)下的文件夹名称,你会发现文件夹仍然是以旧用户名命名的。
修改用户文件夹名称的方法建议参考B站某up主的视频:【【超详细,亲测有效】win10 win11系统更改电脑用户名——地平线5、战地5】 https://www.bilibili.com/video/BV1FW4y127Pu/?share_source=copy_web&vd_source=d3f82244466579d2411149277fe10f72
这里要用到PE系统,以下操作都在PE系统中进行。主要讲一下关键点:
1、在搜索栏输入:regedit打开注册表。
2、找到路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-1971962075-3642608188-2064140572-1001
3、右边栏有一个C:\Users\用户名 的文件,点击修改,将“用户名”改为一个英文名,退出。
4、到C盘下找到C:\Users\用户名 的文件夹,修改名字为你刚刚在注册表中重名的英文名字。
2.2 善后操作
修改了Windows的用户名后(即修改了"C:\Users\用户名"中的"用户名"),这事儿啊还没完,为了保证各功能正常使用,我们还需要进行以下两个操作:
(1) 改环境变量中的"C:\Users\旧用户名" -> "C:\Users\新用户名"
(2) 改注册表中的"C:\Users\旧用户名" -> "C:\Users\新用户名"
(对注册表建议使用软件RegWorkshop(Bing搜一下)进行批量修改,快捷键为Ctrl+R)
1、先来修改环境变量中的用户名。
2、修改注册表。我们先搜索原来的用户名,等下批量替换掉。
批量替换注册表中的原用户名为新的英文用户名。
三、回到vivado,再次生成MIG IP核
不再报之前的错误,能够正常进行IP核生成了!!
IP核生成成功!