联合仿真步骤:
1、quartus建立一个工程****
module pll(
input clk,
input rst_n,
output clk_45p ,
output clk_90p ,
output clk_135p ,
output clk_180p ,
output clk_n45p ,
output clk_n90p ,
output clk_n135p ,
output clk_n180p
);
pll_clk u_pll_clk(
.refclk (clk ),// refclk.clk
.rst (~rst_n ),// reset.reset
.outclk_0(clk_45p ),// outclk0.clk
.outclk_1(clk_90p ),// outclk1.clk
.outclk_2(clk_135p ),// outclk2.clk
.outclk_3(clk_180p ),// outclk3.clk
.outclk_4(clk_n45p ),// outclk4.clk
.outclk_5(clk_n90p ),// outclk5.clk
.outclk_6(clk_n135p),// outclk6.clk
.outclk_7(clk_n180p) // outclk7.clk
);
endmodule
2、建立好工程后,编译工程
3、编写测试文件
`timescale 1 ns/1 ns
module tb_pll();
//时钟和复位
reg clk ;
reg rst_n;
//时钟周期,单位为ns,可在此修改时钟周期。
parameter CYCLE = 10;
//复位时间,此时表示复位3个时钟周期的时间。
parameter RST_TIME = 20 ;
pll u_pll(
.clk (clk ),
.rst_n (rst_n ),
.clk_45p (clk_45p ),
.clk_90p (clk_90p ),
.clk_135p (clk_135p ),
.clk_180p (clk_180p ),
.clk_n45p (clk_n45p ),
.clk_n90p (clk_n90p ),
.clk_n135p(clk_n135p),
.clk_n180p(clk_n180p)
);
//生成本地时钟50M
initial begin
clk = 0;
forever
#(CYCLE/2)
clk=~clk;
end
//产生复位信号
initial begin
rst_n = 1;
#2;
rst_n = 0;
#(CYCLE*RST_TIME);
rst_n = 1;
end
endmodule
4、选择仿真器和仿真文件
5、运行测试
6、出结果
pll的仿真结果
bt1120接口FIFO仿真结果