Quartus18 如何使用IP核(时钟分频)

Quartus18 如何使用IP核(时钟分频)

写在前面

很多教程里面提到: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

  • 15
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值