![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CPU实验学习
文章平均质量分 58
score_one
知识使人奋发,学习使人头秃。
展开
-
AZ Processor -----(3)分模块实现
(1)cpu存储区域的通用寄存器。指令集最大可以指定三个寄存器作为操作数,其中俩个为读取值,一个为写入值因此寄存器堆需要有俩个读取端口和一个写入端口。原创 2023-04-14 09:41:05 · 62 阅读 · 0 评论 -
实验6补充修改部分,关于CPU模块仿真
之前的实验6仿真部分,由于端口定义问题,IF阶段出现无法设置reg类型的问题。这边做补充修改:在设计模块中,input类型才可以作为仿真时reg类型实例化,output类型只能作为仿真时的wire类型,无法参与仿真过程块。强制修改一个wire变量为reg变量,无法实现,因为一个变量会同时传递到多个模块,可能会是input,可能会是output。这边解决办法是将变量多定义一个,单独用于拥有input类型的模块,、(例如new_pc在IF模块中作为input,可以用reg类型,而在cpu控制模块作为ou原创 2022-02-11 23:06:51 · 370 阅读 · 0 评论 -
实验6:CUP的控制模块实现&&CPU全部模块连接
1.CPU控制模块cpu控制模块进行对保存CPU状态的控制寄存器进行管理,并且对流水线进行控制cpu控制模块中设有设置和保存CPU状态的控制寄存器主要处理流水线刷新延迟、程序中断等异常。这一模块涉及中断处理、流水线刷新延迟,知识点较杂乱,需要配合相关资料进一步研究。端口定义:part8.CPU控制模块 cpu控制模块进行对保存CPU状态的控制寄存器进行管理,并且对流水线进行控制 cpu控制模块中设有设置和保存CPU状态的控制寄存器 ctrl:原创 2022-02-11 20:12:41 · 1287 阅读 · 0 评论 -
实验5:CUP的内存MEM阶段实现
Memory阶段(MEM)mem阶段主要负责内存的访问。在执行LDW和STW等指令时,内存访问操作是在MEM阶段进行的端口模块定义:part7.MEM阶段mem阶段主要负责内存的访问。在执行LDW和STW等指令时,内存访问操作是在MEM阶段进行的1.mem_ctrl:基于EX阶段流水线寄存器输入的内存操作(ex_mem_op),实施内存访问操作 /********** EX/MEM pipeline register **********/ input wire ex_原创 2022-02-10 20:00:07 · 989 阅读 · 0 评论 -
实验4:CUP的执行EX阶段实现
Execution(EX)阶段EX阶段主要进行运算和中断检测操作。EX阶段由算术逻辑运算单元和流水线寄存器构成。端口定义:part6.EX阶段EX阶段主要进行运算和中断检测操作。EX阶段由算术逻辑运算单元和流水线寄存器构成。1.ALU根据输入指定的操作对数据进行处理,并输出处理结果。ALu的输入为一个操作码和俩个数据,输出为运算结果和溢出信号alu: input wire [`WordDataBus] in_0, // Input 0 input wire [`WordDat原创 2022-02-10 14:33:17 · 459 阅读 · 0 评论 -
实验3:CUP的译码ID阶段实现
ID阶段(Instruction Decode)ID阶段对指令进行解码并生成必要的信号。数据的直通、Load冒险的检测,分支的判定都在这个阶段进行各模块和端口定义:1.指令解码器 decoder: /********** IF/ID pipeline register **********/ input wire [`WordAddrBus] if_pc, // Program counter input wire [`WordDataBus] if_insn, // I原创 2022-02-09 15:53:40 · 774 阅读 · 0 评论 -
实验前准备:CPU学习实验的头文件.vh
代码来源:《CPU自制入门》1.bus.vh/* -- ============================================================================ -- FILE NAME : bus.h -- DESCRIPTION : Bus header -- ---------------------------------------------------------------------------- -- Revision Da原创 2022-02-07 23:33:44 · 596 阅读 · 0 评论 -
AZ Processor ---CPU(1)流水线
CPU1.流水线处理经典流水线–5级IF:读取指令ID:解码EX:执行,ALUMEM:内存访问WB:结果写会寄存器堆/*****************************************************************/流水线可以使处理效率提升,减少其他等待时间2.流水线冒险:A。构造冒险由于硬件资源的竞争,操作无法同时进行例如:IF阶段和MEM阶段都涉及内存访问。冯诺依曼架构:指令和数据放在一起,而访问内存使用的总线是共享资源,无法同时进原创 2022-01-23 18:15:14 · 350 阅读 · 0 评论 -
AZ Processor -----(2)总设计思路
基于RISC架构的32位CPU,经典5级流水线AZ Processor框架图:(1)组成部分:IF阶段、ID阶段、EX阶段、MEM阶段、cpu通用寄存器(gpr)、CPU控制单元、CPU直接访问的专用存储器SPM。虚线中的WB阶段,实际在结果写回通用寄存器或CPU控制单元实现,本身这个模块并不存在。(2)IF阶段和MEM阶段通过总线与内存和I/O相连。需要每个周期都向流水线提供指令或数据。因此设置了可以高速访问的CPU专用SPM。SPM与缓存类似,但分配有地址空间的存储器。(3)分支的判定在ID原创 2022-01-24 21:08:03 · 262 阅读 · 0 评论 -
实验1:创建一个简单的BUS总线
经典AMBA总线系统:(主要是AHB和APB)组成主要有四部分:master,slaver,arbiter,decodermaster是BUS主控部分,例如CPUslaver是BUS从属部分,例如ROMarbiter是BUS仲裁器,用于判断多个主控的优先级decoder是地址解码器,用于判断控制哪个从属AHB总线用于高性能,高时钟工作频率模块。AHB在AMBA架构中为系统的高性能运行起到了基石作用。AHB为高性能处理器,片上内存,片外内存提供接口,同时桥接慢速外设。高性能,数据传输,多总线主控制原创 2022-02-05 17:13:06 · 881 阅读 · 0 评论 -
实验2:CUP的取指IF阶段实现
1.通用寄存器,三个通用寄存器,两个读取,一个写入gpr input wire clk, input wire reset, /********** 读端口0 **********/ input wire [`RegAddrBus] rd_addr_0, // Read address 位宽5 output wire [`WordDataBus] rd_data_0, // Read data 位宽32 /********** 读端口1 ********原创 2022-02-07 23:00:36 · 388 阅读 · 0 评论