Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Dion6850/CSON

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

179 Commits

Repository files navigation

计算机组成原理实验

项目基于ArmV7的架构进行设计

CSON项目地址

验证使用环境

  • veriloator
  • cocotb-test
  • 其他python包

本地配置环境可以参照本地环境配置

关于build.py和async_test_tb.py的更改

build.py中只需改变顶层模块名称 async_test_tb中书写函数,在@cocotb.test()后为执行代码

运行

docker run -it --name cson zhywyt/cson:latest /bin/bash
cd /root/workspace/
git clone git@github.com:Dion6850/CSON.git
cd CSON/test
./build

项目进度

  • 桶形移位寄存器 ✅
  • 多功能ALU ✅
  • 通用寄存器堆 ✅
  • 程序状态寄存器堆 ❌
  • 存储器 ❌ (在后续实验中通过一个简单的memory.v模块实现)
  • ARM汇编器和模拟器 ❌
  • 取指令数据通路 ✅
  • 数据处理指令的CPU ✅
  • 状态寄存器访问指令 ❌
  • 分支跳转指令 ✅
  • 单数据访存指令 ✅
  • 块数据访存指令 ❌

注意

vivado复现

项目已经移除了所有的工程文件,保留了复现需要的代码文件,如果需要获取项目文件请查看197a6650d9e3e3914a0311f4b4e61b86eeaa298d版本和以前的版本。所有工程代码可以在src/Board找到。

关于验证文件

验证文件在verify中。且从取指令数据通路实验开始不再使用python进行nhn仿真验证,而是使用用波形图进行验证。

logging模块的debug等级的信息不会输出在命令行,请使用info以上等级的日志信息

FPGA在线平台地址:http://fpga.hdu.edu.cn/co/

NZCV C 进位与教材不同步问题

这个问题在commite8c65c6被修复了,由于这个问题导致了我们的CPU实验出现一些问题,所以我们最终选择与教材保持一致。下面只是问题的记录。

在文件 ALU.v 中38行(cf9172959b1d878a9d949853ac9b30329e173787)

#切换到问题版本
git checkout cf9172959b1d878a9d949853ac9b30329e173787

image-20240428113615880

我们的C进位并没有像教材那样取反,助教说这个位置其实是有争议的,所以在板机出现C与教材不符的情况请不要在意。保持内部统一就可以了。

About

计算机组成原理课程实践(基于veriloator和cocotb-test的仿真)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

AltStyle によって変換されたページ (->オリジナル) /