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

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

3天内不再提示

想要对RAM初始化该怎么操作

FPGA技术驿站 来源:fqj 2019-06-06 14:36 次阅读

RAM的初始化并没有那么神秘,如果是采用Xilinx的IP Core,只需提供一个.coe文件,其内容就是RAM的初始值,只需要注意coe文件的格式就好,这里就不再赘述。

初始化方法

如果是自己写的RTL代码,如何初始化呢?这里提供两个常用方法。来看一个例子,如下图所示。

代码第16行,通过default将所有地址的初始值设置为0;

代码第17行,通过索引结合default的方式,将地址0的初始值设置为4,地址1的初始值设置为5,其余地址的初始值设置为0;

代码第19行至第25行,采用initial语句,通过调用readmemb(类似的还有readmemh)实现对RAM的初始化。使用$readmemb时,需要提供一个.mem文件,文件内容就是RAM的初始值,这里给出一个.mem的例子,如下图所示。

想要对RAM初始化该怎么操作

仿真问题

使用$readmemb时,需要把.mem文件加入到Vivado工程中,如下图所示。

想要对RAM初始化该怎么操作

如果没有添加此文件,会显示如下Warning信息

综合问题

无论是default还是readmemb定义的初始值,在综合时都是可以生效的。对于一个深度为4宽度为4的单端口RAM,综合后的网表如下图所示。

想要对RAM初始化该怎么操作

通过如下图所示的Tcl命令可获得相应的初始值,与init_data.mem中定义的初始值是一致的。

想要对RAM初始化该怎么操作

结论

两种RAM初始化的方式:

采用default或地址索引加default的方式;采用$readmemb或$readmemh的方式

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

    关注

    8

    文章

    1367

    浏览量

    114518
  • 初始化
    +关注

    关注

    0

    文章

    49

    浏览量

    11831

原文标题:对RAM初始化怎么做

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

收藏 人收藏

    评论

    相关推荐

    RT-Thread自动初始化详解

    初始化函数不需要被显式调用,只需要在函数定义处通过宏定义的方式进行申明,就会在系统启动过程中被执行,非常的方便。 1 普通初始化 前面也讲了,我们在写单片机的程序时,需要对硬件进行初始化
    的头像 发表于 06-25 21:38 1.1w次阅读
    RT-Thread自动<b class='flag-5'>初始化</b>详解

    字符型、指针型等变量如何初始化

    在敲代码的时候,我们会给变量一个初始值,以防止因为编译器的原因造成变量初始值的不确定性。对于数值类型的变量往往初始化为0,但对于其他类型的变量,如字符型、指针型等变量等如何
    发表于 09-23 11:50 2160次阅读

    想要调用相机的初始化函数如何操作

    我在调用库函数节点时遇到了困难,就是我想要调用相机的初始化函数,但是我不怎么明白它里面的参数,还有在参数设置哪里我怎么做,有几个参数,还有参数类型怎么设?下面有第一张图是相机
    发表于 07-31 17:27

    手机模块初始化向导

    手机模块初始化向导:为了刚好的对手机模块进行初始化,所以把最基本的向导写下来.本向导适用于本公司的西门子TC35I和华为GT9000模块。一、在初始化手机模块前,请先确定DT
    发表于 09-18 09:41 17次下载

    RDA1846S初始化设置

    RDA1846S初始化设置RDA1846S初始化设置RDA1846S初始化设置
    发表于 01-15 17:08 0次下载

    UCOS_III_配置与初始化

    UCOS_III_配置与初始化
    发表于 12-20 22:53 5次下载

    8259a初始化的步骤及代码介绍

    本文首先介绍了8259a工作初始化的步骤及程序,其次介绍了通过OCW对8259A进行操作方法,最后介绍了8259A初始化编程。
    的头像 发表于 05-23 14:24 3w次阅读
    8259a<b class='flag-5'>初始化</b>的步骤及代码介绍

    8253初始化程序分享_8253应用案例

    本文首先介绍了8253概念及8253各通道的工作方式,其次详细介绍了8253初始化要求及编程,最后用一个例子介绍了8253的初始化程序。
    发表于 05-23 15:52 2.2w次阅读
    8253<b class='flag-5'>初始化</b>程序分享_8253应用案例

    如何设置STM32单片机非初始化数据变量不被零初始化

    一些产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备。而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始化变量数据清零。
    发表于 01-02 15:56 8265次阅读
    如何设置STM32单片机非<b class='flag-5'>初始化</b>数据变量不被零<b class='flag-5'>初始化</b>

    在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决

    本文档的主要内容详细介绍的是在51平台下初始化文件的引入导致全局变量无法初始化的问题如何解决。
    发表于 08-20 17:31 0次下载
    在51平台下<b class='flag-5'>初始化</b>文件的引入导致全局变量无法<b class='flag-5'>初始化</b>的问题如何解决

    霍尔无刷电机如何进行程序初始化

    定时计数、接口、看门狗等在内的多种模块,多种模块设计的初始化具体过程则如下文所示:1. 对时钟频率模块的初始化,在此初始化过程中的系统振动器的振荡频率的值选择,系统的时钟频率的设定值为
    的头像 发表于 10-15 17:29 7652次阅读

    Nand Flash驱动(实现初始化以及读操作)

    Nand Flash驱动(实现初始化以及读操作)
    发表于 12-02 12:36 11次下载
    Nand Flash驱动(实现<b class='flag-5'>初始化</b>以及读<b class='flag-5'>操作</b>)

    C语言编程时,各种类型的变量如何初始化

    C语言编程时,各种类型的变量如何初始化? 在C语言中,每个变量都需要在使用之前进行初始化初始化是为变量分配内存空间并赋予初始值的过程。C
    的头像 发表于 12-07 13:53 1120次阅读

    MCU单片机GPIO初始化按什么顺序配置?为什么初始化时有电平跳变?

    GPIO初始化时有时钟配置、模式配置、输出配置、复用配置,那么在编写初始化代码时,到底按什么顺序执行呢?如果顺序不当那初始化过程可能会出现短暂的电平跳变。
    的头像 发表于 02-22 11:07 1423次阅读
    MCU单片机GPIO<b class='flag-5'>初始化</b><b class='flag-5'>该</b>按什么顺序配置?为什么<b class='flag-5'>初始化</b>时有电平跳变?

    字符型、指针型等变量等如何初始化

     对于数值类型的变量往往初始化为0,但对于其他类型的变量,如字符型、指针型等变量等如何初始化呢?
    的头像 发表于 03-18 11:02 1252次阅读