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

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

3天内不再提示

教你们怎么去设定寄存器的初始值

FPGA技术驿站 来源:Teacher Gao 作者:Teacher Gao 2021-04-01 10:27 次阅读

对于寄存器,如果没有明确指定其初始值,Vivado会根据其类型(FDCE/FDRE/FDPE/FDRE)设定合适的初始值。有些工程师喜欢使用复位信号,对所有的寄存器进行上电复位,使其在处理数据之前达到期望初始状态。但这会有一个不利之处就是复位信号的扇出很大,从而消耗了大量的布线资源,甚至造成布线拥塞。那么能不能让寄存器在上电之后不用通过复位就输出期望值呢?答案是肯定的。

Xilinx也建议对于同步元件,最好设定其初始值。这里我们以最常用的寄存器为例。如果使用的是VHDL,可以采用下面的方法设定寄存器初始值,如下图所示。

ccd385aa-923c-11eb-8b86-12bb97331649.png

如果使用的是Verilog,可以采用下面的方法设定寄存器初始值,如下图所示。

ccdf4f48-923c-11eb-8b86-12bb97331649.png

此外,对于Verilog,也可通过initial设定初始值,如下图所示。

ccedec4c-923c-11eb-8b86-12bb97331649.png

采用这种方法的好处是:综合工具是支持的,这样生成bit文件时这些初始值会被写入配置文件中,上电即可生效,避免了使用复位造成的扇出过大;同时在仿真时,也能跟实际业务相匹配。 为了验证这个方法是否生效,只需要打开综合后的.dcp,找到相应的寄存器,在其Property窗口中查看属性INIT的值,如下图所示。

ccff28e0-923c-11eb-8b86-12bb97331649.png

编辑:jq

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

    关注

    30

    文章

    4995

    浏览量

    117424
  • 上电复位
    +关注

    关注

    1

    文章

    38

    浏览量

    15616
  • init
    +关注

    关注

    0

    文章

    15

    浏览量

    3375

原文标题:如何设定寄存器的初始值?

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CPU的6个主要寄存器

    CPU寄存器是中央处理器内的组成部分,是有限存贮容量的高速存贮部件。寄存器是CPU内部的元件,包括通用寄存器、专用寄存器和控制寄存器
    的头像 发表于 02-03 15:15 774次阅读

    TC275在内存分段预警处理之后,设置的全局变量初始值不正确怎么解决?

    大家好想问一下,tc275里,自己在地图文件里定义有了新的存档段,又设置了首地位置,段内对象可写,4字节对齐。但是在内存分段预警处理之后,设置的全局变量初始值不正确,板子上电后会给出一个随机,而不会是自己设定
    发表于 01-22 06:40

    LTC2943在初始化的时候要如何确定Qlsb的初始值呢?

    最近公司在使用一款LTC2943的库仑计,但是在初始化的时候要如何确定Qlsb的初始值呢?或者可以提供一个STM32作为MCU的例程最好。
    发表于 01-04 06:47

    请问ADE7753测量直流电压电流需要初始化那些寄存器

    你好,请问ADE7753测量直流电压电流需要初始化那些寄存器?看文档总提到波形寄存器,测量电压电流的是不是要从波形寄存器读啊,还是直接读
    发表于 12-27 08:17

    ADC转换的时候OFFSET寄存器与FS寄存器怎么使用呢?

    您好, 我想问一下ADC转换的时候这个OFFSET寄存器与FS寄存器怎么使用呢?比如说OFFSET的为0x80015b,这个
    发表于 12-15 06:28

    使用FPGA通过SPI总线控制AD9266寄存器,可以回读寄存器默认,但是无法改变寄存器怎么解决?

    使用FPGA通过SPI总线控制AD9266寄存器,可以回读寄存器默认,但是无法改变寄存器。 不知道有没有人遇到过同样的问题。 程序是
    发表于 12-13 08:29

    调试AD7124-8驱动时,对各寄存器配置之后再次读各寄存器,多个寄存器都为fffffffd是为什么?

    在调试AD7124-8驱动时,对各寄存器配置之后再次读各寄存器,多个寄存器都为fffffffd,这是为什么? 看参考程序里面对各
    发表于 12-07 08:29

    ad7190初始化R不成功且读回的寄存器不正确是为什么?

    读写程序在专门做的测试的小板上测试都没问题,打样的电路板和测试板的电路程序完全一样,但是测试出了问题: 1、初始化的时候RDY不能拉低; 2、不初始化时上电读各个寄存器有两种情况:
    发表于 11-27 12:27

    MSP430F5529硬件IIC驱动OLED(初始化使用的寄存器)

    MSP430F5529硬件IIC驱动OLED(初始化使用的寄存器)
    发表于 11-24 16:36 0次下载

    CPSR寄存器和APSR寄存器的组成

    程序状态寄存器的作用就是反映处理器的状态信息。在程序运行期间我们可以通过查看程序状态寄存器的状态位来进行程序的分支跳转处理,或者我们可以设置程序状态寄存器的模式位来改变处理器的运行模式,或者我们可以设置程序状态
    的头像 发表于 10-20 11:38 1563次阅读
    CPSR<b class='flag-5'>寄存器</b>和APSR<b class='flag-5'>寄存器</b>的组成

    在MCU编程中局部变量赋初始值的重要性

    在MCU编程中局部变量赋初始值的重要性
    的头像 发表于 10-16 18:29 361次阅读
    在MCU编程中局部变量赋<b class='flag-5'>初始值</b>的重要性

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

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

    寄存器是什么 掌握使用寄存器做设计需要注意的事项

    既然RTL是以寄存器行为为基础,那么就必须先了解寄存器是什么,并且掌握使用寄存器做设计需要注意的事项。
    的头像 发表于 07-13 15:38 802次阅读
    <b class='flag-5'>寄存器</b>是什么 掌握使用<b class='flag-5'>寄存器</b>做设计需要注意的事项

    GDB为什么无法更改ESP8266的寄存器

    我在这里完成了 GDB 示例 并且非常简单地能够更改任何 C++ 变量集但是当我尝试时:set $a3 = 0x01 或与此相关的任何其他寄存器它没有错误但是在执行信息寄存器后未设置。知道如何在
    发表于 05-29 08:54

    FLOEFD如何用稳态结果做瞬态计算的初始值呢?

    FLOEFD可以将稳态工况的计算结果作为瞬态工况的计算初始值
    的头像 发表于 05-17 16:13 1182次阅读
    FLOEFD如何用稳态结果做瞬态计算的<b class='flag-5'>初始值</b>呢?