RISC-V 蜂鸟E203平台搭建
一、
队伍介绍
队伍名称:Micro_423 队伍编号:CICC1195。 大家好,本篇是我们队伍的第一篇分享,主要介绍一下RISC-V 蜂鸟E203平台在Arty A7 100T上的搭建。
二、
具体方法
E203的源码请参考链接:
https://github.com/riscv-mcu/e203_hbirdv2
E203的overview链接:
https://doc.nucleisys.com/hbirdv2/overview/overview.html
具体的RTL工程获取细节可以看Github链接的fpga文件夹下的script,我用的顶层就是faga/ddr200t文件夹下的system.v文件,其它的code均在最外层的rtl文件夹下。整体rtl文件的获取很方便,可以直接参考FPGA文件夹下的make install FPGA_NAME=ddr200t命令,一步到位哟。overview就是对E203的整个平台做了整体介绍,有什么样的外设,如何烧录等等。最主要看第四节的交叉编译环境的安装,安装RISC-V GNU toolchain、Nuclei OpenOCD、Windows Build Tools即可(windows下开发),linux也类似的。
正片开始,根据上文介绍,此刻你的电脑中应该有rtl代码以及交叉编译环境了。本文侧重讲移植,并不会深入介绍risc-v核内部具体结构。主要从移植到烧录再到简单测试的操作。
首先,建个FPGA的工程,quartus还是vivado,选好芯片or board型号就行,再把RTL code添加进来即可。再者,添加根据schematic写的约束文件。最后就是核心注意事项了,我会详细解释(以Arty
A7 100T为例子)。
· 时钟问题
先上个图,E203需要2个时钟,16MHz的全局时钟和一个32768kHz的RTC时钟,16M用个PLL啥的给就行。由于ddr
220t板载一个32768kHz的时钟,直接约束给上就行。但是Arty A7 100T木有,所以需要用PLL
or something else整一个8.388MHz的时钟之后再做一个计数器分频模块整出来一个32768kHz的时钟上去就行。而这个计数模块在Github也提供了,话说计数分频也很简单呀。总之时钟就是搞定了。
·
GPIO问题
E203上有64个GPIO的管脚约束GPIOA和B各32个。一般的板子没有这么多GPIO需要约束的。这块工作量太大,我的处理是只保留我需要的GPIO。
1.先屏蔽掉。
2.然后再申明wire类型的gpioA和gpioB。
3.最后再屏蔽掉IOBUF的操作,这里不屏蔽的话,最后implement还是生成比特流阶段会报错来着。
4.假如我只需要保留一路串口(对应GPIO的A16 A17)那么这样操作即可:
·
唤醒引脚的电平设置
code里默认是低电平有效,也对应ddr 200t板子的约束文件,但是atry板子上都是高电平有效,所以各自根据板子实际电路做修改。