全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

FPGA学习系列:14. 锁相环pll设计

时间:2018-06-13 11:21

人气:

作者:admin

标签:

导读:设计背景: 在我们设计工程中我们会用到100M,500M等时钟,如果我们的晶振达不到我们就需要倍频,再上一个文档中我们了解到了分频,可是倍频我们改怎么做了,这里我们就用了alte...

设计背景:

在我们设计工程中我们会用到100M,500M等时钟,如果我们的晶振达不到我们就需要倍频,再上一个文档中我们了解到了分频,可是倍频我们改怎么做了,这里我们就用了altera的IP核锁相环。

今天我们将去学习简单的IP核的调用和生成。

设计原理:

本次的设计我们调用IP核锁相环了生成一个200M的时钟,下面我们就来学习和使用简单的IP核。

设计架构图:

设计流程:

新建工程打开tools,然后选择:

然后出现下面的界面,第一个句是建立新的IP核,第二个打开你建立好的以便于我们修改,第三个是复制一个,我们选择第一个选择,建立一个,然后下一步.

然后跳出下面的界面,我们选择下面的

然后在右边选择我们的语言verilog ,然后给我们建立的IP核起一个名字。

然后跳出下面的界面,inclk0位输入我们默认为50M,areset位复位高电平有效,c0位输出,locked位输出标志位,然后输入我们100M改为50M,下一步。

为了只观的看到各个引脚的情况,我们下一步,不进行操作。

我们可以改我们的输出时钟为多少,可以改输出时钟的相位,占空比,我们写入输出位200M,占空比为50%,然后下一步。

之后不停的下一步,出现下面的界面,就点击完成Finish,这样就完成了IP核的建立。

之后我们打开我们生成的IP核代码,然后例化。

设计代码:

设计模块

0modulepll(clk,clk_200M,rst_n,locked);

1inputclk;

2inputrst_n;

3

4outputclk_200M;

5outputlocked;

6

7

8 my_pll my_pll_inst(//例化IP核

9 .areset(~rst_n),

10 .inclk0(clk),

11 .c1(clk_200M),

12 .locked(locked)

13);

14endmodule

测试模块

0`timescale1ns/1ps

1

2modulepll_tb();

3regclk;

4regrst_n;

5

7wireclk_200M;

8wirelocked;

9initialbegin

10 clk=1'b1;

11 rst_n=1'b0;

12 #200.1rst_n=1'b1;

13

14 #2000.1$stop;

15

16 end

17

18 always#10clk=~clk;

19 pll pll_dut(

20 .clk(clk),

21 .rst_n(rst_n),

23 .clk_200M(clk_200M),

24 .locked(locked)

25 );

26endmodule

仿真图:

    

在仿真中我们看一看到我们生成的时钟是200M,然后我们可以用锁相环生成的标志位给用200M时钟的电路当复位,如下:

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信