为什么总是出错?
请各位大侠帮忙分析一下,我用ISE10.1的ip核生成器生成了一个CAM的IP核(名字是cam_exam_1),然后在另一个模块中将它实例化,取名为cam_exam_5,实现的时候就出现了以上错误,请明人指点,附代码如下:
module cam_test_top(
clk,
din,
we,
wr_addr,
busy,
match,
match_addr );
input clk;
input [7 : 0] din;
input we;
input [3 : 0] wr_addr;
output busy;
output match;
output [15 : 0] match_addr;
cam_exam_1 cam_exam_5(
.clk(clk),
.din(din),
.we(we),
.wr_addr(wr_addr),
.busy(busy),
.match(match),
.match_addr(match_addr)
);
endmodule
备注:ip核可以单独在modelsim下仿真;
似乎你没有把这个模块放到工程下吧?看你应该使用的ISE,通过工程导航窗口,看看所属顶层下面的该子模块是否存在?
他们在同一个工程下!
ngc呢?
以前自己写模块的时候如果在上层模块调用子模块没有这个问题,也没有考虑ngc的问题
module cam_exam_1(
clk,
din,
we,
wr_addr,
busy,
match,
match_addr);
input clk;
input [7 : 0] din;
input we;
input [3 : 0] wr_addr;
output busy;
output match;
output [15 : 0] match_addr;
// synopsys translate_off
/**/CAM_V5_1 #(
2, // c_addr_type
8, // c_cmp_data_mask_width
8, // c_cmp_din_width
8, // c_data_mask_width
16, // c_depth
8, // c_din_width
0, // c_enable_rlocs
0, // c_has_cmp_data_mask
0, // c_has_cmp_din
0, // c_has_data_mask
0, // c_has_en
0, // c_has_multiple_match
0, // c_has_read_warning
0, // c_has_single_match
1, // c_has_we
1, // c_has_wr_addr
16, // c_match_addr_width
0, // c_match_resolution_type
1, // c_mem_init
"cam_exam_1.mif", // c_mem_init_file
1, // c_mem_type
1, // c_read_cycles
0, // c_reg_outputs
0, // c_ternary_mode
8, // c_width
4) // c_wr_addr_width
inst (
.CLK(clk),
.DIN(din),
.WE(we),
.WR_ADDR(wr_addr),
.BUSY(busy),
.MATCH(match),
.MATCH_ADDR(match_addr),
.CMP_DATA_MASK(),
.CMP_DIN(),
.DATA_MASK(),
.EN(),
.MULTIPLE_MATCH(),
.READ_WARNING(),
.SINGLE_MATCH());
// synopsys translate_on
endmodule
上面就是用ISE生成的ip核,调用的时候出现了上述问提,我用的是ISE10.1,请各位帮忙看一下为什么不能调用
用Magecore产生的IP可能会存在这样的问题,不能只使用它的.v文件。我之前让你确认的:不是看它们是不是在一个工程下,而是看它们在这个工程下是不是属于主从关系,这个关系在导航窗口应该是能够看出来的,换句话就是说你使用的RAM是不是在调用它的程序下一层,而不是两者是平行的。如果确认了是前者的话,可能就如前面那位朋友说的,也许要考虑NGC或者它的IP原型文件(忘记什么后缀名了),而不是仅仅使用v文件。
是的。10.1或者11里有些IP是不生成NGC,但是有依赖的文件。
先前我是先生成了ip核然后再写顶层模块(调用此ip核),
这次我先写了顶层模块cam_test_top ,
然后再其下一层添加了一个ip核形式的文件,
这次貌似可以,
实现的时候能够通过
嗯,我以前也是按照你后面的操作进行的,如果先生成IP再去添加,就容易出现这种问题。
请问有谁用EDK吗,最近在学这个,找不到合适的例子
