框图(Block Design)中调用IP核
举一个简单的例子,通过调用乘法器IP核,产生一个能计算平方的新模块
创建框图设计文件
选择Create Block Design,创建一个框图设计文件
输入文件名并点击OK
添加IP核
在框图空白处右击,选择Add IP,或者点击加号
可以直接搜索需要的IP核,双击确认
IP核即可被添加进来,可以用导线将其与其他器件连接
双击这个IP核符号,可以打开参数设置对话框。点击左上方的Documentation可以查看IP核的手册。这里将输入的A、B均设置为4为无符号型,其他为默认值,点击OK确认
绘制电路
右击Diagram窗口空白处,选择Create Port
弹出窗口中,设置端口a为4位输入信号,并点击OK
将a与A、B都连接起来
同样的方法,添加一个8位输出端口p,与P连接
再添加一个clk时钟输入端口,与CLK连接
最终结果如图
仿真测试
右击框图设计文件design_1,选择Create HDL Wrapper
选择第二项自动更新并点击OK
打开生成的design_1_wrapper.v文件如图
添加顶层Testbench文件即可进行行为仿真,代码如下,给输入信号a赋初值为8,clk连接到Testbench生成的时钟信号c上
module testbench(
);
wire [3:0]a = 8;
wire clk;
wire [7:0]p;
reg c = 0;
design_1 design_1_i
(.a(a),
.clk(clk),
.p(p));
always #10 c <= ~c;
assign clk = c;
endmodule
启动行为仿真,最终输出的波形如下。可以看到,在clk的第一个上升沿后,就有 p = a*a = 64,即实现了平方运算