最专业的FPGA ZYNQ论坛--黑金动力社区

 找回密码
 注册
查看: 208|回复: 0

求助,怎么调用锁相环实现不同的时钟频率

[复制链接]
豁达上进的柠檬 发表于 2019-10-27 17:25:23 | 显示全部楼层 |阅读模式
具体要求:三个按键,按下K1,K2,K3,改变四盏LED循环点亮的时钟信号,从而实现分别在25MHz50MHz75MHz100MHz时钟驱动下的4LED一秒内循环点亮;
实现三个按键的功能,选用不同的频率:
[size=37.3333px]module key_pll(
[size=37.3333px]        clk,           // 时钟
[size=37.3333px]        rst_n,
[size=37.3333px]        // 复位
[size=37.3333px]        key_1,
[size=37.3333px]        key_2,
[size=37.3333px]        key_3,
[size=37.3333px]
[size=37.3333px]        key_flag1,
[size=37.3333px]        key_state1,
[size=37.3333px]
[size=37.3333px]        key_flag2,
[size=37.3333px]        key_state2,
[size=37.3333px]
[size=37.3333px]        key_flag3,
[size=37.3333px]        key_state3,
[size=37.3333px]
[size=37.3333px]        pll_25M,
[size=37.3333px]        pll_50M,
[size=37.3333px]        pll_75M,
[size=37.3333px]        pll_100M,
[size=37.3333px]        pll_clk
[size=37.3333px]);

[size=37.3333px]input    clk;          // 时钟
[size=37.3333px]input    rst_n;
[size=37.3333px]// 复位

[size=37.3333px]                input key_flag1;
[size=37.3333px]                input key_flag2;
[size=37.3333px]                input key_flag3;
[size=37.3333px]
[size=37.3333px]                input key_state1;
[size=37.3333px]                input key_state2;
[size=37.3333px]                input key_state3;
[size=37.3333px]                output wire key_1;
[size=37.3333px]
[size=37.3333px]                output wire key_2;
[size=37.3333px]                output wire key_3;
[size=37.3333px]input          pll_25M;
[size=37.3333px]input         pll_50M;
[size=37.3333px]input          pll_75M;
[size=37.3333px]input          pll_100M;
[size=37.3333px]output reg pll_clk;




[size=37.3333px]                         
[size=37.3333px]assign key_1= (key_flag1 && !key_state1);
[size=37.3333px]assign key_2= (key_flag2 && !key_state2);
[size=37.3333px]assign key_3= (key_flag3 && !key_state3);

[size=37.3333px]always@(*)begin
[size=37.3333px]                case ({key_1,key_2,key_3})                               
[size=37.3333px]                        3'b100        :pll_clk = pll_25M;       
[size=37.3333px]                        3'b010        :pll_clk = pll_75M;                               
[size=37.3333px]                        3'b001        :pll_clk = pll_100M;       
[size=37.3333px]
[size=37.3333px]                        default                :pll_clk = pll_50M;
[size=37.3333px]                        endcase
[size=37.3333px]                        end



[size=37.3333px]endmodule

[size=37.3333px]顶层文件:
[size=37.3333px]module key_led_pll(
[size=37.3333px]        clk,

[size=37.3333px]        rst_n,

[size=37.3333px]        key1,key2,key3,
[size=37.3333px]        led
[size=37.3333px]);

[size=37.3333px]input clk;
[size=37.3333px]input rst_n;
[size=37.3333px]input key1,key2,key3;

[size=37.3333px]output wire [3:0] led;

[size=37.3333px]wire pll_25M,pll_50M,pll_75M,pll_100M;
[size=37.3333px]        pll pll_u0(
[size=37.3333px]                .inclk0(clk),
[size=37.3333px]                .c0(pll_25M),
[size=37.3333px]                .c1(pll_50M),
[size=37.3333px]                .c2(pll_75M),
[size=37.3333px]                .c3(pll_100M)
[size=37.3333px]                );
[size=37.3333px]wire pll_clk;       

[size=37.3333px]                wire key_flag1;
[size=37.3333px]                wire key_flag2;
[size=37.3333px]                wire key_flag3;

[size=37.3333px]                wire key_state1;
[size=37.3333px]                wire key_state2;
[size=37.3333px]                wire key_state3;

[size=37.3333px]                 key_pll PLL_clk_u0(
[size=37.3333px]                        .clk(clk),           // 时钟
[size=37.3333px]                        .rst_n(rst_n),         // 复位

[size=37.3333px]                        .key_flag1(key_flag1),
[size=37.3333px]                        .key_state1(key_state1),
[size=37.3333px]                        .key_flag2(key_flag2),
[size=37.3333px]                        .key_state2(key_state2),

[size=37.3333px]                        .key_flag3(key_flag3),
[size=37.3333px]                        .key_state3(key_state3),

[size=37.3333px]                        .pll_25M(pll_25M),
[size=37.3333px]                        .pll_50M(pll_50M),
[size=37.3333px]                        .pll_75M(pll_75M),
[size=37.3333px]                        .pll_100M(pll_100M),
[size=37.3333px]                        .pll_clk(pll_clk)
[size=37.3333px]                );




[size=37.3333px]                key_filter key_filter1(
[size=37.3333px]                .clk(clk),
[size=37.3333px]                .rst_n(rst_n),
[size=37.3333px]                .key_in(key1),
[size=37.3333px]                .key_flag(key_flag1),
[size=37.3333px]                .key_state(key_state1)
[size=37.3333px]        );

[size=37.3333px]        key_filter key_filter2(
[size=37.3333px]                .clk(clk),
[size=37.3333px]                .rst_n(rst_n),
[size=37.3333px]                .key_in(key2),
[size=37.3333px]                .key_flag(key_flag2),
[size=37.3333px]                .key_state(key_state2)
[size=37.3333px]        );

[size=37.3333px]        key_filter key_filter3(
[size=37.3333px]                .clk(clk),
[size=37.3333px]                .rst_n(rst_n),
[size=37.3333px]                .key_in(key3),
[size=37.3333px]                .key_flag(key_flag3),
[size=37.3333px]                .key_state(key_state3)
[size=37.3333px]        );

[size=37.3333px]                led_test led_test_u0(
[size=37.3333px]                        .clk(pll_clk),           // 时钟
[size=37.3333px]                        .rst_n(rst_n),         // 复位
[size=37.3333px]                        .led(led)
[size=37.3333px]                );

[size=37.3333px]endmodule

[size=37.3333px]在开发板上,实现四盏灯循环,但按键不起作用,希望各位大神,能够指出哪里不对,多谢了




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

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

本版积分规则

QQ|@2009-2019 芯驿电子科技(上海)有限公司|小黑屋|手机版|Archiver|黑金动力社区 ( 沪ICP备11013590沪公网安备 31011702000003号 举报投诉电话:15300558155

GMT+8, 2019-12-5 23:37 , Processed in 0.065318 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表