完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
常用的异步复位,会由于复位组合逻辑电路的的毛刺影响较大,导致设计的不稳定性,而同步复位,又会增加额外的逻辑资源,这都是我们不想见到的,由此引入了异步复位同步释放电路(参考特权的设计)
整体来看,在设计时,需要特别注意: 1.PLL模块的areset 复位信号是高电平有效,这点最容易忽视,特别在软核nios设计时 2.PLL模块输出有效标志位locked,也是高电平有效,为高时输出时钟 3.为保证稳定的复位信号,设计对PLL前和PLL后做了两级缓冲,消除了电路的亚稳态问题,其实也就是将异步信号同步化 4.在设计中有必要假如系统延时电路,, 比较经典的 异步复位同步释放电路 //////////////////////////////////////// reg rst_nr1, rst_nr2; always @(posedge clk_ref) begin if(!rst_n) begin rst_nr1 <= 1'b0; rst_nr2 <= 1'b0; end else begin rst_nr1 <= 1'b1; rst_nr2 <= rst_nr1; end end always @(posedge clk_ref or negedge rst_nr2) if(!rst_nr2) begin end else begin end /////////////////////////////////////////////// 附: timescale 1ns / 1ps module sys_ctrl( clk,rst_n,sys_rst_n, clk_25m,clk_100m,sdram_clk ); input clk; //FPAG输入时钟信号25MHz input rst_n; //FPGA输入复位信号 output sys_rst_n; //系统复位信号,低有效 output clk_25m; //PLL输出25MHz时钟 output clk_100m; //PLL输出100MHz时钟 output sdram_clk; //用于外部SDAM的时钟100M wire locked; //PLL输出有效标志位,高表示PLL输出有效 //---------------------------------------------- //PLL复位信号产生,高有效 //异步复位,同步释放 wire pll_rst; //PLL复位信号,高有效 reg rst_r1,rst_r2; always @(posedge clk or negedge rst_n) if(!rst_n) rst_r1 <= 1'b1; else rst_r1 <= 1'b0; always @(posedge clk or negedge rst_n) if(!rst_n) rst_r2 <= 1'b1; else rst_r2 <= rst_r1; assign pll_rst = rst_r2; //---------------------------------------------- //系统复位信号产生,低有效 //异步复位,同步释放 wire sys_rst_n; //系统复位信号,低有效 wire sysrst_nr0; reg sysrst_nr1,sysrst_nr2; assign sysrst_nr0 = rst_n & locked; //系统复位直到PLL有效输出 always @(posedge clk_100m or negedge sysrst_nr0) if(!sysrst_nr0) sysrst_nr1 <= 1'b0; else sysrst_nr1 <= 1'b1; always @(posedge clk_100m or negedge sysrst_nr0) if(!sysrst_nr0) sysrst_nr2 <= 1'b0; else sysrst_nr2 <= sysrst_nr1; assign sys_rst_n = sysrst_nr2; //---------------------------------------------- //例化PLL产生模块 PLL_ctrl uut_PLL_ctrl( .areset(pll_rst), //PLL复位信号,高电平复位 .inclk0(clk), //PLL输入时钟,25MHz .c0(clk_25m), //PLL输出25MHz时钟 .c1(clk_100m), //PLL输出100MHz时钟 .e0(sdram_clk), //用于外部SDAM的时钟100M .locked(locked) //PLL输出有效标志位,高表示PLL输出有效 ); endmodule |
|
相关推荐
|
|
1367 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1046 浏览 0 评论
2442 浏览 1 评论
2146 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2408 浏览 0 评论
1900 浏览 50 评论
6018 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 03:57 , Processed in 0.368665 second(s), Total 32, Slave 26 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号