0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA学习-异步复位,同步释放

FPGA设计论坛 来源:未知 2023-09-09 14:15 次阅读

点击上方蓝字关注我们

wKgZomT8DpKAat2WAAAAxmHeATo645.png

系统的复位对于系统稳定工作至关重要,最佳的复位方式为:异步复位,同步释放。以下是转载博客,原文标题及链接如下:复位最佳方式:异步复位,同步释放

异步复位;

异步:

always@(posedgeclkornegedgerst_n)

if(!rst_n)

wKgZomT8DpKAZ59_AABWqPx_eeQ124.png

(优点:占用较少逻辑单元

缺点:可能会产生竞争冒险)

同步:always @(posege clk or posedge rst_n)

If(!rst_n)

wKgZomT8DpOAcO2-AABtaETjfls696.png

(优点:可以尽量点少竞争冒险的可能

缺点:会占用更多的逻辑单元)

Altera 最佳解决办法:异步复位,同步释放

//异步复位 同步释放rtl视图

wKgZomT8DpOAD-H0AABc9RYfcUA155.png

原理:

所谓异步复位和同步释放,是指复位信号是异步有效的,即复位的发生与clk无关。后半句“同步释放”是指复位信号的撤除(释放)则与clk相关,即同步的。

下面说明一下如何实现异步复位和同步释放的。

异步复位:显而易见,rst_async_n异步复位后,rst_sync_n将拉低,即实现异步复位。

同步释放:这个是关键,看如何实现同步释放,即当复位信号rst_async_n撤除时,由于双缓冲电路的作用,rst_sync_n复位信号不会随着rst_async_n的撤除而撤除。

假设rst_async_n撤除时发生在clk上升沿,如果不加此电路则可能发生亚稳态事件(在始终上升沿附近rst置1,这时候建立时间还不够长,数据可能还未打入寄存器,导致输出不确定)。但是加上此电路以后,假设第一级D触发器clk上升沿时rst_async_n正好撤除,则D触发器1输出高电平“1”,此时第二级触发器也会更新输出,但是输出值为前一级触发器次clk来之前时的Q1输出状态。显然Q1之前为低电平,顾第二级触发器输出保持复位低电平,直到下一个clk来之后,才随着变为高电平。即同步释放。

代码实现:(Altera 官方资料

module reset_best(clk,asyn_reset,syn_reset);
input clk;
input asyn_reset;
output syn_reset;


reg rst_s1;
reg rst_s2;


always @( posedge clk ,posedge asyn_reset)
begin
if(asyn_reset)
begin
rst_s1<=1'b0;
rst_s2<=1'b0;
end
else
begin
rst_s1<=1'b1;
rst_s2<=rst_s1;
end
end


assign syn_reset=rst_s2;


endmodule

wKgZomT8DpOAXUZhAAAJM7aZU1A410.png

有你想看的精彩 至芯科技FPGA就业培训班——助你步入成功之路、9月23号北京中心开课、欢迎咨询! FPGA学习:精简指令集RISC_CPU 至芯FPGA初级课程之 FIFO

wKgZomT8DpOAHVkMAABUdafP6GM561.jpg

扫码加微信邀请您加入FPGA学习交流群

wKgZomT8DpOAUQ1NAABiq3a-ogY635.jpgwKgZomT8DpOAB9hoAAACXWrmhKE666.png

欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!

点个在看你最好看


原文标题:FPGA学习-异步复位,同步释放

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1603

    文章

    21328

    浏览量

    593265

原文标题:FPGA学习-异步复位,同步释放

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    同步置数,异步置数,同步清零,异步清零的概念

    同步置数、异步置数、同步清零和异步清零是数字电路设计中常用的概念。 一、同步置数 同步置数是指在
    的头像 发表于 02-22 13:48 1984次阅读

    同步复位异步复位到底孰优孰劣呢?

    同步复位异步复位到底孰优孰劣呢? 同步复位异步
    的头像 发表于 01-16 16:25 337次阅读

    异步复位同步撤离是什么意思?如何做到异步复位同步撤离呢?

    复位消抖之后的下一件事,[异步复位]()同步撤离。这句话什么意思呢?
    的头像 发表于 12-04 13:57 1746次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b>撤离是什么意思?如何做到<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b>撤离呢?

    SOC设计中的同步复位异步复位有哪些应用呢?

    在SOC设计中,复位电路是一个关键部分,它确保了芯片中各个模块在初始化和运行时能够处于一致的状态。
    的头像 发表于 08-27 14:47 1058次阅读

    浅析异步复位同步释放同步复位打拍模块

    异步复位同步释放:rst_synchronizer.v
    的头像 发表于 08-21 09:27 574次阅读
    浅析<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>与<b class='flag-5'>同步</b><b class='flag-5'>复位</b>打拍模块

    同步复位异步复位的区别

    请简述同步复位异步复位的区别,说明两种复位方式的优缺点,并解释“异步
    的头像 发表于 08-14 11:49 4141次阅读

    异步复位同步释放有多个时钟域时如何处理 异步复位同步释放的策略

    对于从FPGA外部进来的信号,我们通常采用“异步复位同步释放的策略”,具体电路如下图所示。
    的头像 发表于 07-20 09:04 1289次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>有多个时钟域时如何处理 <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>的策略

    异步复位同步释放问题解析

    使用 2 个带异步复位的寄存器,D端输入逻辑 1(VCC)。
    的头像 发表于 06-26 16:39 939次阅读
    <b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>问题解析

    同步复位异步复位讲解

     本文主要是提供了 ASIC 设计中关于复位技术相关的概念和设计。
    的头像 发表于 06-21 11:55 5931次阅读
    <b class='flag-5'>同步</b><b class='flag-5'>复位</b>和<b class='flag-5'>异步</b><b class='flag-5'>复位</b>讲解

    Xilinx FPGA异步复位同步释放同步后的复位该当作同步复位还是异步复位

    针对异步复位同步释放,一直没搞明白在使用同步化以后的复位信号时,到底是使用
    发表于 06-21 09:59 817次阅读
    Xilinx <b class='flag-5'>FPGA</b><b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>—<b class='flag-5'>同步</b>后的<b class='flag-5'>复位</b>该当作<b class='flag-5'>同步</b><b class='flag-5'>复位</b>还是<b class='flag-5'>异步</b><b class='flag-5'>复位</b>?

    如何区分同步复位异步复位

    今天给大侠带来如何区分同步复位异步复位?,话不多说,上货。 如何区分同步复位
    发表于 05-22 17:33

    FPGA中的异步复位or同步复位or异步复位同步释放

    FPGA设计中,复位电路是非常重要的一部分,它能够确保系统从初始状态开始启动并保证正确运行。
    发表于 05-22 14:21 692次阅读
    <b class='flag-5'>FPGA</b>中的<b class='flag-5'>异步</b><b class='flag-5'>复位</b>or<b class='flag-5'>同步</b><b class='flag-5'>复位</b>or<b class='flag-5'>异步</b><b class='flag-5'>复位</b><b class='flag-5'>同步</b><b class='flag-5'>释放</b>

    在高速设计中跨多个FPGA分配复位信号

    SoC设计中通常会有“全局”同步复位,这将影响到整个设计中的大多数的时序设计模块,并在同一时钟沿同步释放复位
    发表于 05-18 09:55 148次阅读
    在高速设计中跨多个<b class='flag-5'>FPGA</b>分配<b class='flag-5'>复位</b>信号

    常见的FPGA复位设计

    FPGA设计中,当复位整个系统或功能模块时,需要将先关寄存器被清零或者赋初值,以保证整个系统或功能运行正常。在大部分的设计中,我们经常用“同步复位”或“
    发表于 05-14 14:49 1785次阅读
    常见的<b class='flag-5'>FPGA</b><b class='flag-5'>复位</b>设计

    FPGA中三种常用复位电路

    FPGA设计中,复位电路是非常重要的一部分,它能够确保系统从初始状态开始启动并保证正确运行。本文将分别介绍FPGA中三种常用复位电路:同步
    发表于 05-14 14:44 1837次阅读
    <b class='flag-5'>FPGA</b>中三种常用<b class='flag-5'>复位</b>电路