RISC-V MCU中文社区

【分享】 队伍名称:Micro_423 队伍编号:CICC1195。 第一篇分享,主要介绍一下RISC-V 蜂鸟E203平台在Arty A7 100T上的搭建。

发表于 全国大学生集成电路创新创业大赛 2021-07-24 03:51:59
0
2617
3

RISC-V 蜂鸟E203平台搭建

一、       队伍介绍

队伍名称:Micro_423 队伍编号:CICC1195 大家好,本篇是我们队伍的第一篇分享,主要介绍一下RISC-V 蜂鸟E203平台在Arty A7 100T上的搭建。

二、       具体方法

E203的源码请参考链接:

https://github.com/riscv-mcu/e203_hbirdv2

E203overview链接:

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 toolchainNuclei OpenOCDWindows Build Tools即可(windows下开发),linux也类似的。

正片开始,根据上文介绍,此刻你的电脑中应该有rtl代码以及交叉编译环境了。本文侧重讲移植,并不会深入介绍risc-v核内部具体结构。主要从移植到烧录再到简单测试的操作。

首先,建个FPGA的工程,quartus还是vivado,选好芯片or board型号就行,再把RTL code添加进来即可。再者,添加根据schematic写的约束文件。最后就是核心注意事项了,我会详细解释(以Arty A7 100T为例子)。

·      时钟问题

先上个图,E203需要2个时钟,16MHz的全局时钟和一个32768kHzRTC时钟,16M用个PLL啥的给就行。由于ddr 220t板载一个32768kHz的时钟,直接约束给上就行。但是Arty A7 100T木有,所以需要用PLL or something else整一个8.388MHz的时钟之后再做一个计数器分频模块整出来一个32768kHz的时钟上去就行。而这个计数模块在Github也提供了,话说计数分频也很简单呀。总之时钟就是搞定了。

·      GPIO问题

E203上有64GPIO的管脚约束GPIOAB32个。一般的板子没有这么多GPIO需要约束的。这块工作量太大,我的处理是只保留我需要的GPIO

1.先屏蔽掉。

2.然后再申明wire类型的gpioAgpioB

3.最后再屏蔽掉IOBUF的操作,这里不屏蔽的话,最后implement还是生成比特流阶段会报错来着。

4.假如我只需要保留一路串口(对应GPIOA16 A17)那么这样操作即可:


·      唤醒引脚的电平设置

code里默认是低电平有效,也对应ddr 200t板子的约束文件,但是atry板子上都是高电平有效,所以各自根据板子实际电路做修改。



喜欢3
用户评论
zsf1998

zsf1998 实名认证

学习

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板