CN112099853B - 基于fpga实现的risc-v处理器、fpga芯片及片上系统 - Google Patents
基于fpga实现的risc-v处理器、fpga芯片及片上系统 Download PDFInfo
- Publication number
- CN112099853B CN112099853B CN202010980638.1A CN202010980638A CN112099853B CN 112099853 B CN112099853 B CN 112099853B CN 202010980638 A CN202010980638 A CN 202010980638A CN 112099853 B CN112099853 B CN 112099853B
- Authority
- CN
- China
- Prior art keywords
- interface
- risc
- module
- processor
- instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
Abstract
本发明提供了一种基于FPGA实现的RISC‑V处理器、FPGA芯片及片上系统,所述RISC‑V处理器包括配置在同一FPGA芯片内的RISC‑V处理器核以及至少一个扩展模块,所述RISC‑V处理器核包括至少一个通用寄存器组和至少一个接口模块,所述接口模块与所述扩展模块一一对应设置并相互连接,所述接口模块包括指令接口、操作数接口、数据返回接口、操作请求接口、写回请求接口、等待请求接口和运算完成接口。本发明为RISC‑V处理器核和扩展模块之间的接口制定了统一化的标准接口,降低了RISC‑V处理器核和扩展模块之间的耦合性,且结合了RISC‑V指令集模块化的特点和FPGA可编程、易扩展的特点,实现了RISC‑V处理器的模块化开发和模块化配置,降低了RISC‑V处理器设计复杂度,提高了RISC‑V处理器开发效率。
Description
技术领域
本发明涉及处理器设计技术领域,特别涉及一种基于FPGA实现的RISC-V处理器、FPGA芯片及片上系统。
背景技术
微处理器可分为RISC(Reduced Instruction Set Computer,精简指令集计算机)和CISC(Complex Instruction Set Computer,复杂指令集计算机)两大主流。其中,RISC-V(Reduced Intruction Set Computer V)是一种基于精简指令集原则的开源指令集架构,V表示为第五代RISC(精简指令集计算机),RISC-V架构不仅短小精悍,而且其不同的部分还能以模块化的方式组织在一起,以满足各种不同的应用场景的需要。
因为RISC-V架构具有架构简单、模块化设计、易于移植、完全开源等特点,因此,任何人、任何组织都可自由使用RISC-V指令集,用于RISC-V架构的微处理器内核设计和软件开发。
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL(可编程化阵列逻辑)、GAL(通用阵列逻辑)、CPLD(复杂可编程逻辑器件)等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。随着FPGA技术的飞速发展,基于FPGA实现的处理器应用愈发广泛,与传统处理器相比,基于FPGA实现的处理器具有良好的可扩展性,设计人员可根据不同应用场景,自由扩展处理器功能,有利于快速设计和重用。但是在RISC-V出现之前,FPGA软核生态主要由各家FPGA厂商进行维护,底层代码不开源,互相之间隔离,导致用户设计无法跨平台,并存在处理器设计复杂度高,开发效率低的问题。
因此,需要一种的的方法,其能够基于RISC-V架构和FPGA架构来实现的处理器设计,以降低处理器设计复杂度,提高开发效率。
发明内容
本发明的目的在于提供一种基于FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现的RISC-V处理器、FPGA芯片及电子设备,能够降低处理器设计复杂度,提高开发效率。
为解决上述技术问题,本发明提供一种基于FPGA实现的RISC-V处理器,包括配置在同一FPGA芯片内的RISC-V处理器核和至少一个扩展模块,所述RISC-V处理器核包括至少一个通用寄存器组和至少一个接口模块,所述接口模块与所述扩展模块一一对应设置并相互连接,所述接口模块包括:
指令接口,用于通知所述扩展模块要执行的指令;
操作数接口,用于向所述扩展模块传递要执行指令的操作数;
操作请求接口,用于向所述扩展模块发出操作请求;
数据返回接口,用于读取所述扩展模块的运算结果,并根据需要将所述运算结果写入到所述通用寄存器组相应的寄存器中;
写回请求接口,用于接收和响应所述扩展模块返回的写回请求;
等待请求接口,用于接收和响应所述扩展模块返回的等待请求;
运算完成接口,用于接收和响应所述扩展模块返回的当前指令执行完毕信号。
可选地,所述操作数接口包括第一操作数接口和第二操作数接口,用于分别根据所述扩展模块要执行的指令,从所述通用寄存器组中取出相应寄存器的数值,作为第一操作数和第二操作数,以分别向所述扩展模块传递。
可选地,所述操作请求接口、所述写回请求接口、所述等待请求接口以及所述运算完成接口,均根据需要切换接口信号电平为有效电平或无效电平。
可选地,所述RISC-V处理器为整型指令集RISC-V处理器。
可选地,所述扩展模块包括乘法指令模块、除法指令模块、原子指令模块、浮点指令模块和矢量指令模块中的至少一种。
可选地,所多个所述扩展模块共用同一个所述通用寄存器组,或者,所述扩展模块和所述通用寄存器组一一对应设置。
可选地,所述RISC-V处理器核还包括指令解码器,所述指令解码器用于对相应的指令集进行解码,以获得指令类型、源寄存器的编号以及目的寄存器的编号,当解码出的指令为需要由扩展模块执行的类型时,控制所述指令接口将所述指令传递到所述扩展模块,并控制所述第一操作数接口和第二操作数接口向所述扩展模块传递要执行指令的操作数,以及,控制所述操作请求接口向所述扩展模块发出操作请求。
可选地,在所述写回请求接口接收和响应所述扩展模块返回的写回请求后,所述数据返回接口将所述运算结果,写入到所述通用寄存器组中与所述目的寄存器的编号对应的寄存器中。
基于同一发明构思,本发明还提供一种FPGA芯片,包括:如本发明所述RISC-V处理器。
基于同一发明构思,本发明还提供一种片上系统,包括本发明所述的FPGA芯片。
与现有技术相比,本发明的技术方案具有以下技术效果之一:
1、使用FPGA逻辑资源实现了RISC-V处理器核及扩展模块,并为RISC-V处理器核和扩展模块之间的接口制定了统一化的标准接口,该RISC-V处理器核的接口模块降低了RISC-V处理器核和扩展模块之间的耦合性,简化了RISC-V处理器的扩展方法,降低了RISC-V处理器设计复杂度,提高了RISC-V处理器开发效率。
2、结合了RISC-V指令集模块化的特点和FPGA可编程、易扩展的特点,实现了RISC-V处理器的模块化开发和模块化配置,当需要为RISC-V处理器增加新的功能时,可单独开发扩展模块,而不需对RISC-V处理器进行大范围的修改,当需要取消某个扩展功能时,只需简单地撤下负责该扩展功能的扩展模块,不需要大范围的修改RISC-V处理器,由此进一步提高了处理器开发效率。
3、基于FPGA实现的RISC-V处理器具有良好的可扩展性,设计人员可根据不同应用场景,自由扩展处理器功能,有利于RISC-V处理器的快速设计和重用。
附图说明
图1是本发明一实施例的基于FPGA实现的RISC-V处理器及其所在的FPGA芯片的结构示意图。
图2是本发明一实施例的RISC-V处理器中的RISC-V处理器核向扩展模块2发出操作请求的流程图。
图3是本发明一实施例的RISC-V处理器中的扩展模块对RISC-V处理器核的操作请求响应的流程图。
图4是本发明一实施例的RISC-V处理器的信号转换流程图。
图5是本发明又一实施例的RISC-V处理器及其所在的FPGA芯片的结构示意图。
图6是本发明再一实施例的RISC-V处理器及其所在的FPGA芯片的结构示意图。
图7是本发明另一实施例的RISC-V处理器及其所在的FPGA芯片的结构示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的技术方案作进一步详细说明。根据下面说明,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
请参考图1,本发明提供一种基于FPGA实现的RISC-V处理器3,该RISC-V处理器3是一种基于RISC-V架构和FPGA架构实现的微处理器,还可以称为基于RISC-V架构的微处理器或者基于FPGA架构的微处理器,其具体包括配置在同一FPGA芯片内的RISC-V处理器核1和至少一个扩展模块2。FPGA芯片内部的逻辑资源主要包括逻辑控制区块(LogicalControlBlock,LCB)资源、时钟网络资源、时钟处理资源、块随机存储器(Block RAM)、数字信号处理资源(DSP核)和接口资源。逻辑控制区块资源包括显示查找表、加法器、乘法器、除法器、寄存器、多路选择器等等。
所述RISC-V处理器核1包括基于FPGA芯片内部的寄存器资源实现的至少一个通用寄存器组11,以及基于FPGA芯片内部的接口资源实现的至少一个接口模块10,所述接口模块10与扩展模块2一一对应设置并相互连接,所述接口模块10包括指令接口101、第一操作数接口102、第二操作数接口103、数据返回接口104、操作请求接口105、写回请求接口106、等待请求接口107和运算完成接口108。
本实施例的RISC-V处理器核1可以是32位整型指令集模块(RV32I),扩展模块2可以FPGA芯片内部的逻辑控制区块资源、数字信号处理资源等实现,其可与具体包括乘法指令模块、除法指令模块、32位乘法/除法指令模块(RV32M)、RISC-V 32位原子指令模块(RV32A)、RISC-V 32位浮点指令模块(RV32FD)和RISC-V 32位矢量指令模块(RV32V)等中的至少一种。通用寄存器组11由32个32位寄存器组成,其中的各个寄存器的编号为0~31。
本实施例的基于FPGA实现的RISC-V处理器3在使用时,既可以只使用基础的RISC-V处理器核1实现基本功能,也可根据实际需要,添加包括乘法指令模块、除法指令模块、32位乘法/除法指令模块(RV32M)、RISC-V 32位原子指令模块(RV32A)、RISC-V 32位浮点指令模块(RV32FD)和RISC-V 32位矢量指令模块(RV32V)等中的至少一种可选的扩展模块2,以提高最终设计出的RISC-V处理器内核的运行速度,获得更高性能。
指令接口101通过向所述扩展模块2传输指令信号INSN的形式,向所述扩展模块2通知要执行的指令。
第一操作数接口102通过向所述扩展模块2传输第一操作数信号RS1的形式,向所述扩展模块2传递要执行指令的第一操作数,第二操作数接口103通过向所述扩展模块2传输第二操作数信号RS2的形式,向所述扩展模块2传递要执行指令的第二操作数,其中,第一操作数接口102和第二操作数接口103分别根据所述扩展模块2要执行的指令,从所述通用寄存器组11中取出相应寄存器的数值,作为第一操作数和第二操作数。
数据返回接口104用于读取所述扩展模块2的运算结果RD,并根据需要将所述运算结果RD写入到所述通用寄存器组11相应的寄存器中。
操作请求接口105通过切换接口的电平为有效电平或无效电平的方式,向扩展模块2发送操作请求VALID。本实施例中,当操作请求接口105被置为有效电平时,操作请求VALID有效,此时,扩展模块2在接收到操作请求VALID后,会读取INSN、RS1和RS2信号。
写回请求接口106通过切换接口的电平为有效电平或无效电平的方式,接收和响应所述扩展模块2返回的写回请求WR。
等待请求接口107通过切换接口的电平为有效电平或无效电平的方式,接收和响应所述扩展模块2返回的等待请求WAIT。
运算完成接口108通过切换接口的电平为有效电平或无效电平的方式,接收和响应所述扩展模块2返回的当前指令执行完毕信号READY,使得RISC-V处理器核1能够向扩展模块2下发新的指令。
请结合图1和图2,本实施例的RISC-V处理器核1向扩展模块2发出操作请求的流程如下:
首先,RISC-V处理器核1接收和读取指令,并对读取的指令进行解码,以获得指令类型、所述指令中的源寄存器的编号以及目的寄存器编号。其中,指令类型包括是否是需要扩展模块2执行的指令、需要扩展模块2执行时具体是何种操作类型,所述操作类型例如Register(寄存器读、写等)、Upper(设置所操作的寄存器上限)、Jump(跳过)等;
接着,根据解码结果判断该指令是否需要扩展模块2执行,若是,则RISC-V处理器核1通过其接口模块10中的指令接口101将包含该指令的INSN信号传递给扩展模块2,同时根据解码结果中的源寄存器编号,从通用寄存器组11中取出对应寄存器的数值,作为第一操作数和第二操作数,并产生相应的第一操作数信号RS1和第二操作数信号RS2,通过其接口模块10中的第一操作数接口102和第二操作数接口103传递给扩展模块2,并将其接口模块10中的操作请求接口105的电平置为有效电平,从而向扩展模块2发送有效的操作请求信号VALID,请求扩展模块执行该指令的运算操作。
请结合图1和图3,本实施例的扩展模块2对RISC-V处理器核1的操作请求的响应流程如下:
首先,扩展模块2接收到RISC-V处理器核1的操作请求信号VALID,通过等待请求接口向RISC-V处理器发送等待请求信号WAIT,并对进行指令解码;
接着,根据解码结果,对RISC-V处理器核1发送的第一操作数信号RS1和第二操作数信号RS2进行相应的运算操作。
然后,在运算完成后,判断操作结果是否需要保存,若是,则将运算结果保存到RISC-V处理器核1中接口模块10的数据返回接口104,并向RISC-V处理器核1发送写回请求信号WR和运算完成信号READY,取消等待请求信号WAIT;若操作结果不需保存,则向RISC-V处理器核1发送运算完成信号READY并取消等待请求信号WAIT。
请结合图1和图4,本实施例的RISC-V处理器核1与扩展模块2之间的信号传递过程如下:
首先,RISC-V处理器核1接收和读取指令,并对读取的指令进行解码,以获得指令类型、所述指令中的源寄存器的编号以及目的寄存器编号。其中,指令类型包括是否是需要扩展模块2执行的指令、需要扩展模块2执行时具体是何种操作类型,所述操作类型例如Register(寄存器读、写等)、Upper(设置所操作的寄存器上限)、Jump(跳过)等。
接着,RISC-V处理器核1根据解码结果判断该指令是否需要扩展模块2执行,若是,RISC-V处理器核1的指令接口101将包含该指令的INSN信号传递给扩展模块2,且第一操作数接口102和第二操作数接口,分别根据所述指令,从通用寄存器组11中取出对应寄存器的数值,作为第一操作数和第二操作数,并产生相应的第一操作数信号RS1和第二操作数信号RS2传递给扩展模块2,同时将操作请求接口105的接口电平置为有效电平,以向扩展模块2发送有效的操作请求VALID。
然后,扩展模块2在接收到有效的操作请求VALID后,发送等待请求WAIT信号至RISC-V处理器核1接口模块10的等待请求接口106,等待请求接口106接收到该等待请求WAIT信号后,将其接口电平置为有效电平,以通知RISC-V处理器核1进入等待状态,扩展模块2进一步读取INSN信号、RS1信号、RS2信号。
接着,扩展模块2对接收到的指令(即INSN信号)进行解码,从中获取指令的具体运算操作类型和对运算结果的操作类型(包括是否需要将运算结果回传保存),并进一步根据解码结果对接收的第一操作数和第二操作数进行相应的运算操作。运算操作完成后,若不需要将运算结果回传保存,则扩展模块2将WAIT信号置为无效电平,以取消等待请求信号WAIT,将READY信号置为有效电平,以通知RISC-V处理器核1运算已完成,此时,等待请求接口106切换接口电平为无效电平,RISC-V处理器核1开始执行下一条指令,运算完成接口108切换接口电平为有效电平。若所述指令规定需要将运算结果回传保存时,扩展模块2将WAIT信号置为有效电平,将READY信号置为有效电平,将WR信号置为有效电平,以在通知RISC-V处理器核1运算已完成的同时,向RISC-V处理器核1发起写回请求WR,写回请求接口106切换自身的电平为有效电平,以接收和响应所述写回请求WR,同时使扩展模块2能将运算结果回传到数据返回接口104,数据返回接口104根据上述的目的寄存器的编号,将运算结果写回通用寄存器组11中与目的寄存器编号相对应的位置,在该过程中,等待请求接口106的电平为有效电平,运算完成接口108的电平为有效电平,写回请求接口106的电平为有效电平,在数据返回接口104将运算结果写入寄存器后,RISC-V处理器核1读取并执行下一条指令。
需要说明的是,图1中仅仅显示了一个通用寄存器组和一个接口模块,但是本发明的技术方案并不仅仅限定于此,在本发明的其他实施例中,如图5所示,RISC-V处理器核1可以包括一个通用寄存器组11和多个接口模块10,每个接口模块10一一对应地连接一个扩展模块2,且共用同一个所述通用寄存器组11;或者,如图6所示,RISC-V处理器核1可以包括多个通用寄存器组11和多个接口模块10,通用寄存器组11、接口模块10和扩展模块2均一一对应设置且依次连接。
此外,应当理解的是,本发明的RISC-V处理器核的内部组成并不仅仅限定于通用寄存器组和接口模块,其还可以设有现有的RISC-V处理器核中的已有模块。
具体地,作为一种示例,请参考图7,在本发明的其他实施例中,所述RISC-V处理器核1除包括通用寄存器组11和接口模块10之外,还包括指令解码器12,该指令解码器12也是基于FPGA逻辑资源实现的,其与通用寄存器组11、接口模块10和扩展模块2配置在同一FPGA芯片中。所述指令解码器12用于对RISC-V处理器核1中相应的指令集进行解码,以获得指令类型、源寄存器(包括第一源寄存器和第二源寄存器)的编号以及Register(寄存器存储)、Jump(跳转)等操作类型的指令中的目的寄存器的编号,当解码出的指令为需要由扩展模块2执行的类型时,控制所述指令接口101将所述指令传递到所述扩展模块2,并控制所述第一操作数接口102和第二操作数接口103向所述扩展模块2传递要执行指令的操作数,以及,控制所述操作请求接口105向所述扩展模块2发出操作请求。其中,所述第一操作数接口102根据第一源寄存器的编号,从所述通用寄存器组11中与所述第一源寄存器的编号对应的寄存器中提取相应的值作为第一操作数,所述第二操作数接口103根据第二源寄存器的编号,从所述通用寄存器组11中与所述第二源寄存器的编号对应的寄存器中提取相应的值作为第二操作数。
进一步地,在所述写回请求接口106接收和响应所述扩展模块2返回的写回请求WR后,所述数据返回接口104将扩展模块2的运算结果,写入到所述通用寄存器组11中与所述目的寄存器的编号对应的寄存器中。
基于同一发明构思,请参考图1至图7,本发明一实施例还提供一种FPGA芯片,包括如本发明所述RISC-V处理器3。所述RISC-V处理器包括RISC-V处理器核1以及至少一个扩展模块2,所述扩展模块2一一对应地连接到所述RISC-V处理器核1的接口模块10上。
基于同一发明构思,本发明一实施例还提供一种片上系统,包括本发明所述的FPGA芯片。
综上所述,本发明的基于FPGA实现的RISC-V处理器、FPGA芯片及片上系统,使用FPGA逻辑资源实现了RISC-V处理器核及扩展模块,并为RISC-V处理器核和扩展模块之间的接口制定了统一化的标准接口,该RISC-V处理器核的接口模块降低了RISC-V处理器核和扩展模块之间的耦合性,简化了RISC-V处理器的扩展方法,且结合了RISC-V指令集模块化的特点和FPGA可编程、易扩展的特点,实现了RISC-V处理器的模块化开发和模块化配置,当需要为RISC-V处理器增加新的功能时,可单独开发扩展模块,而不需对RISC-V处理器进行大范围的修改,当需要取消某个扩展功能时,只需简单地撤下该负责该扩展功能的扩展模块,不需要大范围的修改RISC-V处理器,由此降低了处理器设计复杂度,提高了处理器开发效率。本发明的基于FPGA实现的RISC-V处理器具有良好的可扩展性,设计人员可根据不同应用场景,自由扩展处理器功能,有利于处理器的快速设计和重用。
此外,需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”等描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
而且还应该理解的是,本发明并不限于此处描述的特定的方法、材料、制造技术、用法和应用,它们可以变化。还应该理解的是,此处描述的术语仅仅用来描述特定实施例,而不是用来限制本发明的范围。必须注意的是,此处的以及所附权利要求中使用的单数形式“一个”、“一种”以及“该”包括复数基准,除非上下文明确表示相反意思。因此,例如,对“一个步骤”或“一个装置”的引述意味着对一个或多个步骤或装置的引述,并且可能包括次级步骤以及次级装置。应该以最广义的含义来理解使用的所有连词。因此,词语“或”应该被理解为具有逻辑“或”的定义,而不是逻辑“异或”的定义,除非上下文明确表示相反意思。此处描述的结构将被理解为还引述该结构的功能等效物。可被解释为近似的语言应该被那样理解,除非上下文明确表示相反意思。
Claims (9)
1.一种基于FPGA实现的RISC-V处理器,其特征在于,包括配置在同一FPGA芯片内的RISC-V处理器核和多个扩展模块,所述RISC-V处理器核包括至少一个通用寄存器组和至少一个接口模块,所述接口模块用于以一一对应设置的方式连接相应的所述扩展模块;各个所述扩展模块通过模块化开发和模块化配置的方式实现,并用于负责扩展所述RISC-V处理器的扩展功能;
所述RISC-V处理器的功能在不同应用场景下能自由变化,其中,在所述RISC-V处理器需要增加新的扩展功能时,负责所述新的扩展功能的所述扩展模块连接到对应的所述接口模块上,在所述RISC-V处理器需要取消某个扩展功能时,负责所述某个扩展功能的所述扩展模块从相应的所述接口模块上撤下;
各个所述接口模块均为相同的统一化的标准接口模块,对于不同功能的所述扩展模块是通用的,并且各个所述接口模块均包括:
指令接口,用于通知所连接的所述扩展模块要执行的指令;
操作数接口,用于向所连接的所述扩展模块传递要执行指令的操作数,且所述操作数接口包括第一操作数接口和第二操作数接口,用于分别根据所述扩展模块要执行的指令,从所述通用寄存器组中取出相应寄存器的数值,作为第一操作数和第二操作数,以分别向所述扩展模块传递;
操作请求接口,用于向所连接的所述扩展模块发出操作请求;
数据返回接口,用于读取所连接的所述扩展模块的运算结果,并根据需要将所述运算结果写入到所述通用寄存器组相应的寄存器中;
写回请求接口,用于接收和响应所连接的所述扩展模块返回的写回请求;
等待请求接口,用于接收和响应所连接的所述扩展模块返回的等待请求;
运算完成接口,用于接收和响应所连接的所述扩展模块返回的当前指令执行完毕信号。
2.如权利要求1所述的RISC-V处理器,其特征在于,所述操作请求接口、所述写回请求接口、所述等待请求接口以及所述运算完成接口,均根据需要切换接口信号电平为有效电平或无效电平。
3.如权利要求1所述的RISC-V处理器,其特征在于,所述RISC-V处理器核为整型指令集模块。
4.如权利要求1所述的RISC-V处理器,其特征在于,所述扩展模块包括乘法指令模块、除法指令模块、原子指令模块、浮点指令模块和矢量指令模块中的至少一种。
5.如权利要求1所述的RISC-V处理器,其特征在于,多个所述扩展模块共用同一个所述通用寄存器组,或者,所述扩展模块和所述通用寄存器组一一对应设置。
6.如权利要求1所述的RISC-V处理器,其特征在于,所述RISC-V处理器核还包括指令解码器,所述指令解码器用于对相应的指令集进行解码,以获得指令类型、源寄存器的编号以及目的寄存器的编号,当解码出的指令为需要由所述扩展模块执行的类型时,控制所述指令接口将所述指令传递到所述扩展模块,并控制所述第一操作数接口和第二操作数接口向所述扩展模块传递要执行指令的操作数,以及,控制所述操作请求接口向所述扩展模块发出操作请求。
7.如权利要求6所述的RISC-V处理器,其特征在于,在所述写回请求接口接收和响应所述扩展模块返回的写回请求后,所述数据返回接口将所述运算结果,写入到所述通用寄存器组中与所述目的寄存器的编号对应的寄存器中。
8.一种FPGA芯片,其特征在于,包括:如权利要求1~7中任一项所述RISC-V处理器。
9.一种片上系统,其特征在于,包括权利要求8所述的FPGA芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010980638.1A CN112099853B (zh) | 2020-09-17 | 2020-09-17 | 基于fpga实现的risc-v处理器、fpga芯片及片上系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010980638.1A CN112099853B (zh) | 2020-09-17 | 2020-09-17 | 基于fpga实现的risc-v处理器、fpga芯片及片上系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112099853A CN112099853A (zh) | 2020-12-18 |
CN112099853B true CN112099853B (zh) | 2021-10-29 |
Family
ID=73759643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010980638.1A Active CN112099853B (zh) | 2020-09-17 | 2020-09-17 | 基于fpga实现的risc-v处理器、fpga芯片及片上系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112099853B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116149554B (zh) * | 2023-02-08 | 2023-11-24 | 珠海妙存科技有限公司 | 一种基于risc-v及其扩展指令的数据存储处理系统及其方法 |
CN115993952B (zh) * | 2023-03-23 | 2023-05-30 | 中大智能科技股份有限公司 | 基于risc-v的桥梁支座监测芯片及设计系统、方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109672892A (zh) * | 2018-12-25 | 2019-04-23 | 广东浪潮大数据研究有限公司 | 一种图像压缩装置、方法和fpga板卡 |
CN109684152A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种risc-v处理器指令下载方法及其装置 |
CN110083567A (zh) * | 2019-04-25 | 2019-08-02 | 京微齐力(北京)科技有限公司 | 一种芯片架构 |
CN110427337A (zh) * | 2019-09-29 | 2019-11-08 | 广东高云半导体科技股份有限公司 | 基于现场可编程门阵列的处理器内核及其运行方法 |
CN110516809A (zh) * | 2019-08-22 | 2019-11-29 | 山东浪潮人工智能研究院有限公司 | 一种基于fpga+risc-v的隐私放大算法的实现装置 |
WO2020138663A1 (ko) * | 2018-12-26 | 2020-07-02 | (주)자람테크놀로지 | 사용자 정의 명령어 셋을 지원하는 하드웨어 고속 연산 결합형 risc-v 기반 연산 장치 및 그 방법 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102407128B1 (ko) * | 2018-01-29 | 2022-06-10 | 마이크론 테크놀로지, 인크. | 메모리 컨트롤러 |
US10284291B1 (en) * | 2018-04-25 | 2019-05-07 | Western Digital Technologies, Inc. | Node configuration in optical network |
-
2020
- 2020-09-17 CN CN202010980638.1A patent/CN112099853B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109672892A (zh) * | 2018-12-25 | 2019-04-23 | 广东浪潮大数据研究有限公司 | 一种图像压缩装置、方法和fpga板卡 |
CN109684152A (zh) * | 2018-12-25 | 2019-04-26 | 广东浪潮大数据研究有限公司 | 一种risc-v处理器指令下载方法及其装置 |
WO2020138663A1 (ko) * | 2018-12-26 | 2020-07-02 | (주)자람테크놀로지 | 사용자 정의 명령어 셋을 지원하는 하드웨어 고속 연산 결합형 risc-v 기반 연산 장치 및 그 방법 |
CN110083567A (zh) * | 2019-04-25 | 2019-08-02 | 京微齐力(北京)科技有限公司 | 一种芯片架构 |
CN110516809A (zh) * | 2019-08-22 | 2019-11-29 | 山东浪潮人工智能研究院有限公司 | 一种基于fpga+risc-v的隐私放大算法的实现装置 |
CN110427337A (zh) * | 2019-09-29 | 2019-11-08 | 广东高云半导体科技股份有限公司 | 基于现场可编程门阵列的处理器内核及其运行方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112099853A (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284815B (zh) | 神经网络模型算法编译方法、装置及相关产品 | |
JP2644780B2 (ja) | 処理依頼機能を持つ並列計算機 | |
CN1307536C (zh) | 将一个处理器与一个协处理器相接口的方法和装置 | |
CN112099853B (zh) | 基于fpga实现的risc-v处理器、fpga芯片及片上系统 | |
CN109543825B (zh) | 神经网络模型算法编译方法、装置及相关产品 | |
JPH06149545A (ja) | Cpuと乗算器とを有する半導体集積回路 | |
JPS5832416B2 (ja) | 計算機インタフエ−ス | |
JPS6151243A (ja) | レジスタ式演算処理装置 | |
JP2009238252A (ja) | データドリブン型アーキテクチャメッシュアレイ中のメモリアクセスデバイス制御 | |
CN103793208B (zh) | 矢量dsp处理器和协处理器协同运作的数据处理系统 | |
CN201583943U (zh) | 音频soc芯片的高效低功耗dma的ip结构 | |
US7165166B2 (en) | Data processing system, data processing apparatus and control method for a data processing apparatus | |
US8082429B2 (en) | Information processing apparatus and exception control circuit | |
JP5370352B2 (ja) | Simd型プロセッサアレイシステム及びそのデータ転送方法 | |
US7124311B2 (en) | Method for controlling processor in active/standby mode by third decoder based on instructions sent to a first decoder and the third decoder | |
TW448361B (en) | Data switching system and method using bandwidth management unit to reduce data traffic | |
EP0992895A1 (en) | Hardware accelerator for data processing systems | |
JP2002049579A (ja) | プロセッサ・ローカル・バスを管理する装置、方法およびコンピュータ・プログラム・プロダクト | |
CN113407239B (zh) | 一种基于异步单轨的流水线处理器 | |
Xu et al. | Design and implementation of mechatrolink-iii bus slave station based on sopc | |
US9442788B2 (en) | Bus protocol checker, system on chip including the same, bus protocol checking method | |
JP2019016168A (ja) | シミュレーションプログラム、方法、及び装置 | |
CN117908959A (zh) | 用于执行原子操作的方法及其相关产品 | |
CN116166468A (zh) | 用于处理异构系统中ecc错误的方法、异构系统及其相关产品 | |
CN117667212A (zh) | 指令控制装置、方法、处理器、芯片和板卡 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |