一、 队伍介绍
本参赛队队名为“Supernova”,报名编号:CICC2796。本篇为蜂鸟E203系列分享第二篇。
本篇介绍的内容是蜂鸟E203在黑金XC7A200T型FPGA上的移植工作。
二、 前言
由于我们队的设计需要用到DDR,比赛提供的MCU200T上没有,而DDR200T的价格超出了我们的预算,所以我们使用了黑金XC7A200T开发板。
三、 移植前思考
1、由于E203主时钟与always-on部分的时钟分别为16M与32.768K,而PLL不能直接产生32.768K频率这么低的时钟,所以我们需要分频产生频率为32.768K的时钟。
2、由于我们所使用的开发板只有一块flash,所以我们不能分别将蜂鸟E203核与应用程序分别烧录进flash中,所以我们考虑直接将程序固化在FPGA上的RAM中,同蜂鸟E203核一同烧进FPGA开发板中或者通过串口将程序写进itcm的RAM中。
3、由于我们需要将板子上的资源尽量分配给加速器使用,所以我们砍掉了E203 SOC中不需要的外设部分
4、根据自己的开发板与相应功能,重新编写顶层模块与约束文件。
四、 移植
1、编写分频模块
2、将程序固化到RAM中
首先通过ubuntu18.04中配置好的SDK将C程序编译生成.verilog文件
然后使用该.verilog文件进行行为级仿真,检查功能是否与预期一致。
功能正确后手动将其转化成为.coe文件,并配置好RAM IP核。
3、生成.bit文件并下板
根据自己手上的板子重新编写顶层模块与约束文件,并生成.bit文件并烧录进FPGA开发板中
五、总结
这种移植方法不需要额外的flash,适用于所以FPGA开发板,有需要的小伙伴可以尝试这种方法。(注意使用此种方法需要将顶层模块中的bootrom_n信号改为0,也就是程序从itcm加载。)