第一范文网 - 专业文章范例文档资料分享平台

体系结构实验手册

来源:用户分享 时间:2025/6/6 17:45:43 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

《高级计算机体系结构》实验

三、实验环境

软件:QuartusII 6,ModelSim

硬件平台:GW48-SOPC/DSP EP1C6Q240

四、实验步骤

1. 各个子模块的设计和Verilog实现 (1) PC寄存器

PC(program counter)是专用寄存器,CPU使用它从存储器中取指令。每执行一条指令PC加4。Clk为时钟信号,rst为复位信号。PC寄存器的部分程序:

always @(posedge clk) begin if(rst) //当有复位信号时,输出为0; dout =32'h00000000; else dout = din; end

(2) 二选一的数据选择器

二选一的数据选择器电路框图如图二所示: 输入端是a、b,输出端为c,sel为控制端。当sel为0时,输出端c输出a信号,当sel为1时,输出端c输出b信号,w为数据宽度参数。程序为:

module mux1(a,b,sel,c); parameter w = 32;

《高级计算机体系结构》实验

input [w-1:0] a,b; input sel; output [w-1:0] c; assign c = (sel == 0)?a:b; endmodule

(3) 符号扩展和移位

本实验中的符号扩展是在数据使用之前进行0扩展或符号扩展,是把16位的数据扩展成32的数据。din为16位输入数据,dout为32为输出数据,程序如下:

module signextend(din,dout); input [15:0] din; output [31:0] dout; assign dout[15:0] = din; assign dout[31:16] = 16'h0000; endmodule

(4) 寄存器RegFile模块

根据输入的寄存器地址读写寄存器,n1为源操作数1的寄存器地址, n2为源操作数2的寄存器地址,we为写寄存器信号,nd 写寄存器的地址,di 写寄存器的数据,q1为源操作数1的数据,q2为源操作数2的数据。当we为0时,q1输出以源操作数1为地址的数据,q2输出以源操作数2为地址的数据,当we为1时,把di输入的数据写到以nd为地址的寄存器中。部分程序如下:

reg [31:0] r[31:0]; //定义寄存器; assign q1 = (n1==0)?0:r[n1]; assign q2 = (n2==0)?0:r[n2]; always @(posedge clk) begin if(we) r[nd] = di; end endmodule

(5) ALU模块

算术逻辑单元(ALU:aritl-irnetic logic unit)的设计是CPU设计中重要的一个环节。可以这样说,微处理器中最重要的地方是ALU,它是CPU真正处理数据的地方。ALU使用的数据来自寄存器(Register),它读取寄存器中的数据并进行一些计算(如对两个数据相加、对两个数据进行逻辑或运算等等),然后把计算结果返回到寄存器中,最后再把寄存器中的结果返回到主内存中。根据控制信号aluc确定执行功能如图三所示:

assign zero = (c==0)?1:0; always @(a,b,aluc) begin case(aluc) ADD: c = a + b; SUB: c = a - b; AND: c = a & b;

《高级计算机体系结构》实验

end

OR: c = a | b; SLT: c = (a

(6) Inst Mem模块和Data Mem模块的实现

Inst Mem是32位的指令寄存器,存放着指令数据。Data Mem是数据寄存器,当we信号为1时,写寄存器。部分程序如下:

reg [31:0] ram[31:0]; always @(negedge clk ) begin if (we) begin

ram[addr] = wd;

end

data = ram[addr]; end

(7) Control控制器模块

由指令操作码op和功能码func确定指令的具体功能如下表所示:

控制器中有8条信号线,分别是:jump,memtoreg,branch,whitemem,aluc[2:0],alusrcb,writereg,regdes,分别控制不同的器件。如下表所示:

《高级计算机体系结构》实验

控制器的部分程序为:

assign madd = (op[5:0]== 6'b000000 && func[5:0] == 6'b100000 )?1:0; assign msub = (op[5:0] == 6'b000000 && func[5:0] == 6'b100010 )?1:0; assign mand = (op[5:0] == 6'b000000 && func[5:0] == 6'b100100 )?1:0; assign mor = (op[5:0] == 6'b000000 && func[5:0] == 6'b100101 )?1:0; assign mslt = (op[5:0] == 6'b000000 && func[5:0] == 6'b101010 )?1:0; assign mlw = (op[5:0] == 6'b100011 )?1:0; assign msw = (op[5:0] == 6'b101011 )?1:0; assign mbeq = (op[5:0] == 6'b000100 )?1:0; assign mj = (op[5:0] == 6'b000010 )?1:0; assign alusrcb = (mlw || msw)?1:0; assign writereg = (mand || mor || madd || mslt || mlw ||msub)?1:0; assign aluc[2] = (msub || mslt || mbeq)?1:0; assign aluc[1] = (msw || msub || madd || mslt || mlw || mbeq)?1:0; assign aluc[0] = (mor || mslt)?1:0; assign branch = (mbeq && zero)?1:0; assign jump = (mj)?1:0; assign memtoreg = (mlw)?1:0; assign regdes = (mlw)?1:0; assign writemem = (msw)?1:0; (8)

2. 编译和仿真

(1)对源程序进行语法检查和编译。

对程序进行分析综合,检查语法规范;如果没有问题则编译整个程序,使用 。如果出现问题,则对源程序进行修改,直至没有问题为止。 (2)波形仿真。

Quartus II内置波形编辑程序(Waveform Editor)可以生成和编辑波形设计文件,从而设计者可观察和分析模拟结果。Quartus II中的仿真包括功能仿

《高级计算机体系结构》实验

真和时序仿真,功能仿真检查逻辑功能是否正确,不含器件内的实际延时分析;时序仿真检查实际电路能否达到设计指标,含器件内的实际延时分析。两种仿真操作类似,只需在Processing菜单中选择Simulater Tool,在其Simulater mode中进行选择即可。

现以时序仿真为例,介绍仿真的具体操作过程:

① 新建一个波形文件,只是在弹出页式对话框后选择Other Files页面的Vector Waveform File。

② 在波形文件中加入所需观察波形的管脚:在Name中单击右键,选择Insert Node or bus...选项,出现Insert Node or bus对话框,此时可在该对话框的Name栏直接键入所需仿真的管脚名,也可点击Node Finder...按钮,将所有需仿真的管脚一起导入。在Pins下拉列表框中选择合适的选项,点击List按钮,将所需仿真的管脚移至Select Noder框中。点击OK进入波形。

③ 给输入管脚指定仿真波形 :分别选中输入管脚,使用波形编辑器对其输入波形进行编辑。最后保存波形文件。 ④ 点击按钮,进行波形仿真。

3. 引脚配置及测试数据

选择Assignment菜单的pins选项,进入管脚分配界面。在管脚分配之前确定类别栏按钮,管脚过滤栏和分色显示按钮都处于有效状态,按下类别栏的Pin按钮。管脚分配也与实际电路密切相关,在管脚分配栏中,将程序中的输入输出脚分配到管脚上,并保存。并进行整体编译文件。 4、 下载。

实验电路板接电源,确保其供电正常;连接下载电缆;点击进入下载界面,进行下载。击Start按钮开始下载。 五、思考题

搜索更多关于: 体系结构实验手册 的文档
体系结构实验手册.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6yx2b6fdje8wrp6237us_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top