单周期armv7处理器
实现总结
总体框图 (数据通路)
指令集
以下内容中,高亮部分为实现的指令。
![]() |
|
条件判定
![]() |
|
操作码和ALU指令 (R类型、I类型)
数据传输指令 (D类型)
例程: 求斐波那契数列的前48项
汇编 | 机器码 | 指令类型 |
---|---|---|
.global _start |
||
_start: |
||
mov r0, #260 |
0xe3a00004 |
I指令 |
mov r1, #1 |
0xe3a01001 |
I指令 |
str r1, [r0] |
0xe5801000 |
D指令 - 写入RAM |
L0: ldr r2, [r0, #-4] |
0xe5902ffc |
D指令 - 读取RAM (带偏移) |
add r1, r1, r2 |
0xe0811002 |
R指令 |
add r0, #4 |
0xe2800004 |
I指令 |
str r1, [r0] |
0xe5801000 |
D指令 - 写入RAM |
cmp r0, #444 |
0xe3500f2f |
I指令 - 带位移, 写入标志位, 不写入寄存器 |
blt L0 |
0xbafffffb |
B指令 - 带条件 |
L1: b L1 |
0xea000000 |
B指令 - 无条件, 跳转到自身, 相当于停机 |
仿真结果
位移模块仿真
ALU仿真
斐波那契例程仿真
技术栈
- verilog
- arm汇编
- 处理器设计
关于
本项目为东北大学计算机学院数字逻辑与数字系统课程设计,完成于2022年10月。