在开始菜单找到Quartus Prime工具,点击并打开。
点击Quartus菜单File——New:
选择Verilog HDL File,点击OK:
这是新建的.v文件如下:
在新建的.v文件中键入如下Verilog代码:
module mux2x1( //模块的开头以“module”开始,然后是模块名“mux2x1”
input clk,
input reset,
input [3:0] in1, //数据输入信号in1
input [3:0] in2, //数据输入信号in2
input sel, //选通信号
output reg[3:0] out //输出信号
);
always @(posedge clk or negedge reset)begin
if(!reset)begin
out <= 0;end
else if (sel==1'b1)begin
out <= in2;end
else begin
out <= in1;end
end
endmodule
然后点击保存,将文件存为mux2x1.v:
点击Platform Designer 图标:
在弹出的窗口里面双击New Component:
然后在Component Type 栏填入如下信息:
然后在Files栏点击Add File...:
选择事先新建好的IP文件夹里面的mux2x1.v文件:
然后点击Analyze Synthesis Files进行mux2x1.v文件的分析和综合,当分析和综合信息提示窗口没有错误提示以后,直接点击Close关闭分析信息提示窗。
此时Message窗口还有这些错误提示,暂时不管。( 注意:不要把 message栏中的错误提示误认为是综合分析的错误提示了, message 栏中的错误提示是告诉用户这个组件的某些设置有问题,这些是需要以后的IP互联的步骤中解决。)
然后点击Signal&Interface窗口:
再点击<<add interface>>选择Conduit来添加一个Conduit 端口:
修改conduit端口的name为conduit_in1,Associated Reset 设置为reset:
然后选中in1信号拖拽到Conduit_in1下面来:
接着连续添加3个Conduit端口,分别命名为Conduit_in2、Conduit_sel、Conduit_out,然后将这三个Conduit端口的Associated Reset 都设置为reset。然后再将in2、sel、 out三个信号拖拽到对应的Conduit端口下:
然后删除多余的avalon_slave_0端口:
然后点击Finish:
这时候在IP Catalog栏就可以看到刚才自定义的IP了:
双击IP Catalog窗口的mux2x1 IP 就可以将其添加到Platform Designer窗口啦!
我们在后期的教程中将会演示如何将该IP添加到Platform Designer 当中,然后完成一整个纯RTL 的FPGA系统设计。
备注:
1. 每次移植该IP给其他项目工程使用的时候,请连同拷贝这两个文件mux2x1.v和mux2x1_hw.tcl。
2. 在前面保存mux2x1_hw.tcl文件的时候是保存到Quartus安装路径下去了,移植时记得将mux2x1_hw.tcl拷贝到IP文件夹里面去。
3. 为了方便移植管理,记得修改mux2x1_hw.tcl文件里面的绝对路径到相对路径。