EDK 在默认情况下会为microblaze系统的输入输出端口插入buffer,因为此时EDK认为microblaze系统就已经是顶层了,ISE也是一样,默认情况下会在顶层的输入输出端口上插入buffer,如果在EDK生成的microblaze系统是在ISE中作为一个子模块的话,那么EDK就不能给microblaze系统插入buffer了,否则编译会出错。解决思路是让EDK知道microblaze系统是ISE的一个子模块,而不是顶层。经过摸索,发现以下方案是可行的:
1.首先在ISE中创建工程,添加source,选microblaze。
2.添加完之后会打开xilinx platform studio进行cpu系统创建,这时有选板子型号这一步,这里非常关键,如果选择的是上面的 I would like to creat a system for the following development board ,那么EDK就会自动生成ucf文件,同时在microblaze系统插入buffer,所以千万不能选这一项,要选下面的i would like to creat a system for a custom board ,这样之后EDK不会自动生成ucf文件,需要你之后在ISE中手动创建,而且也不会插入buffer了。