写在前面
很多教程里面提到:magevizard;但是在quartus18里面找不到。这是因为:
· Quartus将megawizard 整合到IP catalog里了,直接搜ip,点击就可以看到megawizard的了。
先小结一下:
【总结一下:总体和vivado相似。显示找到IP核入口:Tools—IP catalog
然后搜索需要的IP核名字,参数设置,保存到某路径(一般为工程文件目录下),然后打开这个文件目录下,找到名字对应.v文件,笔记本打开.v文件获取实例化使用方式,然后调用即可。没了,如此简单,网上偏偏搜不到。】
Ps. Quartus不同版本之间差异真的蛮大的。
PLL–IP使用
1)Tools—IP catalog 和vivado类似
然后一般不会跳出来,而是在页面右侧。
搜寻你需要的IP核名字就好了~ 这里我想简单的做一个时钟分频。
于是我在IP catalog 里面 搜索了pll
双击,弹出框中,在/后面加一个pll(起个名字,叫其他的也可以)
在弹出的界面里我设置参数如下:
点击finish
选择:Yes
!!在IP核目录下,可以找到pll.v文件:
这个就是实例化的代码,我们写入程序
我是应用在一个小程序里面了,如果只是验证IP核,只需要把输入输出删删减减即可。
下面展示源代码:
`timescale 1 ps / 1 ps
module quarttus01(clk0,en,clk1,rst,clk2,gdp,ddp,out,n,m);
input clk0,en,rst;
output out,clk2,clk1,m,n,gdp,ddp;
pll_0002 pll_inst (
.refclk (clk0), // refclk.clk
.rst (rst), // reset.reset
.outclk_0 (clk1), // outclk0.clk
.outclk_1 (clk2), // outclk1.clk
.locked (en) // locked.export
);
reg [0:3]n=4'b1;
reg [0:3]m=4'b1;
reg gdp=1,ddp=0,out;
//高电平持续(add-1)/2 -1时钟
always @(posedge clk1)
begin
if (n<4'd4)
begin
gdp<=1;
n<=n+1'b1;
end
else
begin
gdp<=0;
n<=n+1'b1;
if (n==4'd7)
n<=4'b1;
end
end
//低电平持续(add-1)/2 +1时钟
always @(negedge clk1)
begin
if (m<4'd4)
begin
ddp<=1;
m<=m+1'b1;
end
else
begin
ddp<=0;
m<=m+1'b1;
if (m==4'd7)
m<=4'b1;
end
end
always @(posedge clk1)
begin
out=gdp||ddp;
end
endmodule
只需要验证IP核,可以参考如下。
`timescale 1 ps / 1 ps
module quarttus01(clk0,en,clk1,rst,clk2);
input clk0,en,rst;
output out,clk2,clk1;
pll_0002 pll_inst (
.refclk (clk0), // refclk.clk
.rst (rst), // reset.reset
.outclk_0 (clk1), // outclk0.clk
.outclk_1 (clk2), // outclk1.clk
.locked (en) // locked.export
);
endmodule
双击Analysis&Synthesis
等待,编译通过:(忽略warning)
点击菜单栏中的“Processing”>>“Start”>>“Start TestBench Template Writer”,用于生成仿真文件;生成成功后会打印相应信息;
。。。生成失败
找一下原因:算了看不懂
那么我们跳过testbench,直接手动赋输入电平
直接看波形图vwf:
新建一个或者看之前的,然后添加节点:
(插一句,如果想改变结束时间:在波形文件界面中 edit—end time 设置)
然后给input初始值,这里给clk0=100Mhz,en和rst都是0;
跑一下功能仿真:
!!!能用!!可以了!!
记录几个网站
网上资源真的有点少(或者我没找到
一下是我参考的网页资源:
绝大多数是过时的。。没法用,这2个可以用但是emm只能起到启发作用,大家的用法都不太一样
https://blog.csdn.net/python_java0c/article/details/88075598
https://blog.csdn.net/u010912383/article/details/52876260?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5