mirror of
https://github.com/WangXuan95/USTC-RVSoC.git
synced 2024-12-24 22:58:56 +08:00
完善README
This commit is contained in:
parent
60d9f5d53d
commit
8fa76aa015
@ -20,7 +20,7 @@ USTCRVSoC
|
||||
* 进行仿真
|
||||
* 修改指令ROM
|
||||
|
||||
# 特点
|
||||
#特点
|
||||
|
||||
* **CPU**:5段流水线 RISC-V ,能运行 **RV32I** 指令集中的大部分指令
|
||||
* **总线**:简单直观的,具有**握手机制**的,32-bit地址位宽和32-bit数据位宽的总线
|
||||
@ -53,7 +53,7 @@ USTCRVSoC
|
||||
* **指令ROM**:对应文件 instr_rom.sv。CPU默认从这里开始取指令,里面的指令流是在硬件代码编译综合时就固定的,不能在运行时修改。唯一的修改方法是编辑 **instr_rom.sv** 中的代码,然后重新编译综合、烧写FPGA逻辑。因此**instr_rom** 多用于仿真。
|
||||
* **指令RAM**:对应文件 ram_bus_wrapper.sv。用户使用 isp_uart 在线烧写指令流到这里,然后将 Boot 地址指向这里,再复位SoC后,CPU就从这里开始运行指令流。
|
||||
* **数据RAM**:对应文件 ram_bus_wrapper.sv。存放运行时的数据。
|
||||
* **显存RAM**:对应文件 vedio_ram.sv。在屏幕上显示 86列 * 32行 = 2752 个字符,显存 RAM 的 4096B 被划分为 32 个块,每块对应一行,占 128B,前 86 字节对应 86 个列。屏幕上显示的是每个字节作为 ASCII 码所对应的字符。
|
||||
* **显存RAM**:对应文件 video_ram.sv。在屏幕上显示 86列 * 32行 = 2752 个字符,显存 RAM 的 4096B 被划分为 32 个块,每块对应一行,占 128B,前 86 字节对应 86 个列。屏幕上显示的是每个字节作为 ASCII 码所对应的字符。
|
||||
|
||||
# CPU特性
|
||||
|
||||
@ -174,7 +174,7 @@ UART 调试器有两种模式:
|
||||
|
||||
![Image text](https://github.com/WangXuan95/USTCRVSoC/blob/master/images/UartSession3.png)
|
||||
|
||||
除了读,我们也可以用调试器写总线,输入一条写命令: **"10000 abcd1234"** 并按回车,会看到对方发来 **"wr done"** ,意为写成功,该命令意为向地址 0x10000 中写入 0xabcd1234 (0x10000是数据RAM的首地址)。
|
||||
除了读,我们也可以用调试器写总线,输入一条写命令: "10000 abcd1234" 并按回车,会看到对方发来 **"wr done"** ,意为写成功,该命令意为向地址 0x10000 中写入 0xabcd1234 (0x10000是数据RAM的首地址)。
|
||||
|
||||
为了验证写成功,输入读指令:**"10000"** 并按回车,会看到对方发来**"abcd1234"**。
|
||||
|
||||
@ -267,4 +267,4 @@ UART 调试器有两种模式:
|
||||
|
||||
如果你想仿真某个指令流,需要对**指令ROM**进行修改。
|
||||
|
||||
**USTCRVSoC-tool** 除了进行烧写,也可以用编译后的指令流生成**指令ROM**的Verilog代码。当你使用**汇编**按钮产生指令流后,可以点击右侧的**保存指令流(Verilog)**按钮,保存时替换 **./RTL/instr_rom.sv**,再重新进行仿真即可。
|
||||
**USTCRVSoC-tool** 除了进行烧写,也可以用编译后的指令流生成**指令ROM**的Verilog代码。当你使用**汇编**按钮产生指令流后,可以点击右侧的"保存指令流(Verilog)"按钮,保存时替换 **./RTL/instr_rom.sv**,再重新进行仿真即可。
|
||||
|
Loading…
x
Reference in New Issue
Block a user