Skip to content

Latest commit

 

History

History
24 lines (22 loc) · 1.5 KB

soc.md

File metadata and controls

24 lines (22 loc) · 1.5 KB

ysyxSoC集成步骤说明

  1. 通过以下命令克隆本项目
    git clone --depth 1 https://github.com/OSCPU/ysyxSoC.git
    
  2. ysyxSoC/ysyx/peripheral目录及其子目录下的所有.v文件加入verilator的Verilog文件列表
  3. ysyxSoC/ysyx/soc/ysyxSoCFull.v文件加入verilator的Verilog文件列表
  4. 将处理器Verilog文件加入verilator的Verilog文件列表
  5. ysyxSoC/ysyx/peripheral/uart16550/rtlysyxSoC/ysyx/peripheral/spi/rtl两个目录加入包含路径中 (使用verilator的-I选项)
  6. ysyxSoC/ysyx/peripheral/spiFlash/spiFlash.cpp文件加入verilator的C++文件列表
  7. 将处理器的复位PC设置为0x3000_0000
  8. 在verilator编译选项中添加--timescale "1ns/1ns"
  9. 在verilator初始化时对flash进行初始化, 有以下两种方式:
    • 调用spiFlash.cpp中的flash_init(img)函数, 用于将bin文件中的指令序列放置在flash中, 其中参数img是bin文件的路径, 在ysyxSoC/ysyx/program/bin/flashysyxSoC/ysyx/program/bin/loader目录下提供了一些示例
    • 调用spiFlash.cpp中的flash_memcpy(src, len)函数, 用于将已经读入内存的指令序列放置在flash中, 其中参数src是指令序列的地址, len是指令序列的长度
  10. ysyxSoCFull模块(在ysyxSoC/ysyx/soc/ysyxSoCFull.v中定义)设置为verilator仿真的顶层
  11. ysyxSoC/ysyx/soc/ysyxSoCFull.v中的ysyx_000000模块名修改为自己的处理器模块名
  12. 通过verilator进行仿真即可