湘潭大学计算机组成原理RAM实验,湘潭大学 计算机组成与原理 算术逻辑单元ALU设计 实验报告.pdf...

湘 潭 大 学 实 验 报 告 课程名称 计算机原理与设计 实验名称 算术逻辑单元ALU设计实验 页数 专业 班级 同组者姓名 无 组别 学号 姓名 实验日期 一 实验目的 a 理解算术逻辑单元 ALU 的工作原理 b 掌握算术逻辑单元 ALU 的设计方法 c 验证 32 位算术逻辑单元 ALU 的加 减 与 移位功能 d 按给定数据 完成几种指定的算术和逻辑运算 二 实验要求 1 做好实验预习 掌握运算器的数据传送通路和 ALU 的功能特性 并熟 悉本实验中所用的控制台开关的作用和使用方法 2 写出实验报告 内容是 实验目的 按理论分析值填写好表 1 2 表 1 3 给出对应的仿真波形 列表比较实验数据 2 的理论分析值与实验结果值 并对结果进行分 析 实验结果与理论分析值比较 有没有不同 为什么 通过本实验 你对运算器 ALU 有何认识 有什么心得体会 三 实验原理 算术逻辑单元 ALU 的设计如图 1 1 所示 其中运算器 addsub32 能实现 32 位的加减运算 参加运算的两个 32 位数据分别为 A 31 0 和 B 31 0 运算模式由 aluc 3 0 的 16 种组合决定 而 aluc 3 0 的值由 4 位 2 进制 计数器 LPM COUNTER 产生 计数时钟是 Sclk 图 1 1 r 31 0 为输出 结果 Z 为运算后的零标志位 ALU 功能如表 1 1 所示 表 1 1 ALU 的运算功能 选择端 aluc ALU 功能 3 2 1 0 0 0 0 BAR加 0 0 1 BAR与 0 1 0 BAR 1 0 0 BAF 1 0 1 BAR 1 1 0 位逻辑左移将16BR 0 0 1 1 位逻辑左移 0 4 ABR 0 1 1 1 位逻辑右移 0 4 ABR 1 1 1 1 位算数右移 0 4 ABR 注 1 表示每一位都移至下一更高有效位 是逻辑或 加 是算术加 四 实验内容 1 用 Verilog HDL 实现输入暂存器 lpm latch 的功能 及模式选择计数器 LPM COUNTER 的功能 2 用 Verilog HDL 表达整个 ALU 实验电路的功能 对电路进行仿真 引脚锁定 并在实验台上实现其功能 3 用 Verilog HDL 设计一个 64 位的 ALU 实现基本的算术逻辑运算 4 对 ALU 进行算术运算和逻辑运算的功能仿真 并记录仿真波形 五 实验环境与设备 GW48CP 主系统 pc机 六 实验代码设计 含符号说明 ALU代码 module alu a b aluc r z input 31 0 a b 输入端a b 设置为32位 input 3 0 aluc 输入端aluc 设置为4位 output 31 0 r 输出端r 设置为32位 output z 输出端z assign r cal a b aluc 通过关系为r负值 assign z r function 31 0 cal input 31 0 a b input 3 0 aluc casex aluc 4 bx000 cal a b 4 bx100 cal a b 4 bx001 cal a 4 bx101 cal a b 4 bx010 cal a b 4 bx110 cal b 15 0 16 h0 4 bx011 cal b a 4 0 4 b1111 cal signed b a 4 0 endcase endfunction endmodule ext8to32代码 module ext8to32 a s input 7 0 a 输入端a 设置为8位 output 31 0 s 输出端s 设置为32位 assign s 4 a endmodule 七 实验检验与测试 1 按图 1 1 所示 在本验证性示例中用数据选择开关 键 3 控制 的 高 低电平选择总线通道上的 8 位数据进入对应的数据锁存器 lpm latch 中 即首先将键3输入高电平 用键2 键1分别向DA 7 0 置数01010101 55H 这时在数码管 4 3 上显示输入的数据 55H 然后用键 3 输入 低电平 再用键 2 键 1 分别向 DB 7 0 置数 10101010 AAH 这时在 数码管 2 1 上显示输入的数据 AAH 这时表示在图 1 1 中的两个锁存 器中分别被锁入了加数 55H 和被加数 AAH 可双击图 1 1 的 ALU 元件 了解其 Verilog HDL 描述 2 键 6 控制时钟控制时钟 SCLKSCLK 可设置表 可设置表 1 1 1 1 的的 aluc 3aluc 3 0 0 0 0 F F 现 现 连续按动键连续按动键 6 6 设置操作方式选择 aluc 3 0 0000 加法操作 使数码 管 8 显示 0 以验证 ALU 的算术运算功能 当键 7 设置 clr 0 时 数 码管 6 5 FF 55H AAH FFH 当键 7 设置 cn 1 复位 时 数码管 7 6 5 100 Z 1 键 KEY6 控制时钟 SCLK 设置 aluc 3 0 0 F KEY7 设置 clr 0 或 clr 1 验证 ALU 的逻辑运算功能 并记录实验数据 3 验证 ALU 的算术运算和逻辑运算功能 ALU 模块功能可参照表 1 1 表 1 3 给定了寄存器 DRl DA 7 0 和 DR2 DB 7 0 的数据 十六进制 要 求根据此数据对照逻辑功能表所得的理论值 要求课前完成 与实验结果值进行 比较 均采用正逻辑 0 仿真结果波形图 引脚分配截图 八 测试数据 表 1 2 DA 7 0 DB 7 0 设置值检查 R 7 0 Z 寄存器内容 ALUC3 2 1 0 CLR DA 7 0 DB 7 0 FF 0 01010101 1010101010 0000 0 00 1 01010101 1010101010 0000 1 表 1 3 ALUC3 2 1 0 DA 7 0 DB 7 0 ALU 功能 运算结果 R 7 0 CLR 0 0000 AA 55 R A B FF 0001 AA 55 R A 与 B 00 0010 AA 55 BAR FF 0011 AA 55 R 将 B 逻辑左移 A 4 0 位 00 0100 FF 01 R A B FE 0101 FF 01 R A B FF 0110 FF 01 R 将 B 逻辑左移 16 位 00 0111 FF 01 R 将 B 逻辑右移 A 4 0 位 00 1000 FF FF R A B FE 1001 FF FF 按位与 FF 1010 FF FF 异或 00 1011 FF FF 无 00 1100 55 01 R A B 54 1101 55 01 逻辑或 55 1110 55 01 逻辑左移 16 位 00 1111 55 01 算术右移 4 0 位 08 九 实验过程中出现的问题及处理情况 包括实验现象 原因分析 排故障的 方法等 1 输入代码后 编译程序出现编译错误 反复对照课本 核对代码后修 正错误 编译成功 2 将电脑连接 GW48CP 系统 下载程序时 出现不识别硬件的情况 百度 了解到可能是 pc 端缺少 usb 驱动控件 之后根据网上的教程 利用 Quarstus 工具包中只带的驱动包进行驱动安装 安装成功后 硬件识 别成功 顺利将源程序下载到 GW48CP 系统中 3 在 GW48CP 系统中 测试源程序实际运行情况的时候 出现了与理论推 算不相符的情况 经过反复核对排查 发现是硬件引脚设置错误 对 引脚设置重新修改后 重新编译源程序 并下载到 GW48CP 系统后 测 试结果与理论相符 实验成功

展开阅读全文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值