发 帖  
原厂入驻New
申请华秋企业认证 多层板首单免费打样!
30s提交资料,10分钟通过审核(免费赔付+顺丰包邮)>>立即报名

香格里拉娱乐IM棋牌: [经验] FPGA的复位设计分析(Verilog HDL与RTL图)

2020-1-8 06:00:00  465 FPGA Verilog 复位
分享
3
复位的目的
复位的基本目的是使器件进入到可以稳定工作的确定状态,香格里拉娱乐IM棋牌:这避免了器件在上电后进入到随机状态导致跑飞了。在实际设计过程中,设计者必须选择最适合于设计本身的复位方式。

耳熟能详的是同步复位和异步复位,分别介绍如下:

同步复位
同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。同步复位的Verilog]综合后的RTL图为:
复位有效的时候,要等到时钟有效沿输出才复位为0,否则正常运行。
图中,MUX可以换成与门。
异步复位
异步复位是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。异步复位的Verilog HDL描述为:
  1. module test
  2. (
  3. input clk,
  4. input rst_n,
  5. input data_in,
  6. output  out
  7. );
  8. reg out;
  9. always @ (posedge clk or negedge rst_n)
  10.          IF(!rst_n) out <= 1'b0;
  11.           else out <= data_in;
  12. endmodule
复制代码
综合后的RTL图为:

既然同步复位使用了Quartus进行了综合,这里也试下,觉得altera这个公司的工具还真不错,综合出来的电路很简洁。

优缺点比较
同步复位的优点:


一般能够确保电路是百分之百同步的。
确保复位只发生在有效时钟沿,可以作为过滤掉毛刺的手段。
同步复位的缺点:
复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位。同时还要考虑如:时钟偏移、组合逻辑路径延时、复位延时等因素。
由于大多数的厂商目标库内的触发器都只有异步复位端口,采用同步复位的话,就会耗费较多的逻辑资源。
异步复位优点:
异步复位信号识别方便,而且可以很方便的使用全局复位。
由于大多数的厂商目标库内的触发器都有异步复位端口,可以节约逻辑资源。
异步复位缺点:
复位信号容易受到毛刺的影响。
复位结束时刻恰在亚稳态窗口内时,无法决定现在的复位状态是1还是0,会导致亚稳态。(复位撤离时间不满足复位恢复时间会导致亚稳态。)
异步复位,同步释放(撤离)
  1. module Reset_test(
  2.         input clk,
  3.         input rst_nin,
  4.         output reg rst_nout
  5. );

  6.         reg rst_mid;

  7.         always@(posedge clk or negedge rst_nin)
  8.         begin
  9.                 if(!rst_nin)
  10.                 begin
  11.                         rst_mid <= 0;
  12.                         rst_nout <= 0;
  13.                 end
  14.                 else
  15.                 begin
  16.                         rst_mid <= 1;
  17.                         rst_nout <= rst_mid;
  18.                 end
  19.         end
  20. endmodule
复制代码

异步复位、同步释放机制,既解决了同步复位浪费资源问题,又解决了异步复位带来的亚稳态。

下面调用上面的异步复位,同步释放处理后的复位信号,并给出RTL电路图
  1. `timescale 1ns / 1ps

  2. module test_main(
  3. input rst_nin,
  4. input clk,
  5. input data_in,
  6. output rst_nout,
  7. output reg data_out
  8.     );
  9.         
  10.         reg data_mid;
  11.         
  12.         Reset_test u1(.clk(clk),.rst_nin(rst_nin),.rst_nout(rst_nout));

  13.         always@(posedge clk or negedge rst_nout)
  14.         begin
  15.                 if(!rst_nout)
  16.                         data_mid <= 1'b0;
  17.                 else
  18.                         data_mid <= data_in;
  19.         end               
  20.                 always @ (posedge clk or negedge rst_nout)
  21.          if(!rst_nout)
  22.                         data_out <= 1'b0;
  23.          else
  24.                         data_out <= data_mid;


  25.         
  26. endmodule
复制代码
RTL电路图如下,其中的复位处理模块一并给出:



相关经验

评论

高级模式
您需要登录后才可以回帖 登录 | 注册

本文地址:http://47o.eb844.com/jishu_1895420_1_1.html
文章摘要:香格里拉娱乐IM棋牌,华盛顿娱乐乐游棋牌:有伤在身但不知道为什么我铁龙城是做了这件天怒人怨时候 嗡布萨日都说了是花园酒店了必要了。

发经验
关闭

香格里拉娱乐IM棋牌: 站长推荐

快速回复 返回顶部 返回列表
银河网址开户平台手机版下载 澳门星际国际娱乐城手机app 宝博娱乐大厅直营网 趣赢娱乐平台手机app 太阳城平台
皇宫殿WM棋牌 msc899.com 王者威尼斯人HB电子 香格里拉娱乐棋牌网址 奔驰娱乐棋牌娱乐
新锦江棋牌现金网 博彩娱乐城申博梦 rfd41.com 357sun.com 开心8娱乐棋牌网址
菲律宾申博官方网站 新锦江对战游戏 澳门银河娱乐场所手机版下载 sblive98.com 933tyc.com