2023北航计组P0至P7(2)(P3logisim实现单周期处理器)

p3的实验要求是用logisim实现单周期CPU,而p4则要求用verilog语言实现。

主要模块:IFU(内置指令存储器IM和计算下一模块PC值的NPC)、Splitter(分割指令)Controller(将指令译码,输出各个模块需要的控制信号)、GRF(寄存器)、ALU(计算模块)、DM(数据存储器)、EXT(数据拓展模块)

设计思路:

我的设计思路是,先把要求写的指令分类,再看每一类指令具体会对哪些部件进行哪些操作。

以寄存器为例:对寄存器的操作有两类,一类是读数据,一类是写数据。读数据的话,就得看要读哪个寄存器的数据(即取数据的地址);写数据的话,就得找到对应写入的数据(需要控制信号)和写入数据的地址(控制信号)。

下面是具体模块的设计:

1.IFU

1).IM (RAM实现)

输入端口:pc

输出端口:istr

2).NPC(计算下一级pc)

输入端口:pc ,pcsrc(选择相应的pc)

输出端口:npc

整体IFU:

输入端口:pc

输出端口:istr

2.GRF 

输入:A1,A2(读数据地址),A3(写入地址),we(写使能信号),result,regaddr(选择写入地址),regdata(选择写入数据),memdata 

输出:out1,out2(输出数据)

3.ALU

输入端口:out1,out2(寄存器数据),ex_imm(拓展后的立即数),ALUsrc(选择要计算的端口2数据),ALUop(计算模块的操作码)

输出端口:result (ALU计算结果)

4.EXT(立即数拓展)

输入端口:imm ,EXTop(拓展方式)

输出端口:ex_imm

5.DM

输入端口:memaddr(数据存储器写入或读出地址),result (ALU计算结果),memwrite(数据存储器写入信号)

输出端口:memdata (DM读出结果)

6.Controller 

输入信号:special,opcode (用splitter分割后)

输出信号:pcsrc,we,memwrite,regaddr,regdata,EXTop,ALUop,ALUsrc

总设计图纸:

95a93a5538274c9fa10a0ed3a2a95ba1.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摸鱼特等奖选手

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值