教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 说明书 >

《单周期CPU的设计与实现》-实验指导书(3)

来源:网络收集 时间:2026-04-12
导读: 计算机组成原理实验单周期CPU的设计与实验 寄存器堆的A_addr和B_addr的输入来自指令,分别只有一种输入,W_addr有2种,而Data有4种输入,具体输入见图3-5。 Write A_data A_addr B_addr MUX rs rt rd PC+4 A ALU B

计算机组成原理实验单周期CPU的设计与实验

寄存器堆的A_addr和B_addr的输入来自指令,分别只有一种输入,W_addr有2种,而Data有4种输入,具体输入见图3-5。

Write A_data A_addr B_addr MUX rs rt rd PC+4 A ALU B We Do A Data Mem Di f W_addr B_data MUX Data 图3-5 寄存器堆的输入

寄存器堆的W_addr和Data端的输入信号由控制器(Control Unit)根据指令译码产生的控制信号reget、jal和m2reg来选择。

在图3-5中模块f的输入为5位的寄存器号reg_dest和jal,输出为W_addr,其Verilog HDL语句为:

Assign W_addr = reg_dest | {5{jal}};

MUX m2reg reget jal 计算机科学与工程学院 9

计算机组成原理实验单周期CPU的设计与实验

4. 基本功能部件的设计与实现

一个CPU主要由ALU(运算器)、控制器、寄存器堆、取指部件及其它基本功能部件等构成。

在本实验中基本功能部件主要有:32位2选1多路选择器、32位4选1多路选择器、5位2选1多路选择器、D触发器、移位器及32位加/减法器。

4.1 32位2选1选择器的设计与实现

多路选择器是计算机逻辑电路设计中最重要的基本逻辑电路之一,也是基于数据选择通路CPU的重要部件。32位2选1选择器的逻辑框图如图4-1所示。

Sel

Function:

A[31:0] B[31:0] M U X O[31:0]

Sel = 0:O = A Sel = 1:O = B

图4-1 32位2选1逻辑框图

1. 设计步骤 ? Step 1:新建工程

启动ISE软件,然后选择菜单File→New Project,弹出New Project Wizard对话框,在对话框中输入工程名Single_Cycle_CPU,并指定工作路径D:\\Single_Cycle_CPU(注:工程名并不需要和工作路径同名),如图4-2所示。

图4-2 New Project Wizard对话框

计算机科学与工程学院 10

计算机组成原理实验单周期CPU的设计与实验

输入完工程名和工作路径后点击Next进入下一页:Project Settings,设置设备和工程属性,选用Spartan6 XC6SLX45芯片,采用CSG484封装,这是本实验开发板所用的芯片,如图4-3所示。

图4-3 Project Settings对话框

在图4-3中点击Next进入下一页:Project Summary,这里显示了新建工程的信息,确认无误后,点击Finish就可以建立一个新的工程了,如图4-4所示。

图4-4 Project Summary对话框

? Step 2:模块(Module)设计

在ISE集成开发环境中(如图4-5所示),在工程管理区任意位置单击鼠标右键,在弹出的菜单中选择New Source命令,会弹出如图4-6所示的New Source Wizard对话框:Select SourceType。

计算机科学与工程学院 11

计算机组成原理实验单周期CPU的设计与实验

工程管理区

源代码编辑区

过程管理区

信息显示区

图4-5ISE集成开发环境

图4-6Select Source Type对话框

在图4-6中选择Verilog Module,并输入Verilog文件名:MUX32_2_1,代码存放位置(Location)改为D:\\Single_Cycle_CPU\\Code。将代码放在D:\\Single_Cycle_CPU\\Code文件夹中主要是为了方便管理。然后点击Next按钮进入端口定义对话框:Define Module,如图4-7所示。

图4-7Define Module对话框

在图4-7中, Modulename栏用于输入模块名,这里是MUX32_2_1,下面的列表框用于端口的定义。Port Name表示端口名称,Direction表示端口方向(可选择为input、

计算机科学与工程学院

12

计算机组成原理实验单周期CPU的设计与实验

output或inout),MSB表示信号最高位,LSB表示信号最低位,对于单信号的MSB和LSB不用填写。端口定义这一步略过,在源程序中自行添加。定义完端口后,点击Next按钮进入下一步,然后点击Finish按钮完成模块创建。

输入模块代码:

module MUX32_2_1(

input [31:0] A, input [31:0] B, input Sel, output[31:0] O );

assign O = Sel? B : A; endmodule

代码输入完成后,首先检查Verilog HDL语法:在工程管理区选中要检查的模块,在过程管理区双击Synthesize – XST→Check Syntax。如果有语法错误,会在信息显示区给出指示,请检查调试。如果没有语法错误,在模拟仿真前要进行Verilog HDL代码综合。

? Step 3:综合(Synthesize)

所谓综合,就是将HDL语言、原理图等设计输入翻译成由与、或、非门和RAM、触发器等基本逻辑单元的逻辑连接(网表),并根据目标和要求(约束条件)优化生成的RTL(Real Time Logistics)层连接。

完成了设计输入及语法检查后就可以进行综合。在工程管理区的View中选择Implementation,并选中要综合的模块MUX32_2_1,然后在过程管理区双击Synthesize-XST,就开始综合过程,如图4-8所示。

图4-8Running: Synthesis

综合错误会在信息显示区给出指示,如果代码过于行为化而不能转换成电路,称为不可综合代码,表示ISE无法转换成对应的电路,需要修改你的设计代码。如果综合通过,表示你设计的代码可以转换成RTL层描述,称为可综合代码。你可以通过View RTL Schematic查看综合后的RTL层电路,如图4-9所示。

计算机科学与工程学院

13

…… 此处隐藏:825字,全部文档内容请下载后查看。喜欢就下载吧 ……
《单周期CPU的设计与实现》-实验指导书(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/449330.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)