<font color="#FF8000">作者:西电ISN国家重点实验室网络与交换团队博士生刘欢,来源:网络交换FPGA微信公众号</font>
<strong>1、引言</strong>
以交换机设计为例。在交换机设计前期,转发表项是固化在交换机内部的(给FPGA片内BRAM初始值),但是在测试过程中,往往需要对表项进行修改,如果直接修改BRAM的coe文件,则需要重新综合、实现、生成bit文件,其中,综合与实现耗时十分严重,设计规模越大,消耗的时间越长,而生成bit文件消耗的时间则相对固定。针对上述问题,本文探究一种避免综合与实现,直接修改BRAM初始化值的方法,可以避免综合、实现两个步骤,修改BRAM初始值后,直接生成bit文件,可节约大量的时间。
<strong>2、 操作方法</strong>
(1) 完成初始设计,综合、实现(但是不生成bit文件) ;
(2) 打开布线后的dcp文件(使用Vivado直接打开),如下图所示:
<center><img src="http://xilinx.eetrend.com/files/2019-08/wen_zhang_/100044706-77811-01.p…; alt=""></center>
(3) 找到想修改的目标BRAM:
<3.1> ctrl+f ;
<center><img src="http://xilinx.eetrend.com/files/2019-08/wen_zhang_/100044706-77812-02.p…; alt=""></center>
<3.2> 选择需要修改的BRAM ;
<center><img src="http://xilinx.eetrend.com/files/2019-08/wen_zhang_/100044706-77813-03.p…; alt=""></center>
<3.3> 在properties界面,可以直接修改初始化文件(需要熟悉原语,其初始化方式与RAMB18E1相同);
<center><img src="http://xilinx.eetrend.com/files/2019-08/wen_zhang_/100044706-77814-04.p…; alt=""></center>
<3.4>保存,退出;
<3.5>在主工程中打开实现设计,按照相同的方式可以找到对应的RAM与初始化值,可以发现初始化值已经改变了 ;
<3.6> 生成bitstream文件。
<strong>3、 上板实测</strong>
(1) coe文件:
<center><img src="http://xilinx.eetrend.com/files/2019-08/wen_zhang_/100044706-77815-05.p…; alt=""></center>
(2) 修改后的RAM初始化值
<center><img src="http://xilinx.eetrend.com/files/2019-08/wen_zhang_/100044706-77816-06.p…; alt=""></center>
(3) 上板实测结果:
<center><img src="http://xilinx.eetrend.com/files/2019-08/wen_zhang_/100044706-77817-07.p…; alt=""></center>
<strong>4、 结论</strong>
在仅修改BRAM初始化值的场景下,该方法可以大大减小从修改BRAM初始值到重新生成bitstream的时间,在交换机调试过程中,具有一定实用价值。
文章转载自: <span id="profileBt"><a href="https://mp.weixin.qq.com/s?__biz=MzU1MzI4ODA5OA==&mid=2247484994&am…; id="js_name">网络交换FPGA</a></span>