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

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

    关注

    31

    文章

    5619

    浏览量

    130395
  • 上电复位
    +关注

    关注

    1

    文章

    44

    浏览量

    16212
  • init
    +关注

    关注

    0

    文章

    16

    浏览量

    3709

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    74HC595 8位移位寄存器:设计与应用全解析

    74HC595 8位移位寄存器:设计与应用全解析 在电子工程师的工具箱中,移位寄存器是一个非常实用的组件。今天,我们就来深入了解一下SG Micro Corp的74HC595 8位串行输入/串行输出
    的头像 发表于 03-16 10:35 352次阅读

    RDMA设计39:寄存器功能验证与分析

    初始值测试 初始值的测试结果如图 1 所示,在复位信号被断言有效时,全局计数寄存器应回到初始值 0。仿真行为符合预期。 图1 全局计数
    发表于 02-11 09:24

    RDMA设计38:寄存器功能验证与分析

    。由于DUT中寄存器数量较多,这里用全局计数寄存器为例说明寄存器功能验证过程。对于寄存器的仿真需要考虑寄存器
    发表于 02-09 10:26

    LAT1170+如何理解 RAMECC FAR 寄存器

    电子发烧友网站提供《LAT1170+如何理解 RAMECC FAR 寄存器.pdf》资料免费下载
    发表于 01-09 16:12 0次下载

    智能显示模块怎么在显示工程中给寄存器设置初始值?我想给变量一个上电的默认该如何设置?

    智能显示模块怎么在显示工程中给寄存器设置初始值?我想给变量一个上电的默认该如何设置?
    发表于 12-11 09:54

    智能显示模块怎么在显示工程中给寄存器设置初始值?我想给变量一个上电的默认该如何设置?

    智能显示模块怎么在显示工程中给寄存器设置初始值?我想给变量一个上电的默认该如何设置?
    发表于 12-06 10:20

    【NCS随笔】nRF54L15使用UICR寄存器保存数据

    (NVM)寄存器,用于配置用户特定的设置 注意所有 UICR 寄存器都具有 RW1 保护,只能写入一次,需要再写的话必须要擦除Erase All 默认复位为 0xFFFFFFFF 这个是是
    的头像 发表于 11-27 17:09 1729次阅读

    汇编寄存器的知识

    ,CPU 优先读写寄存器,再由寄存器跟内存交换数据。 寄存器不依靠地址区分数据,而依靠名称。每一个寄存器都有自己的名称,我们告诉 CPU
    发表于 11-20 06:45

    嵌入式系统必懂的 20 个寄存器

    嵌入式开发看起来很复杂,但很多操作其实都离不开寄存器寄存器就是MCU内部的存储单元,它们控制着处理和外设的行为。熟悉这些寄存器,你就能更精确地操作硬件,提高开发效率,减少调试时间。
    的头像 发表于 11-14 10:28 1357次阅读
    嵌入式系统必懂的 20 个<b class='flag-5'>寄存器</b>

    大彩讲堂:VisualHMI-LUA教程-连续写多个寄存器函数的应用

    ,value2,…,value120)vtype:数据类型addr:变量起始地址,最大可以写120个连续寄存器value1:寄存器1的value2:寄存器2的
    的头像 发表于 10-17 00:00 1605次阅读
    大彩讲堂:VisualHMI-LUA教程-连续写多个<b class='flag-5'>寄存器</b>函数的应用

    NVMe高速传输之摆脱XDMA设计32:寄存器功能验证与分析2

    寄存器最大为 64’hFFFFFFFFFFFFFFFF,到达最大后一个时钟周期后翻转回 0, 在随机时刻使用 force 将寄存器赋值临近最大
    的头像 发表于 10-14 17:06 881次阅读
    NVMe高速传输之摆脱XDMA设计32:<b class='flag-5'>寄存器</b>功能验证与分析2

    NVMe高速传输之摆脱XDMA设计31: 寄存器功能验证与分析1

    寄存器初始值、 读写操作测试、 边界测试、 功能测试等。(1) 初始值测试结果全局计数寄存器
    发表于 09-30 10:01

    ‌SN74HCT595 8位移位寄存器技术解析与应用指南

    Texas Instruments SN74HCT595/SN74HCT595-Q1 8位移位寄存器包含8位串进并出移位寄存器,向8位D类存储寄存器馈送信号。存储寄存器具有并行 3 状
    的头像 发表于 09-19 14:31 1212次阅读
    ‌SN74HCT595 8位移位<b class='flag-5'>寄存器</b>技术解析与应用指南

    ‌TPIC6B595 8位功率移位寄存器技术文档总结

    TPIC6B595器件是一款单片、高压、中电流功率8位移位寄存器,设计用于需要相对高负载功率的系统。该器件在输出端包含一个内置电压钳位,用于电感瞬态保护。功率驱动应用包括继电器、螺线管和其他中电流
    的头像 发表于 09-09 10:16 1161次阅读
    ‌TPIC6B595 8位功率移位<b class='flag-5'>寄存器</b>技术文档总结

    使用寄存器点亮LED灯

    学习本章时,配合以上芯片手册中的“19. I/O Ports”章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。本章内容涉及到较多寄存器方面的深入内容,对于初学者而言这些内容丰富也较难理解,但非常有必要细读研究、夯实基础。
    的头像 发表于 05-28 17:37 1459次阅读
    使用<b class='flag-5'>寄存器</b>点亮LED灯