CPU设计文档1

preview
需积分: 0 0 下载量 15 浏览量 更新于2022-08-08 收藏 434KB DOCX 举报
在本文中,我们将深入探讨一个基于Logisim的单周期CPU设计,主要关注其关键组件:IFU(取指令单元)、GRF(通用寄存器组)、ALU(算术逻辑单元)、DM(数据存储器)、EXT(立即数扩展器)以及Controller(控制器)。每个组件都有其特定的功能和端口定义,它们协同工作以实现CPU的基本操作。 1. IFU(取指令单元) IFU是CPU的第一步,负责从内存中获取指令。它由PC(程序计数器)和IM(指令存储器)组成。IFU有三个端口定义: - ifJI1:指示当前指令是否为J型指令。 - ifBcomI1:检查指令是否满足跳转条件。 - resetI1:异步复位信号,用于初始化PC为0x00000000。当复位信号有效时,PC被设置为0;当时钟上升沿到来,IFU根据PC的低4位从IM读取指令。如果指令满足跳转条件,PC会根据指令中的立即数或J型指令的32位地址进行更新。 2. GRF(通用寄存器组) GRF存储数据,包括读取和写入操作。它有五个输入端口(A1, A2, A3, Data, WE)和两个输出端口(RD1, RD2)。当复位信号有效时,所有寄存器数据清零。读操作从指定的寄存器中读取数据,写操作在WE信号有效时,将Data写入A3指定的寄存器。 3. ALU(算术逻辑单元) ALU执行基本的算术和逻辑运算。它有四个端口:AI32和BI32是输入,CO32是输出,notzeroO1用于判断运算结果是否为零。根据sel信号,ALU可以执行加法、减法、与、或操作,并不检查溢出。 4. DM(数据存储器) DM存储和检索数据。它接收地址(address),数据(data)和写入使能(WE)信号,当WE有效且时钟上升沿时,将data写入address指定的位置。读取操作时,从address读取数据并输出。 5. EXT(立即数扩展器) EXT将16位立即数扩展为32位。它有两个输入:AI16是16位立即数,selI2选择扩展方式(无符号、有符号、后接零符号扩展或加载高位)。EXT的输出BO32是扩展后的32位数值。 6. Controller(控制器) Controller解析指令并生成控制信号。它接收指令内容(Instr),然后根据opcode和func决定操作,例如选择GRF的B源、ALU操作、EXT扩展模式等。Controller的输出包括各种使能信号和选择器控制,以驱动整个CPU的执行流程。 通过这些组件,单周期CPU能够读取、解码指令,执行算术和逻辑操作,访问存储器,并根据条件进行分支。每个部分都有明确的职责,共同确保了CPU的正常运行。理解这些基本组件对于理解和设计CPU至关重要。