基于openE902的smart soc 的FPGA测试

本文转载自:芯设计微信公众号

写在前沿

玄铁E902是一款面向低功耗端侧MCU,IOT应用的cpu,支持RISC-V RV32EMC ISA,开源版本openE902的配置缺少指令cache以及TEE功能。

本文基于平头哥半导体公司开源的openE902 core、以及smart soc代码,做了FPGA的软件测试。

准备工作

1: 下载openE902的core,smart soc,以及仿真文件:

https://github.com/T-head-Semi/opene902

按照README.md可以先跑一下仿真环境。

2: CDK工具包(剑池CDK集成开发环境V2.12.1):

https://occ.t-head.cn/community/download?id=5759974197753282563

3: E902软件库SDK(SmartL_E902M_RV32EMC-R2S0P0-V1.7.3):

https://occ.t-head.cn/community/download?id=582560116612956160

4: vivado(2017.01), FPGA(Xilinx Artix-7 XC7A200T), Putty, CLINK调试工具。

5: E902的产品手册, PPA数据:

https://img.102.alibaba.com/1623743224121/7a98153360599adc281c32f258a3c9...

硬件SOC部分工作

smart soc的架构如下图1所示(E906 core替换为openE902):

图1

openE902的文件目录结构如图2:

图2

将图2中的cpu core、及smart soc代码添加到新建的vivado工程中。

添加工程约束xdc:对时钟复位,jtag接口,gpio[7:0] 和uart信号进行约束, 时钟约束选择了20Mhz。

布局布线后的资源情况(其中ITCM, DTCM, SYS_SRAM,约1MB存储),如图3:

图3

生成bit 文件烧录到FPGA板子上。

软件SDK部分工作

在xxx\SmartL_E902M_RV32EMC-R2S0P0-V1.7.3\projects\examples\driver目录中有对uart、timer、gpio的CDK工程。

打开CDK工程: compile,build project,start debugger。

这里我重写了C代码,可以调用timer、gpio、uart、以及算术运算函数,如图4:

图4

第一次代码测试的时候,程序挂了,经过单步debug发现程序在trap_c.c文件中不断循环。

这里我把图5框中部分代码注释掉就没问题了(system.c代码),不知道会不会影响其他功能。

图5

main函数的FPGA测试没问题,串口测试效果如图6所示:

图6

写在最后
基于openE902、smart soc,以及配套的SDK工程,芯片设计同学可以在底层硬件做一些数字IP RTL逻辑开发,软件同学也可以在上层软件做一些应用开发。

免责声明:本文转载于网络,转载此文目的在于传播相关技术知识,版权归原作者所有,如涉及侵权,请联系小编删除(联系邮箱:service@eetrend.com )。

最新文章