Menu Close

RISC-V32个寄存器和译码模块(2)CPU硬件模块

RISC-V FPGA 设计中, RISC-V 的核心框架模块组成。

相关参考文章:

RISC-V 教学教案

 

RISC-V  中cpu 核心设计框架组成结构:

 

其中:

fii_cpu_sys.v : 工程顶层模块

fii_iobuf.v : GPIO 端口 逻辑 模块

SYS_DCM: PLL 时钟模块 IP

fii_riscv_cpu.v: RISC -V cpu 模块顶层

fii_rv32i_core.v : 状态机逻辑模块(RISC -V)运行模块

TDP_RAM_INSTR:程序存储单元(ITCM)

rv32I_exu.v: RISC -V cpu 内核模块

regfile_l.v: 32个通用寄存器模块

instr_dec.v: 指令译码模块

exu_alu.v: 执行模块

exu_LSU.v: Load/Store 模块

fii_UART.v:UART  模块 

fii_timer_lsu.v:  Timer 模块

fii_GPIO.v:  GPIO 模块

D_sram.v: SRAM DTCM 模块

exu_BRANCH.v:分支处理模块

exu_csr.v: CSR 寄存器模块

 

fii_riscv_structure

在vivado 工程文件中:

riscv_vivado

 

risc-v 的核心模块组成:

regile_l       :32个通用寄存器

instr_dec   :指令译码模块

exu_alu      : 执行模块

exu_LSU    :load/store 外设访存模块

exu_branch:条件分支模块

exu_CSR:CSR 寄存器模块

 

CPU 架构分类:

冯诺依曼架构:也称做普林斯顿架构。 其结构特点时数据存储器和程序存储器按照统一的地址编址,如32为的地址总线,可寻址4G 的地址空间。程序存储器,数据存储器以及外设等每部分占有4G空间的一个部分,彼此之间互不重叠。 

Princeton structure

哈佛架构:哈弗结构不同于冯.诺依曼结构将访问空间线性划分,而是将数据存储器与程序存储器划分为两个独立的寻址空间,自己维护自己的地址空间,最典型的结构莫过于Intel最早推出的8051,16位的地址总线可访问64k空间,但是数据和程序在控制器的协助下,实现数据访问与程序访问的分离,因此访问空间扩大了一倍

harvard structure

冯.诺依曼结构与哈弗结构的优缺点:

冯.诺依曼结构:

优点:整个访问空间是线性的,整个空间采用统一编码,使用同一个程序计数器PC,因此对控制器的要求比较低,硬件资源(RTL)开销小于哈弗结构。

缺点:无法扩展空间范围,同时由于使用统一的空间编码,在遇到资源冲突时必须等待冲突解决才能继续程序的运行,因此效率较低。

哈弗结构:

优点:由于数据空间与程序空间分离,一次整个访问空间几乎扩大一倍,不存在程序空间的访问与数据空间访问的冲突

缺点:控制器复杂,需要两套PC计数器,硬件开销大

现在的cpu 设计中, 已经不是像早期的cpu 设计那样泾渭分明了, 可能一个cpu 即支持 普林斯顿架构,同时支持哈佛架构。 根据程序,数据的不同, cpu 可以从不同的区域将数据读出,或者写入。

FII-RISC-V 架构:

目前fii-riscv v2.01 版本,即支持普林斯顿架构, 同时也支持哈佛架构。当然,哈佛架构在执行效率上还是比较高的,绝大部分应用使用的时哈佛架构。但为展示普林斯顿架构的结构,同时在之后的版本会支持JTAG 模块, jtag 模块使用的也是普林斯顿架构,这种方式。

Posted in FPGA, FPGA 教材教案, IC, RISC-V, RISC-V IPcore设计, RISC-V 教材教案, Verilog, 教材与教案, 文章

发表回复

相关链接