mirror of
https://github.com/WangXuan95/USTC-RVSoC.git
synced 2024-12-24 22:58:56 +08:00
add readme
This commit is contained in:
parent
95111fe668
commit
23a684c5fc
21
README.md
21
README.md
@ -7,27 +7,20 @@
|
||||
![Image text](https://github.com/WangXuan95/USTCRVSoC/blob/master/SoC.png)
|
||||
|
||||
## 主要部件包括:
|
||||
### 1、多主多从总线仲裁器:负责接受主接口发来的读写请求,根据其地址空间将其路由到相应的从接口,
|
||||
并在不同主接口同时访问一个从接口时,控制其中优先级高的从接口先进行访问,优先级低的主接口等待。
|
||||
### 1、多主多从总线仲裁器:负责接受主接口发来的读写请求,根据其地址空间将其路由到相应的从接口,并在不同主接口同时访问一个从接口时,控制其中优先级高的从接口先进行访问,优先级低的主接口等待。
|
||||
### 2、RV32I Core:包括两个主接口,一个用于取指令,一个用于读写数据
|
||||
### 3、UART调试器(ISP UART):包括一个主接口。它接收用户从UART发来的命令,操控复位等信号,或对总线进行读写。
|
||||
可以使用UART命令复位整个SoC,上传程序,或者查看运行时的RAM数据。
|
||||
### 4、指令ROM:地址空间00000000~00000fff,CPU复位后从00000000开始取指令,因此若在指令ROM中存放编译好的指令流,
|
||||
复位后就自动运行其中的程序
|
||||
5、数据RAM:地址空间00010000~00010fff
|
||||
6、显存RAM:地址空间00020000~00020fff,一共4096B,若VGA信号正确连接到VGA接口,则屏幕上能够显示98列*36行=3528个字符,
|
||||
显存RAM的前3528B对应的ASCII码值就决定了每个字符是什么
|
||||
7、用户UART:暂时只具有发送功能,地址空间00030000~00030003,向00030000写一个字节相当于把该字节放入发送缓冲区FIFO,
|
||||
缓冲区大小256B,缓冲区的数据会尽快发送。
|
||||
### 3、UART调试器(ISP UART):包括一个主接口。它接收用户从UART发来的命令,操控复位等信号,或对总线进行读写。可以使用UART命令复位整个SoC,上传程序,或者查看运行时的RAM数据。
|
||||
### 4、指令ROM:地址空间00000000~00000fff,CPU复位后从00000000开始取指令,因此若在指令ROM中存放编译好的指令流,复位后就自动运行其中的程序
|
||||
### 5、数据RAM:地址空间00010000~00010fff
|
||||
### 6、显存RAM:地址空间00020000~00020fff,一共4096B,若VGA信号正确连接到VGA接口,则屏幕上能够显示98列*36行=3528个字符,显存RAM的前3528B对应的ASCII码值就决定了每个字符是什么
|
||||
### 7、用户UART:暂时只具有发送功能,地址空间00030000~00030003,向00030000写一个字节相当于把该字节放入发送缓冲区FIFO,缓冲区大小256B,缓冲区的数据会尽快发送。
|
||||
|
||||
# 修改ROM程序
|
||||
|
||||
## 目前我只尝试了将汇编语言汇编成该CPU的目标指令并运行,方法是:
|
||||
### 1、将汇编代码汇编为指令流并存在Verilog ROM中:在./ASM目录中运行python文件:asm2verilogrom.py,具体命令行命令格式见python中的注释。
|
||||
推荐使用windows完成这一步,因为 ./ASM/riscv32-gnu-toolchain-windows 中提供了编译好的riscv-windows工具链,不需要另外配置环境。
|
||||
### 1、将汇编代码汇编为指令流并存在Verilog ROM中:在./ASM目录中运行python文件:asm2verilogrom.py,具体命令行命令格式见python中的注释。推荐使用windows完成这一步,因为 ./ASM/riscv32-gnu-toolchain-windows 中提供了编译好的riscv-windows工具链,不需要另外配置环境。
|
||||
### 2、将生成的.sv文件中的内容复制,替换 ./RTL/instr_rom.sv 中的内容。
|
||||
|
||||
# RTL仿真
|
||||
|
||||
### 请直接使用soc_top_tb.sv文件进行仿真,这个仿真是针对整个SoC的,因此你可以修改ROM程序后进行仿真,观察SoC运行该程序的行为
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user