当前位置:首页 > 新闻资讯 > FPGA之家动态 >

实验技术与方法 | 基于RISC-V的SOPC电子系统设计实验研究

时间:2024-07-28      来源:网络搜集 关于我们 0

点击蓝字关注我们

基于RISC-V的SOPC电子系统

设计实验研究

Experimental study on design 

of SOPC electronic system 

based on RISC-V

作者单位

叶朝辉,张仁刚,赵腾浩,程雪珂

清华大学 自动化系,北京 100084

YE Zhaohui, ZHANG Rengang, 

ZHAO Tenghao, CHENG Xueke

Department of Automation, Tsinghua 

University, Beijing 100084, China

作者简介:

叶朝辉(1968—),女,湖南望城,博士,副教授,副所长,主要从事电子技术及应用研究。

以下为本文目录结构

点击图片查看大图

摘  要

该实验设计在电子系统设计相关教学中引入嵌入开源软核微处理器的片上可编程系统SOPC(system on programmable chip)技术,不仅能够让更多学生学习集成电路初步设计方法,而且能够通过自主设计SOPC系统培养其创新能力。该文首先对SOPC电子系统设计的现状进行了分析,提出了基于RISC(reduced instruction set computer)-V开放指令集架构的微处理器进行SOPC系统设计教学,之后介绍了RISC-V微处理器的选择和移植方法,最后介绍了基于RISC-V微处理器的四个层次的实验设计原则和设计出的具体实验项目。

Abstract:This experimental design introduces the system on programmable chip (SOPC) technology embedded in open-source soft core microprocessors in electronic system design related teaching, which not only enables more students to learn the preliminary design methods of integrated circuits, but also cultivates their innovative ability through self-designed SOPC systems. This article first analyzes the current status of SOPC electronic system design and proposes a microprocessor based on RISC (reduced instruction set computer) - V open instruction set architecture for SOPC system design teaching. Then introduces the selection and porting methods of RISC-V microprocessors, and finally introduces the four levels of experimental design principles and specific experimental projects designed based on RISC-V microprocessors.

关键词:电子技术;RISC-V微处理器;

SOPC电子系统设计;实验项目

Key words: electronic technology; 

RISC-V microprocessor; 

SOPC electronic system design; 

experimental projects

以下进入全文阅读

1  背景

随着智能技术的发展,作为智能系统硬件核心的电子系统应用越来越广泛,对电子系统设计人才的需求非常大,特别是高端设计人才。

现代电子系统通常以片上系统SoC(system on chip)为核心进行设计。由于FPGA具有灵活设计和可在系统编程特点,越来越多地应用在SoC系统设计中,形成片上可编程系统SOPC。

SOPC通常是指基于现场可编程门阵列FPGA(field programmable gate array)的带1个或多个软核或硬核微处理器以及一些外围设备的片上系统SoC。SOPC也是一种特殊的嵌入式系统,既具有微处理器处理能力强大的优势,又具有FPGA设计方式灵活和在系统可编程的优势,因此利用SOPC设计电子系统的应用越来越多。例如文献[1—3]分别介绍了基于SOPC的嵌入式网络服务器、生物医学应用和图像处理应用。SOPC在教学实验中也发挥着重要作用,例如文献[4—5]采用SOPC进行计算机结构或微处理器教学,文献[6—8]采用SOPC进行电子系统设计教学。

SOPC内部既可以嵌入功能固定的硬核微处理器,也可以嵌入功能可通过软件设计和定制的软核微处理器。例如,文献[6]和[8]分别采用MIPS软核微处理器和NIOSII软核微处理器进行了SOPC电子系统设计实验。采用软核微处理器设计SOPC系统,不仅能培养学生的系统设计能力,还能让学生了解集成电路的设计方法,因为设计SoC芯片的原型和验证通常可以利用FPGA完成。

MIPS、NIOSII是经典的RISC指令集架构,特点是简单、清晰、规则,且具有广泛的教学资源和案例。但NIOSII微处理器不是开源的微处理器,实际应用需要授权,非常不方便;MIPS虽然目前开源,但没有成为学术研究的重点。而新兴的开源RISC-V微处理器的出现,使我国在高端处理器领域的发展迎来机遇,受到广泛欢迎。研究基于RISC-V微处理器的SOPC电子系统设计实验并开设相关课程,具有重要意义。

2  国内外相关课程调研

RISC-V是一种新的开放指令集架构,由加州大学伯克利分校于2010年首次发布[9]。它基于精简指令集计算RISC的架构,具有开源、简洁、易扩展、高效、灵活等特点,可以支持多种扩展指令集和自定义指令集。

近年来,RISC-V受到国内外学术界和工业界的广泛关注和研究。目前已有一些基于RISC-V的开源微处理器。

RISC-V指令架构不仅在各个领域取得了广泛成功,同时也成为教育领域的新选择,可以让学生掌握最新的技术发展和趋势,培养创新思维和实践能力。

通过调研发现,目前仅有针对RISC-V微处理器的计算机结构课程,还没有基于RISC-V微处理器的SOPC电子系统设计课程。例如文献[10—16]是计算机结构课程基于FPGA平台设计一个RISC-V微处理器系统或计算机系统,侧重于培养学生对微处理器结构或计算机结构及外设的认识和理解。因此,研究基于RISC-V微处理器的SOPC电子系统设计实验并开设相关课程,具有实际意义。

3  RISC-V微处理器的选型

随着众多商业公司和科研机构加入到RISC-V开发和设计竞争中,涌现出多个RISC-V开源版本和商用知识产权。目前已有多款相对成熟的RISC-V微处理器投入商业使用或学术研究。

这些微处理器可分为以下两类。

(1)一类是开源或不开源的,但结构比较复杂,功能强、性能高,对于初学者来说要求较高,不太适合于电子系统设计教学。这类微处理器包括:美国加州大学伯克利分校发布的基于RISC-V指令集架构的开源微处理器Rocket和BOOM,SiFive公司于2016年发布的不开源的商用RISC-V片上系统SiFive FE310,阿里巴巴旗下半导体公司于2019年发布的玄铁910微处理器,以及Green Waves GAP8、Espressif ESP32、PULPino等非开源的RISC-V指令集架构微处理器等。

(2)第二类是开源且结构不太复杂的微处理器,适合于教学应用。例如,目前国内领先的RISC-V IP和解决方案公司芯来科技公司开发的RISC-V微处理器蜂鸟E203微处理器,主要面向低功耗应用,支持自选的指令集,支持通过协处理器进行硬件加速,且具有丰富可自定义的接口等,适合于教学应用。

4  RISC-V微处理器的移植

本文选择蜂鸟E203微处理器和赛灵思公司的ZYNQ 7000系列FPGA开发板进行SOPC电子系统设计教学。

首先需要将蜂鸟E203微处理器移植到ZYNQ开发板上,使用的软件平台包括Xilinx公司推出的集成设计环境Vivado,以及芯来科技推出的集成开发环境Nuclei Studio,在调试过程中使用RISC-V配套的GNU工具链。

移植方法分为以下四个步骤。

(1)进行片上系统的顶层设计。在顶层中需要完成处理器核心的例化,输入/输出接口说明和内部信号声明等。该步骤在Vivado集成开发环境中完成。

(2)引脚约束和布局布线。将顶层设计中的输入/输出接口绑定到FPGA开发板的指定管脚,如时钟信号引脚、调试信号引脚、自定义扩展引脚等。

(3)仿真验证。在集成设计环境中执行项目的行为级仿真,观察设计的微处理器系统在执行程序过程中各信号是否按照期望的方式变化,确保设计能够实现目标功能。

(4)上板测试。将FPGA与电脑进行硬件连接,如图1所示,将设计下载到FPGA开发板上,然后进行软件测试。软件测试在Nuclei Studio集成开发环境中完成,运行用于测试的HelloWorld程序,评估系统的性能和功能。

图1  FPGA实验板硬件连接示意图

5  SOPC教学实验设计

5.1 整体设计

以移植的微处理器为核心,设计了一系列SOPC教学实验,使学生能够通过实践操作,掌握RISC-V微处理器和SOPC设计的基本知识和技能,培养综合设计能力和创新能力。

实验内容的设计主要有以下几点考虑。

(1)充分利用蜂鸟E203处理器的计算能力,以及FPGA的灵活性和可编程特点。

(2)从简单到复杂、从基础到综合,分层次地设计不同难度和不同复杂度的实验项目,使学生能够循序渐进地学习和探索。

(3)结合实际应用场景,针对电子系统常用的计算、测量、控制、通信等应用领域,利用不同类型的外设和传感器,设计综合实验和创新实验,使学生能够将理论知识和实际应用相结合,提高解决问题的能力和创新意识。

基于以上分析,实验分为四个层次,分别为基本实验、提高实验、综合实验和创新实验。基本实验的目的是使学生熟悉微处理器的基本功能,包括GPIO端口、PWM、中断的应用;提高实验的目的是使学生熟悉SOPC的设计及较复杂的应用,包括串口通信和二维数组求和协处理器(通过硬件模块加速计算);综合实验的目的是使学生熟悉SOPC的实际应用,包括超声波测距、舵机控制、蓝牙通信、手写体识别;创新实验则让学生进行自主设计,如学生可以用综合实验中的模块组成机器人、机械手、智能小车等控制系统。

5.2 基本实验

1)GPIO控制LED闪烁。

该实验利用开发板上的按键控制LED灯闪烁。

首先在Nuclei Studio中创建项目,在主文件中导入蜂鸟E203 SDK的硬件抽象层头文件“hbrid_sdk_hal.h”,该文件包含了开发板的通用宏定义和底层的用户使用接口。之后修改GPIO的掩码定义,将用户按钮和LED的掩码位置设置为约束文件中对应的编号。接下来分别调用函数“gpio_enable_input/output”使能处理器通过GPIO完成信号输入和输出,最后通过编程实现按键控制LED灯闪烁。

2)PWM控制LED实现“呼吸灯”。

脉冲宽度调制PWM是一种常用开关信号输出控制模块,可以通过调节开关信号的占空比来改变平均电压或电流,从而实现类似模拟信号的输出效果,在测量、通信、功率控制等众多领域有广泛应用。

蜂鸟E203处理器支持1个PWM模块,其中包含四个时间控制单元TIMER。每个单元均有4路输出通道,可以对其配置计数时钟源和可编程预分频器,每个通道都能输出中断信号。本实验利用其中一个TIMER单元的输出信号,控制LED灯实现呼吸灯效果。

3)中断实验。

在电子系统设计中,经常需要用中断来处理实时性要求较高的事件,例如数据采集、网络通信等。

蜂鸟E203微处理器实现了RISC-V指令集架构定义的3种基本中断类型,分别是软件中断、计时器中断和外部中断。其中,计时器中断主要用于实现定时功能或调度多个任务的执行,由处理器内部的计时器产生;软件中断用于实现系统调用或异常处理,由处理器内部的指令产生;外部中断用于实现设备驱动或特定的事件响应,由外部的设备或信号产生。

(1)计时器中断和软件中断。分别使用蜂鸟E203微处理器的CLINT计时模块和软件指令产生10次中断,计时器中断和软件中断的服务函数均设计为输出当前触发中断的类型和中断的次数。

(2)外部中断。采用两个按键作为外部中断源,两个LED作为中断服务函数的控制对象,每当按键被按下,触发一次中断,处理器监听到中断后,进入服务函数,在这个函数中通过分支判断语句分辨是哪一个按键所发出的中断,并控制对应的LED灯切换亮/灭状态。运行程序可以在终端观察到图2所示的输出。

图2  外部中断输出结果

5.3 提高实验

1)UART串口通信。

UART是一种常用的串行异步通信协议,应用非常广泛,可以用来连接计算机、终端、调试器、传感器等众多设备,实现点对点或多点之间的通信。

蜂鸟E203处理器配置多个UART串口,其中UART0是默认的调试串口。本实验选择UART2来连接外设并完成实验。

2)基于RISC-V指令架构的软核扩展。

RISC-V指令集架构的一个重要特点是可扩展性,可以根据不同的应用场景和需求,添加自定义的指令和模块。本实验利用NICE协处理器对蜂鸟E203软核进行扩展,实现对二维数组求和的硬件加速。

蜂鸟E203支持可配置的NICE协处理器接口实现指令扩展,该接口通过四个通道与主处理器交互,分别是请求通道、响应通道、内存请求通道和内存响应通道。实现加速的原理是通过FPGA的硬件逻辑单元来完成特定领域的运算,从而提高性能。

本实验实现了一个用于加速二维数组求和运算的协处理器,在进行相应的求和运算时,自定义的指令会从执行单元通过NICE请求通道发送到协处理器,然后协处理器再根据指令的功能码的操作数进行相应的操作,并通过相应通道返回计算结果。与用软件实现的计算结果的速度进行对比,结果显示协处理器的计算速度约为软件计算的4倍。实验程序由芯来科技提供。

5.4 综合实验

综合实验包括超声波测距、机器人舵机控制、蓝牙通信、手写体识别。通过这些实验,学生可以学习如何利用外设和计算模块组成实用系统。

1)超声波测距。

超声波测距模块是一种利用超声波发射和接收信号来测量距离的传感器。本实验使用的传感器型号为HC-SR04,其工作原理是:①通过IO 口 TRIG给模块发送一个至少10 μs的高电平信号,触发测距;②模块自动发送8个40 kHz的方波,并检测是否有回波信号返回;③如果有回波信号,模块通过IO 口 ECHO输出一个高电平,其持续时间就是超声波从发射到返回的时间;④最后根据高电平时间和声速的关系计算距离。

通过编写驱动程序控制超声波测距模块进行测量,读取测量结果,并通过串口传给计算机实时显示测量距离。

2)机器人舵机控制。

本文使用的舵机为搭建小型机器人的舵机,如图3所示。该系列的机器人舵机采用半双工串行异步总线通信,微处理器中的控制程序可以通过UART串口控制一个或多个舵机工作。

图3  FPGA实验板与控制舵机的连接

3)蓝牙通信。

蓝牙模块是一种能够实现无线数据通信的模块,它使用蓝牙协议建立和维持连接,传输数据和控制信号。

本实验使用基于UART串口的蓝牙模块,该模块内部集成了一个蓝牙芯片和天线,可以支持蓝牙2.0标准传输协议,工作在2.4 GHz的ISM频段。该模块只需要4根信号线TXD、RXD、GND和VCC就能与蜂鸟E203微处理器进行双向通信。

将手机与配备了蓝牙扩展模块的SOPC系统连接,并互相发送数据进行测试。图4为实验结果。图4(a)是手机端蓝牙连接助手界面,可以看出手机成功接收到处理器通过蓝牙模块发送的字符串;图4(b)是Nuclei Studio中的终端输出,处理器成功接收到手机发送的字符串,并通过UART0串口将其打印在电脑屏幕上。

图4  蜂鸟E203通过蓝牙模块收发数据

4)手写体识别。

构建简单的神经网络用于处理机器学习中的MNIST手写数字分类问题。首先设计一个简单的CNN神经网络协处理器,然后用它识别手写数字,识别结果通过串口传到计算机显示。

5.5 创新实验

由学生自由选题,通过团队协作,完成一个具有创意的电子系统设计,例如智能小车、机器人、人工智能算法等。

6  结语

RISC-V是一种新的开放指令集架构。在电子系统设计相关教学中引入基于RISC-V的SOPC电子系统设计教学,既可以让学生学习集成电路初步设计的方法,又可以通过自主设计SOPC系统来培养他们的创新能力。本文选择芯来科技公司开发的RISC-V微处理器,将其移植到FPGA中,并根据其特点设计了四个层次的实验,循序渐进地帮助学生熟悉微处理器和FPGA,进行SOPC系统设计,培养实践能力、创新设计能力和团队协作精神。

参考文献 (References)

[1] PRASHANT G S, AKBARALI M S. Design of embedded web server based on NIOS-II soft core processor[C]//International Conference on Electrical, Electronics, and Optimization Techniques. Chennai, India: IEEE, 2016: 488–492.

[2] DOMINIC R, JOSEPH, IAN H, et al. An introduction to soft core processors and a biomedical application[J]. IEEE Potentials. 2018, 37(2): 13–18.

[3] MARWA F, WAJIH E Y, MACHOUT M. The design of an embedded system (SOPC) for an image processing application[C]//International Conference on Control, Automation and Diagnosis. Hammamet, Tunisia: IEEE, 2017: 511–515.

[4] ERI O, YUKI M, TOMOHIRO M, et al. Reconfigurable IBM PC compatible SoC for computer architecture education and research[C]//IEEE 9th International Symposium on Embedded Multicore/Many-core Systems-on-Chip. Turin, Italy: IEEE, 2015: 65–72.

[5] KOSTADINOV N, BENCHEVA N. An approach for teaching processor design and how to extend its features[C]//29th Annual Conference of the European Association for Education in Electrical and Information Engineering. Ruse, Bulgaria: IEEE, 2019: 1–4.

[6] HARRISS L, OWEN R, SEDANO E, et al. MIPSfpga: Hands-on learning on a commercial soft-core[C]//11th European Workshop on Microelectronics Education (EWME), Southampton, UK:IEEE, 2016: 1–5.

[7] SUPPIAH R, SHAUN N S Q. Introducing microprocessor-based systems design on an ARM softcore using a FPGA and a teaching auxiliary board[C]//IEEE Global Engineering Education Conference. Abu Dhabi, United Arab Emirates: IEEE, 2016: 751–756.

[8] 叶朝辉,华成英,张利伟,等. 基于FPGA的SOPC电子系统设计实验研究[J]. 实验技术与管理,2018, 35(3): 161–164.

YE Z H, HUA C Y, ZHANG L W, et al. Research of experiment for SOPC electronic system design based on FPGA[J]. Experimental Technology and Management, 2018, 35(3): 161–164. (in Chinese)

[9] WATERMAN A, LEE Y, PATTERSON D A. The RISC-V instruction set manual[Z]. Volume I: Base User-Level ISA. Vol.1. California, Berkeley: University of California, Berkeley, 2011.

[10] 冯建文. 基于RISC-V架构的中断实验设计[J]. 实验室研究与探索,2022, 41(12): 34–38.

FENG J W. Interrupt experiment design based on RISC-V architecture[J]. Research and Exploration in Laboratory, 2022, 41(12): 34–38. (in Chinese)

[11] 陈志广,刘皓铧,卢宇彤. 基于RISC-V的计算机组成原理实验教学改革与实践[J]. 计算机教育,2023, 338(2): 128–132.

CHEN Z G, LIU H H, LU Y T. Experimental teaching of computer composition principles based on RISC-V reform and practice[J]. Computer Education. 2023, 338(2): 128–132. (in Chinese)

[12] 齐乐,常轶松,陈欲晓,等. 基于SoC-FPGA的RISC-V处理器软硬件系统级平台[J]. 计算机研究与发展,2023, 60(6): 1204–1215.

QI L, CHANG YI S, CHEN YU X, ZHANG X, et al. A system-level platform with SoC-FPGA for RISC-V hardware-software integration[J]. Journal of Computer Research and Development: 2023, 60(6): 1204–1215. (in Chinese)

[13] 秦国锋,李晨扬,林芃芃,等. 重构计算机系统教学:从MIPS到RISC-V计算机原型系统实验[J]. 实验技术与管理,2022, 39(5): 189–198, 227.

QIN G F, LI C Y, LIN P P, et al. Reconstructing computer architecture teaching: Computer prototype system experiment from MIPS to RISC-V[J]. Experimental Technology and Management. 2022, 39(5): 189–198, 227. (in Chinese)

[14] MCGREW T, SCHONAUER E, JAMIESON P. Framework and tools for undergraduates designing RISC-V processors on an FPGA in computer architecture education[C]//International Conference on Computational Science and Computational Intelligence. Las Vegas, NV, USA: IEEE, 2019: 778–781.

[15] NELSON I, FERREIRA R, NACIFJ A, et al. Is it time to include high-level synthesis design in digital system education for undergraduate computer engineers?[C]//IEEE International Symposium on Circuits and Systems. Daegu, Korea: IEEE, 2021: 1–5.

[16] HARRIS S L. et al. RVfpga: Using a RISC-V Core targeted to an FPGA in computer architecture education[C]//31st International Conference on Field-Programmable Logic and Applications. Dresden, Germany: IEEE, 2021: 145–150.

引文格式:叶朝辉,张仁刚,赵腾浩,等. 基于RISC-V的SOPC电子系统设计实验研究[J]. 实验技术与管理, 2023, 40(11): 71-75.

Cite this article: YE Z H, ZHANG R G, ZHAO T H, et al. Experimental study on design of SOPC electronic system based on RISC-V[J]. Experimental Technology and Management, 2023, 40(11): 71-75. (in Chinese)

《实验技术与管理》2023年11期P71-75

DOI: 10.16791/j.cnki.sjg.2023.11.012

《实验技术与管理》

综合性科学技术期刊

中国高等教育学会实验室管理工作分会会刊

中文核心期刊·中国科技核心期刊

科技期刊世界影响力指数(WJCI)科学技术综合学科Q1区

RCCSE 中国权威学术期刊(A+)

中国高校优秀科技期刊

首届《CAJ-CD 规范》执行优秀期刊

期刊网址·在线投稿

http://syjl.cbpt.cnki.net 

http://syjl.chinajournal.net.cn

联络&订刊

编辑部电话:010-62783005

或 010-62797828

邮箱:sjg@tsinghua.edu.cn  

订刊发行电话:010-62792635

邮箱:syjsygl@tsinghua.edu.cn

下载全文请点击阅读原


注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言