收藏 分销(赏)

全局时钟复位设计.doc

上传人:pc****0 文档编号:7428497 上传时间:2025-01-04 格式:DOC 页数:6 大小:85KB 下载积分:10 金币
下载 相关 举报
全局时钟复位设计.doc_第1页
第1页 / 共6页
全局时钟复位设计.doc_第2页
第2页 / 共6页


点击查看更多>>
资源描述
根据特权和eBoy的设计,我加之以深化,归纳了3中我们会用到的复位与亚稳态问题 (1)没有PLL (2)有一个PLL (3)多个PLL 具体如下:   (1)没有PLL /******************************************************************** * File Name          : System_Ctrl * Author             : Crazy Bingo * Version            : Quartus II 9.1 * Date               : 2010/12/4 * Function             : 双锁相环系统异步复位 * Description        :  *********************************************************************/ module System_Ctrl0 (     input         clk,        //FPAG输入时钟信号50MHz     input         rst_n,        //系统复位信号,低有效     output         sys_rst_n    //系统复位信号,低有效 ); reg    rst_nr1,rst_nr2; always@(posedge clk or negedge rst_n) begin     if(!rst_n)    rst_nr1 <= 0;     else        rst_nr1 <= 1; end always@(posedge clk or negedge rst_n) begin     if(!rst_n)    rst_nr2 <= 0;     else        rst_nr2 <= rst_nr1; end assign    sys_rst_n = rst_nr2; endmodule   (2)一个PLL /******************************************************************** * File Name          : System_Ctrl * Author             : Crazy Bingo * Version            : Quartus II 9.1 * Date               : 2010/12/4 * Function             : 双锁相环系统异步复位 * Description        :  *********************************************************************/ module System_Ctrl1 (     input         clk,        //FPAG输入时钟信号50MHz     input         rst_n,        //系统复位信号,低有效     output         sys_rst_n,    //系统复位信号,低有效     output         clk_125,    //PLL1输出125MHz时钟     output        clk_65        //PLL2输出65MHz时钟 ); //---------------------------------------------- //PLL复位信号产生,高有效,异步复位,同步释放输出 wire    pll_rst;            //PLL复位信号,高有效 reg     rst_r1,rst_r2;        //DFF触发,稳定信号 always @(posedge clk or negedge rst_n) begin     if(!rst_n)  rst_r1 <= 1'b1;     else        rst_r1 <= 1'b0; end always @(posedge clk or negedge rst_n) begin     if(!rst_n)     rst_r2 <= 1'b1;     else        rst_r2 <= rst_r1; end assign pll_rst = rst_r2; //---------------------------------------------- //系统复位信号产生,低有效,异步复位,同步释放 //等待两个锁相环都输出稳定的时候,系统释放复位 wire     locked;            //PLL输出有效标志位,高表示PLL输出有效 wire     sysrst_nr0 = rst_n & locked;    //系统复位直到PLL有效输出; reg     sysrst_nr1,sysrst_nr2;  always @(posedge clk_125 or negedge sysrst_nr0) begin     if(!sysrst_nr0)          begin         sysrst_nr1 <= 1'b0;         sysrst_nr2 <= 1'b0;         end             else          begin         sysrst_nr1 <= 1'b1;         sysrst_nr2 <= sysrst_nr1;         end end assign sys_rst_n = sysrst_nr2; //---------------------------------------------- //例化PLL1产生模块 PLL1     PLL1 (     .areset(pll_rst),    //PLL复位信号,高电平复位     .inclk0(clk),        //PLL输入时钟,50MHz     .c0(clk_125),        //PLL输出125MHz时钟             .c1(clk_65),        //PLL输出125MHz时钟(-3.5ns)             .locked(locked)        //PLL输出有效标志位,高表示PLL输出有效 ); endmodule   (3)多个PLL /******************************************************************** * File Name          : System_Ctrl * Author             : Crazy Bingo * Version            : Quartus II 9.1 * Date               : 2010/12/4 * Function             : 双锁相环系统异步复位 * Description        :  *********************************************************************/ module System_Ctrl (     input         clk1,        //FPAG输入时钟信号50MHz     input        clk2,        //FPAG输入时钟信号50MHz     input         rst_n,        //系统复位信号,低有效     output         sys_rst_n,    //系统复位信号,低有效     output         clk_125,    //PLL1输出125MHz时钟     output         clk_125_2,    //PLL1输出125MHz时钟(-3.5ns)     output        clk_65        //PLL2输出65MHz时钟 ); //---------------------------------------------- //PLL1,PLL2复位信号产生,高有效,异步复位,同步释放输出 wire    pll_rst1;            //PLL1复位信号,高有效 wire    pll_rst2;            //PLL2复位信号,高有效 reg     rst_r1,rst_r2;        //DFF触发,稳定信号 always @(posedge clk1 or negedge rst_n) begin     if(!rst_n)  rst_r1 <= 1'b1;     else        rst_r1 <= 1'b0; end always @(posedge clk1 or negedge rst_n) begin     if(!rst_n)     rst_r2 <= 1'b1;     else        rst_r2 <= rst_r1; end assign pll_rst1 = rst_r2; assign pll_rst2 = rst_r2; //---------------------------------------------- //系统复位信号产生,低有效,异步复位,同步释放 //等待两个锁相环都输出稳定的时候,系统释放复位 wire     locked1,locked2;            //PLL输出有效标志位,高表示PLL输出有效 wire     sysrst_nr0 = rst_n & locked1 & locked2;    //系统复位直到PLL有效输出; reg     sysrst_nr1,sysrst_nr2;  always @(posedge clk_125 or negedge sysrst_nr0) begin     if(!sysrst_nr0)          begin         sysrst_nr1 <= 1'b0;         sysrst_nr2 <= 1'b0;         end             else          begin         sysrst_nr1 <= 1'b1;         sysrst_nr2 <= sysrst_nr1;         end end assign sys_rst_n = sysrst_nr2; //---------------------------------------------- //例化PLL1产生模块 PLL1     PLL1 (     .areset(pll_rst1),    //PLL1复位信号,高电平复位     .inclk0(clk1),        //PLL1输入时钟,50MHz     .c0(clk_125),        //PLL1输出125MHz时钟             .c1(clk_125_2),        //PLL1输出125MHz时钟(-3.5ns)             .locked(locked1)    //PLL1输出有效标志位,高表示PLL1输出有效 ); //例化PLL2产生模块 PLL2     PLL2 (     .areset(pll_rst2),    //PLL2复位信号,高电平复位     .inclk0(clk2),        //PLL2输入时钟,50MHz     .c0(clk_65),        //PLL2输出125MHz时钟                 .locked(locked2)    //PLL2输出有效标志位,高表示PLL2输出有效 ); endmodule
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 百科休闲 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服