组原:定点补码一位乘法器的设计.doc_第1页
组原:定点补码一位乘法器的设计.doc_第2页
组原:定点补码一位乘法器的设计.doc_第3页
组原:定点补码一位乘法器的设计.doc_第4页
组原:定点补码一位乘法器的设计.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课课 程程 设设 计计 报报 告告 课程设计名称 计算机组成原理课程设计计算机组成原理课程设计 课程设计题目 定点补码一位乘法器的设计定点补码一位乘法器的设计 院 系 计算机学院 专 业 计算机科学与技术 班 级 学 号 姓 名 指导教师 完成日期 2011年1月14日 沈阳航空航天大学课程设计报告 1 目目 录录 第第 1 章章 总体设计方案总体设计方案 1 1 1 设计原理 1 1 2 设计思路 2 1 3 设计环境 4 第第 2 章章 详细设计方案详细设计方案 5 2 1 顶层方案图的设计与实现 5 2 1 1 创建顶层图形设计文件 5 2 1 2 器件的选择与引脚锁定 6 2 1 3 编译 综合 适配 7 2 2 功能模块的设计与实现 7 2 2 1 取补模块的设计与实现 7 2 2 2 选择器模块的设计与实现 9 2 2 3 乘数补码移位寄存器模块的设计与实现 12 2 2 4 部分积移位寄存器模块的设计与实现 14 2 2 5 加法器模块的设计与实现 16 2 3 仿真调试 16 第第 3 章章 编程下载与硬件测试编程下载与硬件测试 19 3 1 编程下载 19 3 2 硬件测试及结果分析 19 参考文献参考文献 22 附附 录 电路原理图 录 电路原理图 23 沈阳航空航天大学课程设计报告 1 第 1 章 总体设计方案 1 1 设计原理设计原理 由于机器都采用补码做加减运算 所以设计补码乘法器能避免码制转换 提 高机器效率 在计算两个补码相乘时 可以通过 Booth 算法来实现定点补码一位 乘的功能 布斯 Booth 算法采用相加和相减的操作计算补码数据的乘积 Booth 算法对乘数从低位开始判断 根据后两个数据位的情况决定进行加法 减法还是 仅仅进行移位操作 补码一位乘法的运算规则 1 被乘数一般取双符号位参加运算 2 乘数可取单符号位以决定最后一步是否需要校正 即是否加 补 X 3 乘数末位增设附加位 且初值为 0 部分积初始值为 0 1 n y 补 0 Z 4 被乘数 x 补乘以对应的相邻两位乘数 之差值 再与前 nn yy 1 部分积累加 然后右移一位 乘 2 1 形成该步的部分积累加和 与构成 1 n y n y 各步运算的判断值 以决定如何操 作 见图 1 1Booth 算法操作说明 补 X 图 1 1 Booth 算法操作说明 5 按照上述算法进行 n 1 步操作 但第 n 1 步不再移位 仅根据与的 0 y 1 y 比较结果作相应的运算即可 沈阳航空航天大学课程设计报告 2 1 2 设计思路设计思路 课程设计的要求为 课程设计的要求为 1 采用原码值输入 乘数和被乘数皆为 8 位 2 设计的电路应该包括 ALU 被乘数寄存器 乘数寄存器 部分积寄存器 门 电路和移位电路 课程设计的思路为 课程设计的思路为 1 由于课程设计要求采用原码值输入 就需要设计一个原码值取反码的电路 模块 同时只对符号位取反同时也可以实现求 补 X 2 实现 Booth 算法需添加附加位 并将其初始值置零 此操作通过外部输 1 n y 入来实现的 3 Booth 算法在运算中要将部分积初始值置零 此操作是通过给 FD 寄存器的 清零端一个高电平的脉冲信号 使寄存器的数据全部为 0 即输出的部分积为 00000000 4 取乘数末尾两位来判断 为 00 11 则部分积加 0 为 01 则部分积加被乘数 的补码 为 10 则部分积加乘数相反数的补码 为了实现此操作 需要设计一个 二输入四输出选择器及选择电路 5 乘数逻辑右移一位 部分积算术右移一位 并用乘数最高位存放部分积溢 出的位 此功能的实现 分别设计了乘数移位寄存器 以及部分积移位寄存器 6 依次反复直到原乘数部分只剩下最后两位 由于最后一次只运算不移位 所以在输出时要在部分积移位之前输出结果 7 加统一的时钟信号 保持各部件同步工作 定点补码一位乘法器的设计总框图如图 1 2 所示 定点补码一位乘法器的设 计流程图如图 1 3 所示 沈阳航空航天大学课程设计报告 3 图 1 2 定点补码一位乘法器设计总框图 图 1 3 定点补码一位乘法器设计流程图 沈阳航空航天大学课程设计报告 4 1 3 设计环境设计环境 1 硬件环境硬件环境 伟福伟福 COP2000 型计算机组成原理实验仪型计算机组成原理实验仪 COP2000 计算机组成原理实验系统由实验平台 开关电源 软件三大部分组 成 实验平台上有寄存器组 R0 R3 运算单元 累加器等组成 COP2000 计算机 组成原理实验系统各单元部件都以计算机结构模型布局 系统在实验时即使不借 助 PC 机 也可实时监控数据流状态及正确与否 实验系统的软硬件对用户的实 验设计具有完全的开放特性 系统提供了微程序控制器和组合逻辑控制器两种控 制器方式 系统还支持手动方式 联机方式 模拟方式三种工作方式 系统具 备完善的寻址方式 指令系统和强大的模拟调试功能 COP2000 集成调试软件集成调试软件 COP2000 集成开发环境是为 COP2000 实验仪与 PC 机相连进行高层次实 验的配套软件 它通过实验仪的串行接口和 PC 机的串行接口相连 提供汇编 反汇编 编辑 修改指令 文件传送 调试 FPGA 实验等功能 该软件在 Windows 下运行 2 EDA 环境环境 Xilinx foundation f3 1 设计软件设计软件 Xilinx foundation f3 1 是 Xilinx 公司的可编程期间开发工具 该平台功能强 大 主要用于百万逻辑门设计 该系统由设计入口工具 设计实现工具 设计验 证工具三大部分组成 沈阳航空航天大学课程设计报告 5 第 2 章 详细设计方案 2 1 顶层方案图的设计与实现顶层方案图的设计与实现 顶层方案图是用来实现补码一位乘法器乘数与被乘数的输入和取补 以及结 果的寄存和输出 二输入三输出选择器和运算控制电路 移位电路等逻辑功能 采用原理图设计输入方式完成 电路实现基于 XCV200 可编程逻辑芯片 在完成 原理图的功能设计后 把输入以及输出信号安排到 XCV200 指定的引脚上去 实 现芯片的引脚锁定 2 1 1 创建顶层图形设计文件创建顶层图形设计文件 顶层图形文件的设计实体主要由取补电路 封装为 QUBU 二输入三输出 选择器 基于 D2 4E 的改装 乘数移位寄存器 封装为 U11 部分积移位寄存 器 基于 FD 实现 加法器 基于 ADD8 的改装 等模块组装而成的一个完整 的可编程逻辑芯片 U30 顶层图形文件结构如图 2 1 所示 图 2 1 顶层图形文件结构图 沈阳航空航天大学课程设计报告 6 2 1 2 器件的选择与引脚锁定器件的选择与引脚锁定 1 器件的选择 由于硬件设计环境是基于伟福 COP2000 型计算机组成原理实验仪和 XCV200 实验板 故采用的目标芯片为 Xilinx XCV200 可编程逻辑芯片 2 引脚锁定 把顶层图形文件中的所有输入 输出信号对应到 Xilinx XCV200 芯片指定的 引脚上去 实现芯片的引脚锁定 各信号及 Xilinx XCV200 芯片引脚对应关系如 表 2 1 所示 表表 2 1 信号和芯片引脚对应关系信号和芯片引脚对应关系 图形文件中的输入 输出信号XCV200芯片引脚信号 GRDP50 ZCLOCKP213 FJWP47 CLRP49 VCCP48 S1P80 S2P81 S3P82 S4P84 S5P85 S6P86 S7P87 Y1P95 Y2P96 Y3P97 Y4P100 Y5P101 沈阳航空航天大学课程设计报告 7 Y6P102 Y7P103 E0P63 E1P73 E2P72 E3P71 E4P70 E5P66 E6P65 E7P64 2 1 3 编译 综合 适配编译 综合 适配 利用 Xilinx foundation f3 1 的原理图编辑器对顶层图形文件进行编译 并最 终生成网络表文件 利用设计实现工具经综合 优化 适配 生成可供时序仿真 的文件和器件下载编程文件 2 2 功能模块的设计与实现功能模块的设计与实现 功能模块主要由取补电路 二输入三输出选择器 移位寄存器 部分积移位 寄存器等模块组成 由 Xilinx XCV200 可编程逻辑芯片分别实现 2 2 1 取补模块的设计与实现取补模块的设计与实现 进行求补的方法就是从数的最右端开始 由右向左 直到找出第一个 1 0 a 例如 则以左的每一个输入位都求反 即 1 变 0 0 变 1 最右1 i ani 0 i a 端的起始链式输入必须永远置成 0 当控制信号线为 1 时 启动对 2 1 CE 求补的操作 当控制信号线为 0 时 输出将和输入相等 可以利用符号位E 来作为控制信号 E 1 创建求乘数补码电路模块设计原理图 创建求乘数补码电路模块设计原理图 求乘数补码电路原理结构如图 2 2所示 实际电路如图 2 2所示 a b 沈阳航空航天大学课程设计报告 8 图 2 2 求乘数补码电路模块逻辑框图 a 图 2 2 实际取补电路 b 2 创建元件图形符号 创建元件图形符号 其元件图形符号如图 2 3 所示 沈阳航空航天大学课程设计报告 9 图 2 3 求乘数补码电路模块元件图形符号 3 功能仿真 功能仿真 对创建的取补模块进行功能仿真 验证其功能的正确性 可用 Xilinx foundation f3 1 编译器的 Simulator 模块实现 仿真结果如图 2 4 所示 图 2 4 取补模块仿真结果 2 2 2 选择器模块的设计与实现选择器模块的设计与实现 选择器主要由一个 D2 4E 芯片和逻辑门电路控制选择输出 输入端输入的值 沈阳航空航天大学课程设计报告 10 分别为 以及 00000000 八个输入端为一组 补 X 补 X D2 4E 芯片的和端的 0 和 1 控制 当为 01 0 A 1 A 0 D 1 D 2 D 3 D 10A A 时 输出为高电平 即为输出值为 1 通过逻辑门电路实现输出为 2 D 2 D 的值 当为 10 时 输出为为 高电平 即为输出值为 1 通过逻 补 X 10A A 1 D 1 D 辑门电路实现输出为的值 当为 00 时 输出为为 高电平 即为 补 X 10A A 0 D 输出值为 1 同时当为 11 时 输出为为 高电平 即为输出值为 0 D 10A A 3 D 3 D 1 由于此时和输出值为相同 故此两条数据线通过一个或门输出一条数据 0 D 3 D 线 此时输出值为 00000000 正好实现三输入一输出的选择器模块 1 创建选择器设计原理图 创建选择器设计原理图 三输入一输出选择器原理结构如图 2 5 所示 图 2 5 选择器原理框图 沈阳航空航天大学课程设计报告 11 2 创建元件图形符号 创建元件图形符号 其元件图形符号如图 2 6 所示 图 2 6 选择器元件图形符号 3 功能仿真 功能仿真 对创建的三输入一输出器模块进行功能仿真 验证其功能的正确性 可用 Xilinx foundation f3 1 编译器的 Simulator 模块实现 仿真结果如图 2 7 所示 a b 沈阳航空航天大学课程设计报告 12 c d 图 2 7 选择模块仿真结果图 2 2 3 乘数补码移位寄存器模块的设计与实现乘数补码移位寄存器模块的设计与实现 乘数补码移位寄存器模块由八个二选一选择器 MUXCY 9 个寄存器 FD 组成 端输入的是 1 个低电平信号其余都为高电平信号 MUXCY 选择器由控制CP 信号端 输入端和 以及输出端组成 当端为低电平信号时 选择输S i D i COS 出值 当端为高电平信号时 选择输出值 每次的输出信号寄存到 FD 中 i DS i C MUXCY 输出端连接下一位的寄存器 这样就实现了移位寄存的功能 O 移位的和两个输出端恰好为和的两个值 和的两个值要 07 Y 08n y 1 n y n y 1 n y 分别接到选择器的和端 0 A 1 A 1 创建乘数补码移位寄存器模块设计原理图 创建乘数补码移位寄存器模块设计原理图 乘数补码移位寄存器原理结构如图 2 8 所示 沈阳航空航天大学课程设计报告 13 图 2 8 乘数补码移位寄存器原理结构图 2 创建元件图形符号 创建元件图形符号 其元件图形符号如图 2 9 所示 图 2 9 乘数补码移位寄存器电路模块元件图形符号 沈阳航空航天大学课程设计报告 14 3 功能仿真 功能仿真 对创建的乘数补码移位寄存器模块进行功能仿真 验证其功能的正确性 可 用 Xilinx foundation f3 1 编译器的 Simulator 模块实现 仿真结果如图 2 10 所示 图 2 10 乘数补码移位寄存器模块仿真结果 2 2 4 部分积移位寄存器模块的设计与实现部分积移位寄存器模块的设计与实现 部分积移位寄存器模块是由一个 8 位寄存器 FD8CE 和四个逻辑门电路组 成 实现部分积移位寄存功能 由于部分积的初始值为 00000000 这样就要 求 FD8CE 寄存器的初始值为 00000000 只需要给清零端一个高电平的信CLR 号即可实现 进行部分积移位时 要求移位过程中保证符号位相同 这样就需要把第一位 符号位复制为两个数 而其余的 6 位相继向下串一位 这样就实现了移位功能 同时还保证的符号位相同 1 部分积移位寄存器设计原理图 部分积移位寄存器设计原理图 部分积移位寄存器原理结构如图 2 11 所示 沈阳航空航天大学课程设计报告 15 图 2 11 部分积移位寄存器原理图 2 功能仿真 功能仿真 对创建的寄存器模块进行功能仿真 验证其功能的正确性 可用 Xilinx foundation f3 1 编译器的 Simulator 模块实现 仿真结果如图 2 12 所示 图 2 12 部分积移位寄存器仿真结果 沈阳航空航天大学课程设计报告 16 2 2 5 加法器模块的设计与实现加法器模块的设计与实现 加法器模块是在系统提供的八位加法器 ADD8 的基础上 根据实际情况 改造而来 由于系统 ADD8 的输入输出的高低位与前几个模块的正好相反 所以 为了实现功能对 ADD8 进行了改装 改装后内部结构如图 2 13 所示 图 2 13 改装后加法器内部结构图 2 3 仿真调试仿真调试 仿真调试主要验证设计电路逻辑功能 时序的正确性 本设计中主要采用功 能仿真方法对设计的电路进行仿真 通过多组数据进行仿真测试 分别对两个正 沈阳航空航天大学课程设计报告 17 数相乘 一个正数与一个负数相乘 两个负数相乘结果进行检验 1 建立仿真波形文件及仿真信号选择 建立仿真波形文件及仿真信号选择 功能仿真时 首先建立仿真波形文件 选择仿真信号 对选定的输入信号设 置参数 选定的仿真信号和设置的参数如表 2 3 所示 表表 2 32 3 仿真信号相关参数表仿真信号相关参数表 输入信号输入信号输出信号输出信号 S1S1 S7S7Y1Y1 Y7Y7CLRCLRCLOCKCLOCKFJWFJWI0I0 I7I7 01110110111011 00001000000100100000001000000001010101010101010 0 0000001100000011 11110111111011 00001000000100100000001000000001010101010101010 0 1111110011111100 11110111111011 10001001000100100000001000000001010101010101010 0 0000001100000011 2 功能仿真结果与分析 功能仿真结果与分析 仿真结果分别如图 2 14 所示 a b c 沈阳航空航天大学课程设计报告 18 a b c 图 2 14 功能仿真波形结果 由表 2 3 和图 2 14 所示信息对比可知 多组仿真都完全正确 说明本设计能 实现补码一位乘法计算功能 沈阳航空航天大学课程设计报告 19 第 3 章 编程下载与硬件测试 3 1 编程下载编程下载 利用 COP2000 仿真软件的编程下载功能 将得到 bit 文件下载到 XCV200 实 验板的 XCV200 可编程逻辑芯片中 3 2 硬件测试及结果分析硬件测试及结果分析 利用 XCV200 实验板进行硬件功能测试 定点补码一位乘法器的输入数据通 过 XCV200 实验板的输入开关实现 输出数据通过 XCV200 实验板的 LED 指示 灯实现 其对应关系如表 3 1 所示 表表 3 1 XCV200 实验板信号对应关系实验板信号对应关系 XCV200芯片引脚信号芯片引脚信号XCV200实验板实验板 P95K0 6 P96K0 5 P97K0 4 P100K0 3 P101K0 2 P102K0 1 P103K0 0 P80K1 6 P81K1 5 P82K1 4 P84K1 3 P85K1 2 P86K1 1 P87K1 0 P63K2 7 P73K2 0 P72K2 1 P71K2 2 P70K2 3 P66K2 4 P65K2 5 P64K2 6 沈阳航空航天大学课程设计报告 20 P213P213 P48K3 1 P49K3 2 P47K3 3 利用表 2 3 中的输入参数作为输入数据 逐个测试输出结果 即用 XCV200 实验板的开关 K0 K1 及 K2 控制数据输入 同时观察数码显示管和发光二极管 显示结果 得到如图 3 1 所示的硬件测试结果 a b c a 沈阳航空航天大学课程设计报告 21 b c 图 3 1 硬件测试结果图 沈阳航空航天大学课程设计报告 22 参考文献 1 曹昕燕 EDA 技术实验与课程设计 M 北京 清华大学出版社 2006 2 范延滨 微型计算机系统原理 接口与 EDA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论