实现了5段流水的CPU This project is verilog that implements 5-stage-pipeline-cpu
和此仓库配套的bilibili讲解地址在这:https://www.bilibili.com/video/BV1bf4y1w7hA
- @lerogo, 我的博客,如果你想给我点钱买葡萄冻冻🤣
- 当前代码仓库 5-stage-pipeline-cpu
- 2021-09-22 星期三
- project 为项目代码目录,里面时完整的vivado工程
- 硬件课程设计(Ⅰ)——报告.pdf 报告
- 附录1画图.vsdx 自己做的时候画的图啦
- 附录2软件画出RTL图.pdf
add rd,rs,rt
R[rs]+R[rt]->R[rd]
addi rd,rs,imm
R[rs]+imm->R[rd]
符号位扩展addiu rd,rs,imm
R[rs]+imm->R[rd]
0扩展sub rd,rs,rt
R[rs]-R[rt]->R[rd]
and rd,rs,rt
R[rs]&R[rt]->R[rd]
andi rd,rs,imm
R[rs]&imm->R[rd]
or rd,rs,rt
R[rs]|R[rt]->R[rd]
ori rd,rs,imm
R[rs]|imm->R[rd]
nor rd,rs,rt
~(R[rs]|R[rt])->R[rd]
nori rd,rs,imm
~(R[rs]|imm)->R[rd]
xor rd,rs,rt
R[rs]⊕R[rt]->R[rd]
xori rd,rs,imm
R[rs]⊕imm->R[rd]
beq rd,rs,imm
if R[rd]==R[rs] then PC=PC+imm<<2
beqz rd,imm
if R[rd]==R[0] then PC=PC+imm<<2
bne rd,rs,imm
if R[rd]!=R[rs] then PC=PC+imm<<2
bnez rd,imm
if R[rd]!=R[0] then PC=PC+imm<<2
bgt rd,rs,imm
if R[rd]>R[rs] then PC=PC+imm<<2
bge rd,rs,imm
if R[rd]>=R[rs] then PC=PC+imm<<2
blt rd,rs,imm
if R[rd]<R[rs] then PC=PC+imm<<2
ble rd,rs,imm
if R[rd]<=R[rs] then PC=PC+imm<<2
j imm
PC=PC(31:28)|imm<< 2
jr rd
PC=R[rd]
lb rd,rs
mem[R[rs]]->R[rd]
加载一个字节 8bitlh rd,rs
mem[R[rs]]->R[rd]
加载一个半字 16bitlw rd,rs
mem[R[rs]]->R[rd]
加载一个字 32bitsb rd,rs
R[rs]->mem[R[rd]]
储存一个字节 8bitsh rd,rs
R[rs]->mem[R[rd]]
储存一个半字 16bitsw rd,rs
R[rs]->mem[R[rd]]
储存一个字 32bitslli rd,rs,imm
R[rs]<<imm->R[rd]
sll rd,rs,rt
R[rs]<<R[rt](4~0)->R[rd]
srli rd,rs,imm
R[rs]>>imm->R[rd]
逻辑右移 高位补0srl rd,rs,rt
R[rs]>>R[rt](4~0)->R[rd]
高位补0srai rd,rs,imm
R[rs]>>imm->R[rd]
算数右移 高位补1sra rd,rs,rt
R[rs]>>R[rt](4~0)->R[rd]
高位补1slt rd,rs,rt
if R[rs]<R[rt] then R[rd]=1 else 0
slti rd,rs,imm
if R[rs]<imm then R[rd]=1 else 0