做一个很简单的测试
在ISE的SCH里调用EDK的symbol,EDK的功能也很简单,就是CPU通过串品打印一串字符
首先,我建一个ISE工程
再建一source sch类型,并设置为顶层,取名为top.sch
再建一source 类型为Embedded processor,取名为mycpu
然后EDK自动打开,我根据向导添加外设,设置时钟,直到finish
然后在edk下generate netlist, generate lib and bsp,builder all user app。
再回到ISE下,选中mycpu, create schematic symbol,并将该symbol添加到top.sch中
再添加端口,约束管脚
最后综合,生成bit
但到Translate 时,就通不过了
报如下错误
软件为12.2版本
Processing BMM file "edkBmmFile.bmm" ...
ERROR:NgdBuild:989 - Failed to process BMM information edkBmmFile.bmm
Checking expanded design ...
ERROR:NgdBuild:604 - logical block 'microblaze_0/proc_sys_reset_0' with type
'proc_sys_reset_0_wrapper' could not be resolved. A pin name misspelling can
cause this, a missing edif or ngc file, case mismatch between the block name
and the edif or ngc file name, or the misspelling of a type name. Symbol
'proc_sys_reset_0_wrapper' is not supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/mdm_0' with type
'mdm_0_wrapper' could not be resolved. A pin name misspelling can cause this,
a missing edif or ngc file, case mismatch between the block name and the edif
or ngc file name, or the misspelling of a type name. Symbol 'mdm_0_wrapper'
is not supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/clock_generator_0' with type
'clock_generator_0_wrapper' could not be resolved. A pin name misspelling can
cause this, a missing edif or ngc file, case mismatch between the block name
and the edif or ngc file name, or the misspelling of a type name. Symbol
'clock_generator_0_wrapper' is not supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/RS232' with type
'rs232_wrapper' could not be resolved. A pin name misspelling can cause this,
a missing edif or ngc file, case mismatch between the block name and the edif
or ngc file name, or the misspelling of a type name. Symbol 'rs232_wrapper'
is not supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/lmb_bram' with type
'lmb_bram_wrapper' could not be resolved. A pin name misspelling can cause
this, a missing edif or ngc file, case mismatch between the block name and
the edif or ngc file name, or the misspelling of a type name. Symbol
'lmb_bram_wrapper' is not supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/ilmb_cntlr' with type
'ilmb_cntlr_wrapper' could not be resolved. A pin name misspelling can cause
this, a missing edif or ngc file, case mismatch between the block name and
the edif or ngc file name, or the misspelling of a type name. Symbol
'ilmb_cntlr_wrapper' is not supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/dlmb_cntlr' with type
'dlmb_cntlr_wrapper' could not be resolved. A pin name misspelling can cause
this, a missing edif or ngc file, case mismatch between the block name and
the edif or ngc file name, or the misspelling of a type name. Symbol
'dlmb_cntlr_wrapper' is not supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/dlmb' with type 'dlmb_wrapper'
could not be resolved. A pin name misspelling can cause this, a missing edif
or ngc file, case mismatch between the block name and the edif or ngc file
name, or the misspelling of a type name. Symbol 'dlmb_wrapper' is not
supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/ilmb' with type 'ilmb_wrapper'
could not be resolved. A pin name misspelling can cause this, a missing edif
or ngc file, case mismatch between the block name and the edif or ngc file
name, or the misspelling of a type name. Symbol 'ilmb_wrapper' is not
supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/mb_plb' with type
'mb_plb_wrapper' could not be resolved. A pin name misspelling can cause
this, a missing edif or ngc file, case mismatch between the block name and
the edif or ngc file name, or the misspelling of a type name. Symbol
'mb_plb_wrapper' is not supported in target 'spartan3a'.
ERROR:NgdBuild:604 - logical block 'microblaze_0/microblaze_0' with type
'microblaze_0_wrapper' could not be resolved. A pin name misspelling can
cause this, a missing edif or ngc file, case mismatch between the block name
and the edif or ngc file name, or the misspelling of a type name. Symbol
'microblaze_0_wrapper' is not supported in target 'spartan3a'.
Partition Implementation Status
-------------------------------
No Partitions were found in this design.
-------------------------------
NGDBUILD Design Results Summary:
Number of errors: 12
Number of warnings: 0
Total REAL time to NGDBUILD completion: 3 sec
Total CPU time to NGDBUILD completion: 3 sec
One or more errors were found during NGDBUILD. No NGD file will be written.
Writing NGDBUILD log file "top.bld"...
Process "Translate" failed
后来看到官方的解释
http://www.xilinx.com/support/answers/38262.htm
说是在ISE12.2的版本中,ISE只复制了顶层的NGC文件,即mycpu.ngc,而顶层mycpu还包含其它ngc文件,因此找不到,报错。
解决办法是:在mycpu module前面加上
(* box_type = "user_black_box" *)
如:
(* box_type = "user_black_box" *)
mycpu my_cpu_moudle (.fpga_0_clk_1_sys_clk_pin(sys_clk),
.fpga_0_rst_1_sys_rst_pin(sys_rst_n),
.fpga_0_RS232_RX_pin(uart_rxd),
.fpga_0_RS232_TX_pin(uart_txd),
.led_out_GPIO_IO_O_pin(led_out[0:3]));
就可以了
SuperX-man 解释说:
“你知道我们调用的IP核的内部结构都是保密的,也就是BLACK BOX,加了这一句,也就是指向了你导入的那些东西,不加的话,指向性就不明确了,所以报错说找不到.”
网友TOTO无烦忧也给出了解决的方法
在ISE 的processes栏下,选中Translate,右键process propreties.....
弹出Translate Properties对话框,
在-sd macro search path 中加上EDK工程的implementation子目录的路径
就可以了
EDK生成的NGC都是在implementation目录的。
下面是原帖讨论的地址:
用户403665 2011-12-6 09:52
tengjingshu_112148725 2009-9-27 09:04