CN111177067A - 一种片上系统 - Google Patents
一种片上系统 Download PDFInfo
- Publication number
- CN111177067A CN111177067A CN201911282831.1A CN201911282831A CN111177067A CN 111177067 A CN111177067 A CN 111177067A CN 201911282831 A CN201911282831 A CN 201911282831A CN 111177067 A CN111177067 A CN 111177067A
- Authority
- CN
- China
- Prior art keywords
- circuit
- instruction
- selector
- read
- register
- 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.)
- Granted
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供一种片上系统,包括现场可编程门阵列;其中,所述现场可编程门阵列包括微控制单元内核电路、系统总线、中断控制电路、指令存储器和数据存储器和外部设备,其中所述系统总线、所述中断控制电路、所述指令存储器和所述数据存储器分别与所述微控制单元内核电路连接,所述系统总线还与所述中断控制电路和外部设备连接;其中,所述微控制单元内核电路基于RISC‑V指令集架构,用于自所述指令存储器中读取指令并译码,根据译码结果处理所述指令及相应的数据,以及用于通过所述中断控制电路实时管理、响应并处理中断。本发明的片上系统提高了整体系统的扩展性、移植性和易用性,降低了设计人员的设计难度。
Description
技术领域
本发明的所公开实施例涉及电路技术领域,且更具体而言,涉及一种片上系统。
背景技术
随着FPGA技术飞速发展,MCU与FPGA的SoC架构的应用越来越广泛。MCU与FPGA SoC架构是指FPGA将MCU、存储器、外部设备等与FPGA内核连接起来,构成一个MCU控制器加FPGA内核的SoC架构。与传统MCU单片机比较,该架构具有良好的扩展性,设计人员可以根据不同应用场景自由扩展MCU外部设备,有利于系统的快速设计与重用。
然而,目前MCU与FPGA的片上架构不能实现模块化设计,移植性差,增加了设计人员的设计难度。
发明内容
根据本发明的实施例,本发明提出一种片上系统,以解决上述问题。
根据本发明的第一方面,公开一种实例性的一种片上系统。该片上系统包括现场可编程门阵列;其中,所述现场可编程门阵列包括微控制单元内核电路、系统总线、中断控制电路、指令存储器和数据存储器和外部设备,其中所述系统总线、所述中断控制电路、所述指令存储器和所述数据存储器分别与所述微控制单元内核电路连接,所述系统总线还与所述中断控制电路和外部设备连接;其中,所述微控制单元内核电路基于RISC-V指令集架构,用于自所述指令存储器中读取指令并译码,根据译码结果处理所述指令及相应的数据,以及用于通过所述中断控制电路实时管理、响应并处理中断。
本发明的有益效果有:通过现场可编程门阵列实现该片上系统,并且通过现场可编程门阵列实现基于RISC-V指令集架构的微控制单元内核电路,具有架构简单、模块化设计、易于移植、FPGA可编程、易扩展的特点,提高了整体系统的扩展性、移植性和易用性,降低了设计人员的设计难度。
附图说明
图1是本发明第一实施例的片上系统的结构示意图。
图2-图9是本发明第二实施例至第九实施例的片上系统的部分结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,为本发明第一实施例的片上系统100的结构示意图。该片上系统100包括现场可编程门阵列(Field Programmable Gate Array,FPGA)10。其中,现场可编程门阵列包括微控制单元(Microcontroller Unit,MCU)内核电路11、系统总线12、中断控制电路13、指令存储器14和数据存储器15,其中系统总线12、中断控制电路13、指令存储器14和数据存储器15分别与微控制单元内核电路11连接,系统总线12还与中断控制电路13和外部设备16连接。
该微控制单元内核电路11是基于RISC-V指令集架构的微控制单元内核电路11。RISC-V是一种基于精简指令集原则的开源指令集架构,具有架构简单、模块化设计、易于移植等特点。RISC-V指令集完全开源,任何人、任何组织可以自由使用RISC-V指令集,用于RISC-V架构的MCU内核设计和软件开发。
系统总线12包括AHB(Advanced High Performance Bus)总线和/或APB(AdvancedPeripheral Bus)总线。在系统总线12包括APB总线的示例中,中断控制电路13通过APB总线连接微控制单元内核电路11。
指令存储器14和数据存储器15共享FPGA内核的块状静态存储器。在一些实施例中,指令存储器14和数据存储器15包括4*N阵列的块状静态存储器。在一些示例中,块状静态存储器的大小为16K位。指令存储器14是微控制单元内核电路11的运行存储器,包含微控制单元内核的指令,例如,算术运算指令和逻辑运算指令、读写指令、分支跳转指令等。数据存储器15包含微控制单元内核电路11的数据,提供堆栈地址空间,保存变量、指令跳转地址等数据。
外部设备16是针对微控制单元内核电路11而言,其可以是可以连接片外设备的不同的功能电路,例如GPIO功能电路等。
该微控制单元内核电路11用于自指令存储器14中读取指令并译码,根据译码结果处理指令及相应的数据,以及用于通过中断控制电路13实时管理、响应并处理中断。
在本实施例中,通过现场可编程门阵列实现该片上系统100,并且通过现场可编程门阵列实现基于RISC-V指令集架构的微控制单元内核电路,具有架构简单、模块化设计、易于移植、FPGA可编程、易扩展的特点,提高了整体系统的扩展性、移植性和易用性,降低了设计人员的设计难度。
在一些实施例中,该片上系统100还可以包括片上调试电路17,与微控制单元内核电路11和中断控制电路13连接,并与AHB总线连接,以调试与AHB总线连接的高速外设。
如图2所示,为本发明第二实施例至第九实施例的片上系统100的部分结构示意图。基于上述实施例,微控制单元内核电路11包括通用寄存器组111、状态控制寄存器组112、取指令电路113、分支预测电路114、指令译码器115、执行电路116和读写电路117,其中,取指令电路113与指令存储器14连接;分支预测电路114与通用寄存器组111和取指令电路113连接;指令译码器115与取指令电路113连接;执行电路116与指令译码器115和通用寄存器连接;读写电路117,与执行电路116、状态寄存器组和数据存储器15连接。
通用寄存器组111用于缓存数据和地址信息,包括32个32位通用寄存器,每个通用寄存器分别具有一个编号,32个通用寄存器的编号分别为0到31。状态控制寄存器组112用于缓存和控制整个片上系统100的运行状态。
取指令电路113自指令存储器14中获取待执行指令,分支预测电路114对通过取指令电路113获取的待执行指令进行分支预测,以输出分支控制信息,其中,分支预测电路114所输出的分支控制信息包括分支使能信号和分支偏移量,取指令电路113根据分支控制信息完成指令跳转;
指令译码器115对待执行指令进行译码,以生成目的寄存器编号、源1寄存器编号、源2寄存器编号和指令类型表;
执行电路116根据源1寄存器编号和源2寄存器编号,自通用寄存器组111中读取相应的第一数值和第二数值,以及将根据指令类型表对第一数值、第二数值以及对待执行指令进行译码而得到的立即数进行算术运算或逻辑运算,得到运算结果,根据目的寄存器编号将运算结果保存到通用寄存器组111中相应的寄存器中。
读写电路117根据指令类型表,将第一数值作为读操作的地址信息,以执行读操作,或者将第一数值作为写操作的地址信息,并将第二数值作为写操作的数据信息,以执行写操作。
在一些实施例中,指令类型表包括算术运算指令、逻辑运算指令、读写指令和分支跳转指令。读指令或写指令所对应的是对某个存储器进行读操作或写操作,分支跳转指令用于表示微控制单元内核电路11的当前程序是否跳转。
当待执行指令为算术运算指令或逻辑运算指令时,取指令电路113自指令存储器14获取该算术运算指令或逻辑运算指令并保存,指令译码器115对该算术运算指令或逻辑运算指令进行译码,生成相应的目的寄存器编号、源1寄存器编号和源2寄存器编号,执行电路116根据源1寄存器编号和源2寄存器编号,自通用寄存器组111中读取相应的第一数值和第二数值,并将根据指令类型表对第一数值、第二数值以及对待执行指令进行译码而得到的立即数进行算术运算或逻辑运算,得到运算结果,根据目的寄存器编号将运算结果保存到通用寄存器组111中相应的寄存器中。
当待执行指令为读指令时,取指令电路113自指令存储器14获取该读指令并保存,指令译码器115对该读指令进行译码,生成相应的目的寄存器编号、源1寄存器编号和源2寄存器编号,执行电路116根据源1寄存器编号自通用寄存器组111中读取相应的第一数值,读写电路117将相应的第一数值作为该读指令的读操作的地址信息,执行读操作,读操作完成后,根据相应的目的寄存器编号,将读到的数据保存到通用寄存器组111中与该目的寄存器编号对应的寄存器中。当待执行指令为写指令时,取指令电路113自指令存储器14获取该写指令并保存,指令译码器115对该写指令进行译码,生成相应的目的寄存器编号、源1寄存器编号和源2寄存器编号,执行电路116根据源1寄存器编号自通用寄存器组111中读取相应的第一数值,根据源2寄存器编号自通用寄存器组111中读取的相应的第二数值,读写电路117将相应的第一数值作为该读指令的写操作的地址信息,将相应的第二数值或者指令译码器115对该写指令进行译码而得到的立即数作为写操作的数据信息,执行并完成写操作。
当待执行指令为分支跳转指令时,取指令电路113自指令存储器14获取该分支跳转指令并保存,分支预测电路114对通过取指令电路113获取的该分支跳转指令进行分支预测,由于待执行指令为分支跳转指令,或者该待执行指令需要进行跳转,输出分支使能信号和分支偏移量,其中,如果该分支跳转指令为第一类分支跳转指令,则该第一类分支跳转指令中的立即数作为其分支偏移量,随后,取指令电路113将程序指针1136的当前值加该分支偏移量,作为跳转目标地址,读取跳转目标地址的指令,完成指令跳转。如果该分支跳转指令为第二类分支跳转指令,则自通用寄存器组111中读取指令译码器115对该第二类分支跳转指令进行译码生成的源1寄存器编号所对应的数值,将该数值作为跳转的标地址,读取跳转目标地址的指令,完成指令跳转。该分支跳转指令为条件分支指令时,该条件分支指令的分支偏移量为该条件分支指令中的立即数,随后,取指令电路113将程序指针1136的当前值加该分支偏移量,作为跳转目标地址,读取跳转目标地址的指令,完成指令跳转。
如图3所示,为本发明第二实施例至第九实施例的片上系统100的部分结构示意图。基于上述实施例,取指令电路113包括第一读写接口1131、指令寄存器1132、计数器1133、加法器1134、第一选择器1135和程序指针1136。第一读写接口1131为指令读写接口。
第一读写接口1131与指令存储器14连接,指令寄存器1132与第一读写接口1131连接,计数器1133与指令寄存器1132连接。加法器1134的第一输入端与程序指针1136连接、第二输入端输入分支偏移量、控制端输入分支使能信号。第一选择器1135的第一输入端与加法器1134的输出端连接、第二输入端与计数器1133连接、控制端输入分支使能信号、输出端与程序指针1136连接。程序指针1136还与计数器1133和第一读写接口1131连接。
指令存储器14中的指令通过第一读写接口1131被保存到指令寄存器1132中,若有分支发生,根据分支预测电路114输出的分支使能信号,加法器1134将程序指针1136的当前值和分支偏移量进行相加,第一选择器1135根据分支使能信号选择相加后的值作为程序指针1136的值,若无分支发生,第一选择器1135根据计数器1133将自指令寄存器1132读取的当前待执行指令进行计数,得到下一条指令的地址,作为程序指针1136的值。
在一些实施例中,该指令寄存器1132的大小为32位。计数器1133包括加2计数器1133和加4计数器1133。当当前待执行指令的最低两位为11时,表示当前待执行指令为32位指令,若无分支发生,则下一条指令的地址为当前地址加4,即当前地址加4个字节(即32位)。若当前待执行指令的最低两位不是11,则表示当前待执行指令为16位的压缩指令,若无分支发生,则下一条指令的地址为当前地址加2,即当前地址加2个字节(即16位)。
如图4所示,为本发明第四实施例的片上系统100的部分结构示意图。基于上述实施例,分支预测电路114包括第一逻辑运算器1141、第二选择器1142、第三选择器1143、第一立即数译码器1144和第一比较器1145。
第一逻辑运算器1141与指令寄存器1132;第二选择器1142的输入端与指令寄存器1132连接、控制端与第一逻辑运算器1141连接、输出端与通用寄存器组111连接;第三选择器1143的输入端与指令寄存器1132连接、控制端与第一逻辑运算器1141连接、输出端与通用寄存器组111连接;第一比较器1145的第一输入端和第二输入端与通用寄存器组111连接,控制端与指令寄存器1132连接、输出端输出分支使能信号;第一立即数译码器1144与指令寄存器1132连接,并输出分支偏移量。
当前待执行指令经过第一逻辑运算器1141,第一逻辑运算器1141输出的逻辑运算结果用于判断是否发生条件分支跳转,若发生条件分支跳转,根据发生条件分支跳转的信号,第二选择器1142将源1寄存器编号发送到通用寄存器组111,第三选择器1143将源2寄存器编号发送到通用寄存器组111,实现自通用寄存器组111中分别读取该源1寄存器编号和该源2寄存器编号所对应的数值,第二逻辑运算器1313对着两个数值进行逻辑运算,得到运算结果,根据该运算结果判断是否发送分支跳转,并输出相应的分支使能信号,并且该当前待执行指令中的立即数作为分支偏移量,程序指针1136的当前值加分支偏移量,作为跳转目标地址,读取跳转目标地址的指令,完成跳转。若没有发生条件分支跳转,第二选择器1142将源1寄存器编号发送到通用寄存器组111,实现自通用寄存器中读取该源1寄存器编号所对应的数值,第三选择器1143不将源2寄存器编号发送到通用寄存器组111,第二逻辑运算器1313对自指令寄存器1132获取到的分支类型信息进行逻辑运算,以输出分支使能信号,其中,当分支类型信息表明当前待执行指令为第一类分支跳转指令时,该第一类分支跳转指令中的立即数作为其分支偏移量,当分支类型信息表明当前待执行指令为第二类分支跳转指令时,自通用寄存器组111中读取指令译码器115对该第二类分支跳转指令进行译码生成的源1寄存器编号所对应的数值作为跳转的标地址。
如图5所示,为本发明第二实施例至第九实施例的片上系统100的部分结构示意图。基于上述实施例,指令译码器115包括第二立即数译码器1151、第三立即数译码器1152、第四选择器1153、第五选择器1154、第六选择器1155和指令类型表电路1156。
第二立即数译码器1151和第三立即数译码器1152分别与指令寄存器1132连接。
第四选择器1153的第一输入端与第二立即数译码器1151连接、第二输入端与第三立即数译码器1152连接、控制端与指令寄存器1132连接、输出端输出目的寄存器编号。
第五选择器1154的第一输入端与第二立即数译码器1151连接、第二输入端与第三立即数译码器1152连接、控制端与取指令电路113连接、输出端输出源1寄存器编号。
第六选择器1155的第一输入端与第二立即数译码器1151连接、第二输入端与第三立即数译码器1152连接、控制端与取指令电路113连接、输出端输出源2寄存器编号。
指令类型表电路1156与指令寄存器1132连接,以生成指令类型表。
指令类型表电路1156与指令寄存器1132连接,以生成指令类型表。
第一立即数译码器1144对指令寄存器1132中的不同位对应的数值进行译码,例如,对1:0、6:2、11:7、12和13:15位对应的数值进行译码,输出不同的译码结果。第二立即数译码器1151对指令寄存器1132中的不同位对应的数值进行译码,例如,对11:7、14:12、19:15、24:20和31:25位对应的数值进行译码,输出不同的译码结果。
指令类型表电路1156根据指令寄存器1132中的指令生成指令类型表。第二立即数译码器1151根据指令类型表输出译码结果,译码结果包括指令类型信息,第四选择器1153根据指令寄存器1132的最低两位的值选择第一立即数译码器1144的输出或第二立即数译码器1151来生成目的寄存器编号,第五选择器1154根据指令寄存器1132的最低两位的值选择第一立即数译码器1144的输出或第二立即数译码器1151来生成源1寄存器编号,第六选择器1155根据指令寄存器1132的最低两位的值选择第一立即数译码器1144的输出或第二立即数译码器1151来生成源2寄存器编号。
如图6所示,为本发明第二实施例至第九实施例的片上系统100的部分结构示意图。基于上述实施例,执行电路116包括算术逻辑运算器1161,其中,算术逻辑运算器1161的第一输入端和第二输入端与通用寄存器组111连接、第三输入端与指令寄存器1132连接、控制端输入指令类型表。
读写电路117包括地址操作电路1171、读写类型选择器1172、第七选择器1173、第八选择器1174、第九选择器1175、第二读写接口1176、第三读写接口1177、外设接口1178和读数据寄存器1179。
读写类型选择器1172与算术逻辑运算器1161的第一输出端连接,地址操作电路1171与算术逻辑运算器1161的第二输出端和读写类型选择器1172连接。
第七选择器1173的输入端与读写类型选择器1172连接、控制端与地址操作电路1171连接、第一输出端与第二读写接口1176连接、第二输出端与第三读写接口1177连接、第三输出端与外设接口1178连接。
第八选择器1174的输入端与读写类型选择器1172连接、控制端与地址操作电路1171连接、第一输出端与第二读写接口1176连接、第二输出端与第三读写接口1177连接、第三输出端与外设接口1178连接。
第九选择器1175的第一输入端与第二读写接口1176连接、第二输入端与第三读写接口1177连接、第三输入端与外设接口1178连接、控制端与地址操作电路1171连接、输出端与读数据寄存器1179连接。
第二读写接口1176还与状态控制寄存器组112连接,第三读写接口1177还与算术逻辑运算器1161的第三输出端和数据存储器15连接,外设接口1178还通过系统总线12与外部设备16连接。
地址操作电路1171对执行电路输入的地址信号进行地址判断和地址分配。第七选择器1173根据地址操作电路1171的判断结果,将读写类型选择器1172输出的片选信号发送状态控制寄存器、数据存储器15或外部设备16,以选中状态控制寄存器、数据存储器15或外部设备16。第八选择器1174根据地址操作电路1171的判断结果,将读写类型选择器1172输出的写使能信号发送给状态控制寄存器、数据存储器15或外部设备16,以实现写操作,第九选择器1175根据地址操作电路1171的判断结果,将状态控制寄存器、数据存储器15或外部设备16的信息传输至读数据寄存器1179,以实现读操作。执行电路输出写数据信号到第二接口,以将执行电路输出的数据信息写入到数据存储器15中。
在一些实施例中,再如图2所示,该微控制单元内核电路11还包括数据写回电路118。该数据写回电路118与读写电路117和通用寄存器组111连接,根据外设接口1178输出的读写操作完成信号和指令类型信号,将读写电路117中的数据,例如上述实施例的读数据寄存器1179中的数据,或者执行电路输出的数据信息写入到通用寄存器组111。
在一些实施例中,如图7所示,数据写回电路118包括第十选择器1181,其中,第十选择器1181的第一输入端与执行电路连接、第二输入端和第一控制端与读写电路117连接、第二控制端输入指令类型信号、输出端与通用寄存器组111连接。目的寄存器编号直接写回到通用寄存器组111中
在一些实施例中,再如图2所示,微控制单元内核电路11还包括堆栈保护电路119。该堆栈保护电路119与通用寄存器组111、读写电路117和中断控制电路13连接,根据用于通用寄存器组111的栈指针寄存器中的数值和用于状态控制寄存器组112的栈限制地址进行比较,输出中断信号,传输到中断控制电路13。
在一些实施例中,如图8所示,堆栈保护电路119包括第二比较器1191,其中第二比较器1191的第一输入端与用于通用寄存器组111的栈指针寄存器连接、第二输入端输入用于状态控制寄存器组112的栈限制地址、输出端与中断控制电路13连接。
如图9所示,为本发明第二实施例至第九实施例的片上系统100的部分结构示意图。基于上述实施例,中断控制电路13包括至少一个中断电路131、中断选通器132和中断等待记录器133,其中,每个中断电路131的第一输入端和第二输入端分别与系统总线12连接,中断选通器132的每个输入端与一个中断电路131的第一输出端连接、每个控制端与一个中断电路131的第二输出端连接、第一输出端与中断等待记录器133连接、第二输出端与微控制单元内核电路11连接,中断等待记录器133还与微控制单元内核电路11连接。
中断电路131对中断信号进行处理,得到相应中断,中断选通器132接收各个中断,并将根据中断优先级输出中断信息到中断等待记录器133中,以及根据中断优先级输出相应中断的中断ID号至微控制单元内核电路11,微控制单元内核电路11根据中断ID号和中断通知信号,对当前中断进行处理,以完成中断,输出中断完成信号至中断等待记录器133,以对下一中断进行处理。
在一些实施例中,每个中断电路131包括第一信号电路1311、中断门控1312、第二逻辑运算器1313、第二信号电路1314和第三逻辑运算器1315,其中,第一信号电路1311和第二信号电路1314分别通过系统总线12与微控制单元内核电路11连接,中断门控1312输入中断信号,第二逻辑运算器1313的第一输入端与中断门控1312的输出端连接、第二输入端与第一信号电路1311连接,第三逻辑运算器1315的第一输入端与第二逻辑运算器1313的输出端连接、第二输入端与第二信号电路1314连接。
在本实施例中,第二逻辑运算器1313和第三逻辑运算器1315执行逻辑与运算。
中断门控1312输入的中断信号可以来自于上述堆栈保护电路119,也可以来自于外部设备16,外部设备16通过系统总线12将中断信号传输至中断门控1312。
以上,仅为本发明较佳的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种片上系统,其特征在于,包括现场可编程门阵列;
其中,所述现场可编程门阵列包括微控制单元内核电路、系统总线、中断控制电路、指令存储器和数据存储器和外部设备,其中所述系统总线、所述中断控制电路、所述指令存储器和所述数据存储器分别与所述微控制单元内核电路连接,所述系统总线还与所述中断控制电路和外部设备连接;
其中,所述微控制单元内核电路基于RISC-V指令集架构,用于自所述指令存储器中读取指令并译码,根据译码结果处理所述指令及相应的数据,以及用于通过所述中断控制电路实时管理、响应并处理中断。
2.如权利要求1中所述的片上系统,其特征在于,
所述微控制单元内核电路包括通用寄存器组、状态控制寄存器组、取指令电路、分支预测电路、指令译码器、执行电路和读写电路,其中,所述取指令电路与所述指令存储器连接;所述分支预测电路与所述通用寄存器组和所述取指令电路连接;所述指令译码器与所述取指令电路连接;所述执行电路与所述指令译码器和所述通用寄存器连接;所述读写电路,与所述执行电路、所述状态寄存器组和所述数据存储器连接;
其中,所述取指令电路自所述指令存储器中获取待执行指令,所述分支预测电路对通过所述取指令电路获取的待执行指令进行分支预测,以输出分支控制信息,其中,所述分支预测电路所输出的分支控制信息包括分支使能信号和分支偏移量;所述取指令电路根据所述分支控制信息完成指令跳转;
所述指令译码器对所述待执行指令进行译码,以生成目的寄存器编号、源1寄存器编号、源2寄存器编号和指令类型表;
所述执行电路根据源1寄存器编号、源2寄存器编号,自所述通用寄存器组中读取相应的第一数值和第二数值,以及将根据所述指令类型表对所述第一数值、所述第二数值以及对所述待执行指令进行译码而得到的立即数进行算术运算或逻辑运算,得到运算结果,根据所述目的寄存器编号将所述运算结果保存到所述通用寄存器组中相应的寄存器中;
所述读写电路根据所述指令类型表,将所述第一数值作为读操作的地址信息,以执行读操作,或者将所述第一数值作为写操作的地址信息,并将所述第二数值作为写操作的数据信息,以执行写操作。
3.如权利要求1中所述的片上系统,其特征在于,
所述取指令电路包括第一读写接口、指令寄存器、计数器、第一选择器、加法器和程序指针,其中,所述第一读写接口与所述指令存储器连接,所述指令寄存器与所述第一读写接口连接,所述计数器与所述指令寄存器连接;
所述加法器的第一输入端与所述程序指针连接、第二输入端输入所述分支偏移量、控制端输入所述分支使能信号;
所述第一选择器的第一输入端与所述加法器的输出端连接、第二输入端与所述计数器连接、控制端输入所述分支使能信号、输出端与所述程序指针连接;
所述程序指针还与所述计数器和所述第一读写接口连接。
4.如权利要求3中所述的片上系统,其特征在于,
所述分支预测电路包括第一逻辑运算器、第二选择器、第三选择器、第一立即数译码器和第一比较器,其中,所述第一逻辑运算器与所述指令寄存器;
所述第二选择器的输入端与所述指令寄存器连接、控制端与所述第一逻辑运算器连接、输出端与所述通用寄存器组连接;
所述第三选择器的输入端与所述指令寄存器连接、控制端与所述第一逻辑运算器连接、输出端与所述通用寄存器组连接;
所述第一比较器的第一输入端和第二输入端与所述通用寄存器组连接,控制端与所述指令寄存器连接、输出端输出所述分支使能信号;
所述第一立即数译码器与所述指令寄存器连接,并输出所述分支偏移量。
5.如权利要求3中所述的片上系统,其特征在于,
所述指令译码器包括第二立即数译码器、第三立即数译码器、第四选择器、第五选择器、第六选择器和指令类型表电路,其中,所述第二立即数译码器和所述第三立即数译码器分别与所述指令寄存器连接;
所述第四选择器的第一输入端与所述第二立即数译码器连接、第二输入端与所述第三立即数译码器连接、控制端与所述指令寄存器连接、输出端输出目的寄存器编号;
所述第五选择器的第一输入端与所述第二立即数译码器连接、第二输入端与所述第三立即数译码器连接、控制端与所述取指令电路连接、输出端输出源1寄存器编号;
所述第六选择器的第一输入端与所述第二立即数译码器连接、第二输入端与所述第三立即数译码器连接、控制端与所述取指令电路连接、输出端输出源2寄存器编号;
所述指令类型表电路与所述指令寄存器连接,以生成所述指令类型表。
6.如权利要求3中所述的片上系统,其特征在于,
所述执行模块包括算术逻辑运算器,其中,所述算术逻辑运算器的第一输入端和第二输入端与所述通用寄存器组连接、第三输入端与所述指令寄存器连接、控制端输入所述指令类型表;
所述读写电路包括地址操作电路、读写类型选择器、第七选择器、第八选择器、第九选择器、第二读写接口、第三读写接口、外设接口和读数据寄存器,其中,所述读写类型选择器与所述算术逻辑运算器的第一输出端连接,所述地址操作电路与所述算术逻辑运算器的第二输出端和所述读写类型选择器连接;
所述第七选择器的输入端与所述读写类型选择器连接、控制端与所述地址操作电路连接、第一输出端与所述第二读写接口连接、第二输出端与所述第三读写接口连接、第三输出端与所述外设接口连接;
所述第八选择器的输入端与所述读写类型选择器连接、控制端与所述地址操作电路连接、第一输出端与所述第二读写接口连接、第二输出端与所述第三读写接口连接、第三输出端与所述外设接口连接;
所述第九选择器的第一输入端与所述第二读写接口连接、第二输入端与所述第三读写接口连接、第三输入端与所述外设接口连接、控制端与所述地址操作电路连接、输出端与所述读数据寄存器连接;
所述第二读写接口还与所述状态控制寄存器组连接,第三读写接口还与所述算术逻辑运算器的第三输出端和所述数据存储器连接,所述外设接口还通过所述系统总线与外部设备连接。
7.如权利要求2中所述的片上系统,其特征在于,所述微控制单元内核电路还包括:
数据写回电路,与所述读写电路和所述通用寄存器组连接;
其中,所述数据写回电路包括第十选择器,其中,所述第十选择器的第一输入端与所述执行电路连接、第二输入端和第一控制端与所述读写电路连接、第二控制端输入指令类型信号、输出端与所述通用寄存器组连接。
8.如权利要求2中所述的片上系统,其特征在于,所述微控制单元内核电路还包括:
堆栈保护电路,与所述通用寄存器组、读写电路和中断控制电路连接;
其中,所述堆栈保护电路包括第二比较器,其中所述第二比较器的第一输入端与用于所述通用寄存器组的栈指针寄存器连接、第二输入端输入用于所述状态控制寄存器组的栈限制地址、输出端与所述中断控制电路连接。
9.如权利要求1中所述的片上系统,其特征在于,
所述中断控制电路包括至少一个中断电路、中断选通器和中断等待记录器,其中,每个所述中断电路的第一输入端和第二输入端分别与所述系统总线连接,所述中断选通器的每个输入端与一个所述中断电路的第一输出端连接、每个控制端与一个所述中断电路的第二输出端连接、第一输出端与所述中断等待记录器连接、第二输出端与所述微控制单元内核电路连接,所述中断等待记录器还与所述微控制单元内核电路连接。
10.如权利要求9中所述的片上系统,其特征在于,
每个所述中断电路包括第一信号电路、中断门控、第二逻辑运算器、第二信号电路和第三逻辑运算器,其中,所述第一信号电路和所述第二信号电路分别通过系统总线与所述微控制单元内核电路连接,所述中断门控输入中断信号,所述第二逻辑运算器的第一输入端与所述中断门控的输出端连接、第二输入端与所述第一信号电路连接,第三逻辑运算器的第一输入端与所述第二逻辑运算器的输出端连接、第二输入端与所述第二信号电路连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911282831.1A CN111177067B (zh) | 2019-12-13 | 2019-12-13 | 一种片上系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911282831.1A CN111177067B (zh) | 2019-12-13 | 2019-12-13 | 一种片上系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111177067A true CN111177067A (zh) | 2020-05-19 |
CN111177067B CN111177067B (zh) | 2023-09-19 |
Family
ID=70651957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911282831.1A Active CN111177067B (zh) | 2019-12-13 | 2019-12-13 | 一种片上系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111177067B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039745A (zh) * | 2020-09-17 | 2020-12-04 | 广东高云半导体科技股份有限公司 | Can总线通讯控制系统及通信系统 |
CN113836081A (zh) * | 2021-09-29 | 2021-12-24 | 南方电网数字电网研究院有限公司 | 片上系统芯片架构 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110007964A (zh) * | 2019-03-15 | 2019-07-12 | 芯来科技(武汉)有限公司 | 用于risc-v架构的中断系统 |
CN110007961A (zh) * | 2019-02-01 | 2019-07-12 | 中山大学 | 一种基于risc-v的边缘计算硬件架构 |
US20190303154A1 (en) * | 2018-03-31 | 2019-10-03 | Micron Technology, Inc. | Conditional Branching Control for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric |
CN110427337A (zh) * | 2019-09-29 | 2019-11-08 | 广东高云半导体科技股份有限公司 | 基于现场可编程门阵列的处理器内核及其运行方法 |
-
2019
- 2019-12-13 CN CN201911282831.1A patent/CN111177067B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190303154A1 (en) * | 2018-03-31 | 2019-10-03 | Micron Technology, Inc. | Conditional Branching Control for a Multi-Threaded, Self-Scheduling Reconfigurable Computing Fabric |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110007961A (zh) * | 2019-02-01 | 2019-07-12 | 中山大学 | 一种基于risc-v的边缘计算硬件架构 |
CN110007964A (zh) * | 2019-03-15 | 2019-07-12 | 芯来科技(武汉)有限公司 | 用于risc-v架构的中断系统 |
CN110427337A (zh) * | 2019-09-29 | 2019-11-08 | 广东高云半导体科技股份有限公司 | 基于现场可编程门阵列的处理器内核及其运行方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112039745A (zh) * | 2020-09-17 | 2020-12-04 | 广东高云半导体科技股份有限公司 | Can总线通讯控制系统及通信系统 |
CN113836081A (zh) * | 2021-09-29 | 2021-12-24 | 南方电网数字电网研究院有限公司 | 片上系统芯片架构 |
CN113836081B (zh) * | 2021-09-29 | 2024-01-23 | 南方电网数字电网研究院有限公司 | 片上系统芯片架构 |
Also Published As
Publication number | Publication date |
---|---|
CN111177067B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7334161B2 (en) | Breakpoint logic unit, debug logic and breakpoint method for a data processing apparatus | |
JP3105223B2 (ja) | マイクロコンピュータ,マイクロプロセッサおよびコア・プロセッサ集積回路用デバッグ周辺装置 | |
KR100350568B1 (ko) | 디버그기능을수행하기위한데이타처리시스템및방법 | |
JP6006248B2 (ja) | 命令エミュレーションプロセッサ、方法、およびシステム | |
EP0762280A1 (en) | Data processor with built-in emulation circuit | |
EP0762277A1 (en) | Data processor with built-in emulation circuit | |
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
US20040030870A1 (en) | Software breakpoints with tailoring for multiple processor shared memory or multiple thread systems | |
JP2003085000A (ja) | トレース情報生成装置およびその方法 | |
US7010672B2 (en) | Digital processor with programmable breakpoint/watchpoint trigger generation circuit | |
CN110427337B (zh) | 基于现场可编程门阵列的处理器内核及其运行方法 | |
US7376820B2 (en) | Information processing unit, and exception processing method for specific application-purpose operation instruction | |
CN111177067A (zh) | 一种片上系统 | |
US20210089306A1 (en) | Instruction processing method and apparatus | |
JP2011501265A (ja) | データ処理システムにおいて用いるためのデバッグ命令 | |
US6986028B2 (en) | Repeat block with zero cycle overhead nesting | |
CN105824696B (zh) | 一种具有定时中断功能的处理器装置 | |
JPH1165839A (ja) | プロセッサの命令制御機構 | |
US6347368B1 (en) | Microcomputing device for exchanging data while executing an application | |
CN112540789B (zh) | 一种指令处理装置、处理器及其处理方法 | |
US20210089305A1 (en) | Instruction executing method and apparatus | |
WO2022235265A1 (en) | Debug channel for communication between a processor and an external debug host | |
US6233675B1 (en) | Facility to allow fast execution of and, or, and test instructions | |
US20200174071A1 (en) | Debug command execution using existing datapath circuitry | |
CN114580329B (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 |