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

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

3天内不再提示

探究一种避免综合与实现直接修改BRAM初始化值的方法

FPGA技术江湖 来源:网络交换FPGA 2023-02-02 14:03 次阅读

1、引言

交换机设计为例。在交换机设计前期,转发表项是固化在交换机内部的(给FPGA片内BRAM初始值),但是在测试过程中,往往需要对表项进行修改,如果直接修改BRAM的coe文件,则需要重新综合、实现、生成bit文件,其中,综合与实现耗时十分严重,设计规模越大,消耗的时间越长,而生成bit文件消耗的时间则相对固定。

针对上述问题,本文探究一种避免综合与实现,直接修改BRAM初始化值的方法,可以避免综合、实现两个步骤,修改BRAM初始值后,直接生成bit文件,可节约大量的时间。

2、 操作方法

(1) 完成初始设计,综合、实现(但是不生成bit文件) ;
(2) 打开布线后的dcp文件(使用Vivado直接打开),如下图所示:

f94e2fc6-a2b7-11ed-bfe3-dac502259ad0.png

(3) 找到想修改的目标BRAM:

<3.1> ctrl+f ;

f96a1f74-a2b7-11ed-bfe3-dac502259ad0.jpg

<3.2> 选择需要修改的BRAM ;

f989d274-a2b7-11ed-bfe3-dac502259ad0.png

<3.3> 在properties界面,可以直接修改初始化文件(需要熟悉原语,其初始化方式与RAMB18E1相同);

f9a0b840-a2b7-11ed-bfe3-dac502259ad0.png

<3.4>保存,退出;

<3.5>在主工程中打开实现设计,按照相同的方式可以找到对应的RAM与初始化值,可以发现初始化值已经改变了 ;

<3.6> 生成bitstream文件。

3、 上板实测

(1) coe文件:

f9b0fe3a-a2b7-11ed-bfe3-dac502259ad0.png

(2) 修改后的RAM初始化值

f9bc8fa2-a2b7-11ed-bfe3-dac502259ad0.png

(3) 上板实测结果:

f9d4e2dc-a2b7-11ed-bfe3-dac502259ad0.png

4、 结论

在仅修改BRAM初始化值的场景下,该方法可以大大减小从修改BRAM初始值到重新生成bitstream的时间,在交换机调试过程中,具有一定实用价值。






审核编辑:刘清

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

    关注

    1629

    文章

    21729

    浏览量

    603050
  • 交换机
    +关注

    关注

    21

    文章

    2638

    浏览量

    99550
  • DCP
    DCP
    +关注

    关注

    0

    文章

    30

    浏览量

    17229
  • BRAM
    +关注

    关注

    0

    文章

    41

    浏览量

    10958

原文标题:Vivado 直接修改RAM初始化文件,避免重新综合、实现的方法

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

收藏 人收藏

    评论

    相关推荐

    有没有一种方法最佳的方法实现初始化I/O引脚

    大家好,我希望这听起来不像是懒人问题。令人惊奇的是,在MPLABX/XC8项目中,有没有一种最佳的实践/推荐方法来对控制器的所有引脚进行初始化初始化,特别是如果它的
    发表于 01-25 13:30

    初始化BRAM警告coe文件不存在

    大家好,我搜索了几个关于初始化BRAM的线程,但我找不到答案。我使用的是Vivado 2015.4。我写了个coe文件,想把coe文件加载到BRAM中。首先,我添加
    发表于 04-17 09:47

    请问初始化BRAM后怎么显示BRAM数据?

    嗨,大家好,我想用coe文件初始化BRAM,但有两个问题。首先,当我加载coe文件时,存在文件不存在的错误。见下图:有人可以帮我解决问题吗?其次,我删除了错误文件,因为“文件组”下有两个coe文件
    发表于 04-18 11:27

    如何避免Spartan默认初始化BRAM

    嗨,我需要读取BRAM的上电,但是在编程阶段它们默认为0。有办法防止这种情况吗?谢谢以上来自于谷歌翻译以下为原文Hi, I need to read the power-up values
    发表于 07-23 11:37

    初始化BRAM primitaves出现错误和循环漏洞的原因?

    大家好,我直在尝试在我的项目中初始化我的BRAM primitaves段时间,并继续遇到意外错误和循环漏洞。概述:用于综合的Synpli
    发表于 07-26 10:04

    如何去编写一种PWM初始化函数?

    如何去编写一种PWM初始化函数?ADC如何进行初始化呢?电调首次使用为什么需设置量程?
    发表于 07-21 07:34

    变量初始化的基本原则

    、变量初始化变量初始化的基本原则为:可综合代码中完成内部变量的初始化,Testbench中完成可综合
    发表于 01-19 07:07

    基于粒子群算法的同步时序电路初始化

    摘要:针对同步时序电路的初始化问题,提出了一种新的实现方法。当时序电路中有未确定状态的触发器时,就不能顺利完成该电路的测试生成,因此初始化
    发表于 05-13 09:36 6次下载

    一种多类原型模糊聚类的初始化方法

    一种多类原型模糊聚类的初始化方法 模糊聚类是非监督模式分类的个重要分支,在模式识别和图像处理中已经得到了广泛的应用.但现有模糊聚类算法大都需要聚类数
    发表于 10-21 16:02 1001次阅读

    基于WRED协议的TCP连接初始化的优化方法

    针对数据中心中由于SYN包丢失而引起的TCP连接被延迟从而错过任务时间限制的问题,在无需更换现有设备以及无需修改应用和TCP的前提下,提出一种基于加权随机早期检测(WRED)协议的TCP连接初始化
    发表于 11-29 14:18 0次下载
    基于WRED协议的TCP连接<b class='flag-5'>初始化</b>的优化<b class='flag-5'>方法</b>

    一种修饰符能使变量在处理器复位而不被初始化

    一种修饰符能使变量在处理器复位而不被初始化
    的头像 发表于 03-14 15:01 4026次阅读
    <b class='flag-5'>一种</b>修饰符能使变量在处理器复位而不被<b class='flag-5'>初始化</b>

    修改BRAM初始化避免综合实现

    实现、生成bit文件,其中,综合实现耗时十分严重,设计规模越大,消耗的时间越长,而生成bit文件消耗的时间则相对固定。针对上述问题,本文探究一种
    的头像 发表于 11-30 15:37 2615次阅读
    <b class='flag-5'>修改</b><b class='flag-5'>BRAM</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>

    如何使用精确估计满秩空间相关矩阵实现MNMF稳定初始化方法

    多通道非负矩阵分解(MNMF)是最有效的盲源分离技术之。提出了一种通过精确估计满秩空间相关矩阵的MNMF稳定初始化方法。替代初始化可以是作
    发表于 10-16 08:00 3次下载
    如何使用精确估计满秩空间相关矩阵<b class='flag-5'>实现</b>MNMF稳定<b class='flag-5'>初始化</b>的<b class='flag-5'>方法</b>

    华为技术有限公司公开“智能驾驶系统初始化方法和装置”专利

    2月1日消息,企查查APP显示,1月29日,华为技术有限公司公开“智能驾驶系统初始化方法和装置”专利,公开号为CN110723151B。 该专利摘要显示,本申请公开了一种智能驾驶系统初始化
    的头像 发表于 02-01 15:52 1790次阅读

    VHDL和Verilog中数组定义、初始化、赋值方法

    方法:实际应用里,通常需要在上电复位过程中对变量进行初始化,如果数组个数少时,直接初始值即可,但是数组个数多时,可以用循环实现赋值,通常的
    的头像 发表于 09-23 14:20 1.1w次阅读