之前有人问题易灵思的BRAM是否可以修改ROM的初始化参数,像xilinx一样不需要编译,也有人问RISC 修改了bootloader有没有办法不用重新编译,在之前确实不行。不过易灵思2023.1.150软件这周发布了,增加了一些新的功能,其中就有客户提到的上面的问题的解决方法。
新软件增加了一个功能叫Open BRAM Initial Content Updater。它可以让用户快速更新BRAM初始化的数据而不需要全编译。它是更新elaborated网表的数据,
说明:--optimize-zero-init-rom综合选项是告诉软件优化初始化值为0的ROM的,如果你的ROM初始值是0,又想通过Open BRAM Initial Content Updater工具来修改初始值,需要把--optimize-zero-init-rom选项Disable。
RISCV片上ROM更新
(1)当工程编译完成之后,打开该工具就可以看到可以初始化的BRAM块。其中ram_symbol0,1,2,3就是RISCV的初始化文件。用户只需要选择相应的文件,然后再点击Update memory content就会把初始化文件更新掉,RISCV有4个bin文件,所以要对每个bin文件都进行更新。
至于怎么生成要更新的bin文件,之前写过
自定义RISC V的bootloader(1) (qq.com)
有一种老的生成bootloader的办法用在这里。
(2)当4个文件都更新完成之后点击Genarate a new Bitstream,就会有提示是否要重样综合还是继续生成Bitstream的过程,按下图选择Proceed with Bitstream Generation.软件会运行最后一步生成新的bit流。
(3)用新生成的数据流就可以重新下载看效果了。新生成的文件不会影响debug。
一般ROM的初始化
在Efinity的安装目录下提供了一个T20的参考工程。
/debugger/demo/helloworlddbg_GOLD
我把它修改成了Ti60F225的demo工程(因为手上没有T20的demo板)
链接:https://pan.baidu.com/s/106I_xipVjXc1sfV9c5982A?pwd=1234
提取码:1234
具体的操作步骤请参考efinity-ug.pdf的About the BRAM Initial Content Updater部分,有详细的说明,这里先不赘述。
全部0条评论
快来发表一下你的评论吧 !