这里介绍了我使用的第一个ip核:计数器在quartus中找到counte ip核设置后并编写测试文件,借鉴了小梅哥的材料。上代码:
`timescale 1ns/1ns
`define clock_period 20
module counter_ip;
reg cin;
reg clk;
wire cout;
wire [3:0] q;
counter u_counter(
.cin(cin),
.clock(clk),
.cout(cout),
.q(q)
);
initial clk = 1;
always#(`clock_period/2)clk = ~clk;
initial begin
repeat (20)begin
cin = 0;
#(`clock_period*5)cin=1;
#(`clock_period)cin=0;
end
#(`clock_period*200);
$stop;
end
endmodule
在编写此代码时一九出现了很多低级错误,比如:工程名与模块名不一致,测试文件中的例化模块名称与工程模块不同的问题导致仿真出现错误并浪费时间。太尴尬。