随着嵌入式领域和信息时代的蓬勃发展,微处理器设计开始被越来越多的人关注。目前国内很多高校和研究机构都开始设计微处理器。客观的讲,这些微处理器在硬件结构上比较简单,缺乏汇编器、编译器、操作系统以及各种I/O接口电路的支持,应用场合单一。另外,由于这些微处理器支持的指令集在格式上各有不同,因此造成了大量的设计资源浪费。我们旨在设计一套完备的高性能嵌入式SoC(System on Chip)系统,用以减少重复性设计工作,更好地普及高等院校的微处理器设计教育,吸引更多的人才专注于高性能微处理器研发;同时也提供给企业免费的SoC软核,用于低成本的工业控制。
1. 系统原理和技术特点
Minisys是东南大学计算机科学与工程学院系统结构实验室开发的一款基于32位RISC架构的SoC系统。如图1所示,Minisys包含一个以32位RISC型处理器为核心,附带多个IO控制器的SoC芯片和相关的系统软件。系统软件包括以便于上层软件编程而提供的系统功能调用接口为主体的BIOS、键盘驱动程序、以及Minisys汇编器(编译器)。其中,Minisys SoC芯片功能结构如图2所示。
Minisys CPU有32个32位通用寄存器,32位数据线和16位地址线。IO部件包括一个4位7段LED数码管控制器,一个4×4键盘控制器,一个16位定时/计数器,一个32位系统定时器,一个16位PWM控制器,一个看门狗电路和一个简易UART串行通信控制器。
Minisys借鉴了MIPS指令集,指令定长32位,共有31条常用定点指令(不包括硬件乘除、硬件浮点指令)。32个32位寄存器除了5个寄存器被固定功能外,其余的都可以做通用寄存器。
Minisys采用哈佛存储结构,片内包含4KB ROM和4KB RAM,都采用字节编制,但以32位为一个存储单元,即他们和CPU之间的数据交换都以32位为单位进行。Minisys的I/O空间编址采用与存储器统一编址方式,即将整个地址空间分为两个部分,一部分作为访问RAM的存储空间,另一部分作为访问IO的I/O空间。因此,对I/O部件的访问采用与存储器访问相同的指令格式。
系统内部提供两个中断源的控制电路,两个中断源为INT0和INT1,其中INT0的优先级高于INT1,允许高优先级中断嵌套。系统提供用于堆栈操作的SP寄存器,但没有提供压栈和退栈指令,因此对于堆栈的操作需要用软件实现。堆栈操作的原子性由程序员负责。
2. 系统设计流程
Minisys SoC的设计包括了硬件设计和软件设计。其中,硬件设计部分包括以下几个部分:Minisys CPU的设计、接口部件的设计、BIOS的设计。软件设计即为汇编器的设计。
在Minisys CPU设计中,主要考虑指令系统的确定、CPU结构的设计与实现、CPU寄存器组的组织与实现以及CPU的各个功能部件的设计与实现。下面主要介绍Minisys CPU的各个功能部件的设计和实现。
Minisysy CPU的内部功能部件被划分为5歌基本单元:取指单元、译码单元、控制单元、执行单元和存储单元。在设计CPU的时候,采用模块化的设计方法,因此,以上这些单元是分别在相应的5歌模块中进行设计,最后用一个顶层模块将这5个模块按照逻辑上的需要连接起来,成为一个完整的CPU。
取指单元
取指单元主要完成以下工作:到程序ROM中取指令;对PC值进行更新;完成各种跳转指令的PC修改功能。本设计是在Altera公司的Quartus II环境下完成的,因此,在设计中使用了Altera公司已经设计好的rom宏模块。
译码单元
译码单元的主要工作就是完成执行指令前的操作数准备工作,分析Minisys指令集得知,这些数据或者在寄存器中,或者是立即数,因此在译码单元中最重要的工作就是实现寄存器组和完成寄存器的读写并根据指令译码结果,决定向其他部件送一路还是两路数据。
控制单元
控制单元是整个CPU的控制核心,各种控制信号都是从这里发出来的,而各种信号的值都是通过操作码和功能码的不同组合和一些约定来决定的。在设计中用SRCB来标志操作数的来源,具体操作如表1和表2所示。
表1 操作数A的来源标志
操作数 | 零扩展的立即数 | ID阶段取得的寄存器值 |
SRCA | 1’b0 | 1’b1 |
表2 操作数B的来源标志
操作数 | ID阶段取得的寄存器值 | 符号扩展的立即数 | 零扩展的立即数 |
SRCB | 2’b00 | 2’b01 | 2’b10||2’b11 |
执行单元
执行单元需要完成的工作归纳起来包括以下几个方面:完成逻辑运算、完成算术运算、完成移位运算、完成比较转移的PC值运算和完成比较后赋值操作。
存储单元
存储单元首先要实现数据RAM,并完成对数据RAM的读写操作。与指令ROM一样,数据RAM也使用Altera公司提供的宏模块来实现。Minisys拥有4KB的数据RAM,4个字节为一个读写单元,因此,它的RAM和ROM的初始化文件格式相同。
上一篇:基于正交矢量放大的MRS信号采集模块设计---- 采集模块软件实现
下一篇:基于网络的分布控制式半导体激光器阵列
推荐阅读最新更新时间:2023-10-12 22:50
Vishay线上图书馆
- 选型-汽车级表面贴装和通孔超快整流器
- 你知道吗?DC-LINK电容在高湿条件下具有高度稳定性
- microBUCK和microBRICK直流/直流稳压器解决方案
- SOP-4小型封装光伏MOSFET驱动器VOMDA1271
- 使用薄膜、大功率、背接触式电阻的优势
- SQJQ140E车规级N沟道40V MOSFET
- MathWorks 和 NXP 合作推出用于电池管理系统的 Model-Based Design Toolbox
- 意法半导体先进的电隔离栅极驱动器 STGAP3S为 IGBT 和 SiC MOSFET 提供灵活的保护功能
- 全新无隔膜固态锂电池技术问世:正负极距离小于0.000001米
- 东芝推出具有低导通电阻和高可靠性的适用于车载牵引逆变器的最新款1200 V SiC MOSFET
- 【“源”察秋毫系列】 下一代半导体氧化镓器件光电探测器应用与测试
- 采用自主设计封装,绝缘电阻显著提高!ROHM开发出更高电压xEV系统的SiC肖特基势垒二极管
- 艾迈斯欧司朗发布OSCONIQ® C 3030 LED:打造未来户外及体育场照明新标杆
- 氮化镓取代碳化硅?PI颠覆式1700V InnoMux2先来打个样
- 从隔离到三代半:一文看懂纳芯微的栅极驱动IC