# CuoraCore **Repository Path**: PFMRLIB/cuora-core ## Basic Information - **Project Name**: CuoraCore - **Description**: 4级流水线 RV32IMC核 (暂时弃坑了 有部分指令没测 有些地方还可能有问题 仅供参考) - **Primary Language**: Verilog - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-02-02 - **Last Updated**: 2021-08-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CuoraCore Mark.II ## 1 项目简介 此项目是一个4级(取指、译码、执行、回写&内存读写)流水线RV32IMC核。 由于学业繁忙本人暂时没法完成这一项目,所以此处代码仅供参考。 目前只测试了部分I指令集指令,因此这个软核不一定能正常工作。 下文将将对此项目作简要说明。 ## 2 项目结构 - `/rtl`文件夹中为项目代码。其中: - `cuoracore.v` 软核的顶层模块 - `definitions.v` 部分常量定义 - 带有`if_`前缀的是取址级各模块。其中: - `if_top.v` 取址单元顶层模块 - 带有`id_`前缀的是译码级各模块。其中: - `id_insdec_16.v` 压缩(C)指令译码器 - `id_insdec_32.v` 常规指令译码器 - `id_regfile.v` 寄存器组 - `id_top.v` 译码级顶层模块 - 带有`ex_`前缀的是执行级各模块。其中: - `ex_alu.v` ALU - `ex_div.v` 除法单元 - `ex_mul.v` 乘法单元 - `ex_top.v` 执行级顶层模块 - 带有`memwb_`前缀的是回写&内存读写级各模块。其中: - `memwb_top.v` 回写&内存读写级顶层模块 - 带有`mem_`前缀的是ROM和RAM模型。其中: - `mem_data_ram.v` 数据RAM模型 - `mem_inst_rom.v` 指令ROM模型 - `intr_cnt.v` 中断控制与CSR寄存器模块 - `/tb`文件夹中为testbench。其中: - `alu_tb.v` ALU testbench - `exu_tb.v` 执行级testbench - `id_tb.v` 译码级testbench - `if_tb.v` 取值级testbench - `machine_tb.v` 指令测试用testbench。(这个暂时无法使用,因为需要指令测试文件,而这部分文件并未包括在此项目的文件结构中。此外该项目使用了旧版本的`riscv-tests`项目进行指令测试,而新版本的指令测试已经有了很大的改动。如有需要可自行查找旧版本的`riscv-tests`官方项目并编译。)