查看: 1893|回复: 1

【BeMicro max10】锁相环PLL 的设置及应用

[复制链接]
  • TA的每日心情
    开心
    2017-2-14 08:56
  • 签到天数: 18 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2016-12-14 08:43:13 | 显示全部楼层 |阅读模式
    分享到:
    在设置PWM的时候,需要用到锁相环,即常见的PLL。看一下百度百科的定义PLL(Phase Locked Loop):为锁相回路或锁相环,用来统一整合时脉讯号,使高频器件正常工作,如内存的存取资料等。许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。顾名思义,玩过单片机的都知道内核有时钟有分频和倍频电路,锁相环就是干这个的。
    时钟是控制器的心脏,为每一次行动提供所需要的跳动。有时候设备不同的外设工作在不同的频率,或者同频不同相,都可以用到PLL技术。MAX10内部有一个时钟管理模块。如果你看datasheet仔细的话,你会看到这部分的介绍。下面我们来以一个简单的例子来介绍PLL的使用。
    首先肯定是要新建一个工程max10PLL,在工具菜单下有一个IP Catalog,点击。在编程界面的最右边出现如图1所示的列表。

    双击ALTPLL,进入PLL设置页面。先为你的PLL起个名字吧。然后点击OK,进入设置页面。
    将输入频率修改为板卡的外设晶振的频率50M,如图2所示。

    然后点击【3】outputclocks页面,如图3所示。

    将频率改为1M。占空比保持50%就可以了。在这里你会发现,提供了5个时钟可以设置,很丰富吧。
    直接进入【5】Summary界面,勾选mypll_inst.v模板文件,如果你要把PLL用在图形中,就勾选mypll.bsf文件。如图4所示。Finish就可以了。

    在项目文件夹中,找到刚定义的锁相环文件,如max10pll_inst.v。打开将其拷到主文件中,如下图所示。
    max10pll        max10pll_inst (        .areset ( areset_sig ),        .inclk0 ( inclk0_sig ),        .c0 ( c0_sig ),        .locked ( locked_sig )        );在主文件稍加修改后,就可以应用了。如下面代码所示。
    module max10PLL(clk,led);input clk;output reg led;reg [19:0] cnt;wire clk_1M;wire lock;max10pll        max10pll_inst (        .areset ( areset_sig ),        .inclk0 ( clk),        .c0 ( clk_1M ),        .locked ( lock )        );        always @(posedge clk_1M) begin  cnt <= cnt +1'b1;  if(cnt == 20'd1000000)  begin   led <= ~led;        cnt<=20'b0;        end endendmodule接下来就是编译综合,仿真,配置引脚,Programmer。看看效果吧,是不是和预想的一样呢!
    回复

    使用道具 举报

    该用户从未签到

    发表于 2021-7-1 10:58:07 | 显示全部楼层
    看不到图呜呜呜
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-18 08:23 , Processed in 0.128403 second(s), 20 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.