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

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

3天内不再提示

寄存器怎么赋初值啊?这电路怎么工作呢?

FPGA之家 来源:FPGA之家 2023-04-19 14:36 次阅读

关于复位

数字电路中,电路通过复位来启动,复位犹如数字电路的“起搏器”,主要有下面三种方式:

1

无复位:天生就强壮着,上电就启动;

2

异步复位:好心人路过,随便踢了一脚,起搏了,这完全没有心理准备,随时都有可能复活啊;

3

同步复位:专业救援队,手按住胸口,不起博按住不放啊。直到听到“砰砰”声才离开,非常关键,必须要按住一会会

无复位

没见过这样写代码的,竟然没有复位,老师都说数字电路离不开复位的,没有复位,寄存器怎么赋初值啊?没有确定的初值,这电路怎么工作呢?

其实,不用担心,FPGA上电之后,寄存器初始值默认为“0”,当然,也可以人为的赋初值。下面为无复位的代码:

reg [7:0] my_register;

always @(posedge clk) begin

my_register <= data_in;

end

如果没有复位信号,省了很多资源,编译和布线时间也缩短不少,如果规模很大,对提高设计整体性能也是有帮助的。但是在数字电路设计中,我们很少不用复位电路。到是我们经常利用FPGA这个特性,自己产生内部复位电路。

异步复位

异步复位电路描述:在always语句中添加复位信号在敏感量列表中,即可实现异步复位。

reg [7:0] my_register;

always @(posedge clk,posedge rst) begin

if(rst)

my_register <= 8’h0;

else

my_register <= data_in;

end

异步复位的缺点:

异步复位对复位信号要求很严格的,不然随便一个毛刺就会把电路给复位掉的。

另外,异步复位信号依赖于FPGA内部的传导延时,因此,在微小的电压或温度差异下,设计都有可能输出错误,设计的可移植性也很差。上面不是说了嘛,这随便一脚提过来,有时候能感觉到,有时候感觉不到啊。冬天穿个大棉袄,就得使个大劲才能提醒。

正因为对不同寄存器延迟是不同的,所以容易引发间断性设计问题。怎么理解呢?

如图所示,2 bit的移位寄存器组成一个环,复位后,左边寄存器清零,右边寄存器置位,而且都在同一上升沿触发,所以,如果左边寄存器上升沿来的时候,复位信号已经释放掉了,但是右边寄存器还处于复位状态,这个时候数据就错误。

4c222f22-de7c-11ed-bfe3-dac502259ad0.png

异步复位的优点:

异步复位不依赖于时钟。所以如果时钟是外部输入的,而且时钟有可能丢失,例如处于省电模式时,只能使用异步复位。

另外一个优势是设计更快的物理实现。相对于同步复位,异步复位有更宽松的时序约束。从而布局布线工具使用更少的时间便可达到约束条件。

同步复位

同步复位就是非常专业,不留一点马虎,和他的名字一样,只在时钟的有效沿发生,所以一个有效的同步信号,至少要维持一个时钟周期(把你叫不醒,是不会停的)。由于仅仅在时钟的有效沿有效,所以可以滤除复位信号上的毛刺,电路可靠性好很多。

reg [7:0] my_register;

always @(posedge clk) begin

if(rst)

my_register <= 8’h0;

else

my_register <= data_in;

end

所以,总结一下。其优点是“弥补了异步复位的所有缺点”,其缺点是“没有异步复位的优点“”。这个总结够简单吧。

总结

我们熟悉了3种复位方式,了解了他们的脾气,那就总结一下,在我们平时设计中如何使用他们。

尽量用同步复位,如果你的规模不是特别大,虽然占有布线资源多一点,但是对系统可靠性还是有帮助的。

规模很大的时候,可以考虑混和复位方式,在什么场合呢?比如说设计中有多个IP核和功能模块,要求有不同的复位方式,这个时候就要求混和复位方式,另外,还有电路延迟,大型电路中两个模块之间信号延迟可能超过10ns,如果时钟周期为3ns,需要3个时钟周期才能通过,所以,大型设计中完全同步是非常不容易的。如图所示为一个复杂的混和复位树。各种复位都用上了。

4c396926-de7c-11ed-bfe3-dac502259ad0.jpg






审核编辑:刘清

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

    关注

    1629

    文章

    21734

    浏览量

    603090
  • 寄存器
    +关注

    关注

    31

    文章

    5342

    浏览量

    120271
  • 数字电路
    +关注

    关注

    193

    文章

    1605

    浏览量

    80603
  • 复位电路
    +关注

    关注

    13

    文章

    322

    浏览量

    44593

原文标题:航空总线1553B接口设计

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    寄存器是什么?怎么操作寄存器点亮LED灯?

    寄存器,是集成电路中非常重要的一种存储单元,通常由触发组成。在集成电路设计中,寄存器可分为电路
    的头像 发表于 07-21 16:59 4020次阅读
    <b class='flag-5'>寄存器</b>是什么?怎么操作<b class='flag-5'>寄存器</b>点亮LED灯?

    移位寄存器不同的初值

    我想实现一个功能:条件结构里面是数值为0或者为1的时候实现加2或者加1,当程序第一次运行时如果数值是0的话,我给移位寄存器初值为100,如果第一次运行时数值是1的话,我给移位寄存器初值
    发表于 11-01 10:47

    数据结构封装后如果在某些场景下需要设置为寄存器初值时该怎么做

    的example便可以正常使用了初值问题有时候对于设置为寄存器的变量,我们需要进行初值,而像上面的example,直接调用data的in
    发表于 07-01 15:01

    寄存器寻址方式

    寄存器寻址方式   寄存器寻址是对由指令选定的工作寄存器(R0--R7)进行读/写,由指令操作码字节的最低3位指明所寻址的工作
    发表于 03-14 15:29 2803次阅读

    寄存器,寄存器是什么意思

    寄存器,寄存器是什么意思 寄存器定义  寄存器是中央处理内的组成部分。寄存器是有限存贮容量
    发表于 03-08 14:26 2.2w次阅读

    数据寄存器,数据寄存器是什么意思

    数据寄存器,数据寄存器是什么意思 数据寄存器数据寄存器包括累加AX、基址寄存器BX、计数
    发表于 03-08 14:38 1.3w次阅读

    移位寄存器工作原理是什么?

    移位寄存器工作原理是什么? 把若干个触发串接起来,就可以构成一个移位寄存器。由4个边沿D 触发构成的4位移位
    发表于 03-08 14:56 4.5w次阅读

    寄存器与移位寄存器

    寄存器与移位寄存器:介绍寄存器原理和移位寄存器的原理及实现。
    发表于 05-20 11:47 0次下载

    移位寄存器的特点_移位寄存器工作原理

    目前移位寄存器电路中已经得到普遍使用。本文以移位寄存器为中心。主要介绍了移位寄存器分类、移位寄存器的特点,以及详细的说明了移位
    发表于 12-22 15:20 4.9w次阅读
    移位<b class='flag-5'>寄存器</b>的特点_移位<b class='flag-5'>寄存器</b><b class='flag-5'>工作</b>原理

    移位寄存器的原理

    移位寄存器按照不同的分类方法可以分为不同的类型。 如果按照移位寄存器的移位方向来进行分类, 可以分为左移移位寄存器、移位寄存器和双向移位寄存器
    发表于 07-15 09:38 7.5w次阅读
    移位<b class='flag-5'>寄存器</b>的原理

    寄存器工作原理

    寄存器工作原理 寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果。其实寄存器就是一种常用的时序逻辑电路
    发表于 02-20 14:02 8537次阅读

    单片机工作寄存器作用 单片机常用专用寄存器

    除了通用寄存器(如累加、通用寄存器等),单片机中还会有特定功能的寄存器,如定时寄存器、中断控
    的头像 发表于 04-08 14:46 7531次阅读

    什么是移位寄存器?数字电路中的寄存器类型有哪些

    移位寄存器是一种时序逻辑电路,能够存储和传输数据。它们由触发组成,这些触发的连接方式使得一个触发的输出可以作为另一个触发
    的头像 发表于 09-20 10:44 8214次阅读
    什么是移位<b class='flag-5'>寄存器</b>?数字<b class='flag-5'>电路</b>中的<b class='flag-5'>寄存器</b>类型有哪些<b class='flag-5'>呢</b>?

    寄存器工作原理

    电子发烧友网站提供《寄存器工作原理.zip》资料免费下载
    发表于 11-20 14:57 2次下载
    <b class='flag-5'>寄存器</b>的<b class='flag-5'>工作</b>原理

    移位寄存器工作原理 移位寄存器左移和右移怎么算

    移位寄存器是一种用于在数字电路中实现数据移位操作的基本电路元件。它由多个触发以及相关控制电路组成,具有存储、接受和移动数据的功能。移位
    的头像 发表于 01-18 10:52 8426次阅读