队伍编号:CICC1304
系统:Ubuntu20.04 iverilog:12.0
E203内核的DTCM和ICTM的默认配置为64KB的大小。然而,我们自己编写的应用程序可能因为代码量或者数据量过大,而导致指令或者数据无法完全放在ITCM或DTCM中,直接的表现是在用hbird-sdk生成.verilog文件时报错(如下图)。
因此,我们需要根据需要对DTCM、ITCM的进行扩容。具体操作如下:
1、修改vsim\install\rtl\core下的config文件,将`define E203_CFG_DTCM_ADDR_WIDTH 16
`define E203_CFG_ITCM_ADDR_WIDTH 16
修改成合适的大小,比如,如果想将DTCM扩展到256KB,则设置如下`define E203_CFG_DTCM_ADDR_WIDTH 18
2、由于扩容后的DTCM、ITCM的大小发生了变化,在运行仿真测试时,需要修改hbird-sdk生成测试代码的配置文件,具体为修改hbird-sdk\SoC\hbirdv2\Board\ddr200t\Source\GCC下的gcc_hbirdv2_ilm.ld文件,将
ilm (rxai!w) : ORIGIN = 0x80000000, LENGTH = 64K
ram (wxa!ri) : ORIGIN = 0x90000000, LENGTH = 64K
修改成对应的大小。比如,如果想将DTCM扩展到256KB,则设置如下ilm (rxai!w) : ORIGIN = 0x80000000, LENGTH = 64K
ram (wxa!ri) : ORIGIN = 0x90000000, LENGTH = 256K
这样,我们就实现了仿真环境下E203的DTCM和ITCM的扩容。
其他:在将E203综合到FPGA上时,由于FPGA的资源有限,如果设置的DTCM和ITCM的容量过大,可能会因为FPGA的资源不足而出现无法综合的问题。此外,如果综合成功,在使用NucleiStudio将应用程序下载到FPGA上时,同样要将NucleiStudio项目中的gcc_hbirdv2_ilm.ld文件修改成DTCM和ITCM内存大小的配置,才能让应用程序正常运行。