EDK 调用ISE生成的IP
在EDK定制用户IP需要调用ISE生成的IP,在网上搜索了解决方案如下,在ISE中封装HDL,并使用IP,设计分三大步:
第一步:像通常建立工程设计一样,先编写一个模块,如:
module add(a,b,c)
Input a,b;
output
assign c=a+b;
endmodule
设置综合选项,综合过程中不能加入IO buf和iob(考虑到跟外部模块接口问题):
在综合设置中,-iobuf不要勾选,-iob选 NO,综合,生成网表add.ngc;
第二步:制作一个blackbox模块(就是一个IP的wrapper封装设计),如下:
module add(a,b,c)
input a,b;
output
endmodule
只申明端口。
第三步:使用此IP,需要先把第二步的blackbox以v文件形式加入到工程,再调用这个模块,再把add.ngc文件加入到工程文件夹下即可(注意此过程在综合实现时候,要把第一步的两个选项选上)。
按照以上的步骤建立工程,然后在modelsim测试发现输出C一直是高阻态,感觉像是第一步生成的网表没有加进去,斑竹知道这里面哪一步有问题吗
testbench.v
module testbench;
// Inputs
reg a;
reg b;
// Outputs
wire c;
// Instantiate the Unit Under Test (UUT)
ip_test uut (
.a(a),
.b(b),
.c(c)
);
initial begin
// Initialize Inputs
a = 0;
b = 0;
// Wait 100 ns for global reset to finish
#10 a=1;
b=0;
#20 a=1;
b=1;
#30 a=0;
b=1;
#200 $stop;
// Add stimulus here
end
endmodule
http://cache.amobbs.com/bbs_upload782111/files_47/ourdev_694752XUO9CU.png
(原文件名:QQ截图20111113131821.png) 希望各位大侠不吝指教 我将上面的程序下载到板子发现是正确的,不知道怎么解释,难道调用的IP不能用modelsim仿真……
页:
[1]