跳转至

实验 6:加法器与 ALU

欢迎大家阅读我们的实验文档!

留下你的评论!

本次实验已开启评论系统。欢迎大家在相应的页面下方友好交流!

更新说明

Lab6 实验文档的改动情况如下:

  • 2023-11-09:正式发布
  • 2023-11-14:简化实验练习的工作量

1. 实验简介

在之前的实验中,我们已经学会了组合逻辑电路与时序逻辑电路的设计方法与流程。本次实验中,我们将尝试使用我们所学到的知识,搭建出一个计算机系统中的重要组成部分:ALU(Arithmetic Logic Unit,算术逻辑单元),并通过对运算的不同实现方式的对比,来学习如何在设计中权衡时间性能与资源的使用。

在各种运算中,加法是最简单也最基本的,它的性能高低可能会影响到各个运算的性能。在 Lab4 中,我们曾向大家介绍了基础的 1bit 位宽半加器和全加器。在本次实验中,我们将介绍以半加器与全加器为基础的串行进位加法器,以及一种更高效的加法器——超前进位加法器。

在设计完加法器后,我们将尝试以此为基础,逐步实现一个完整的 32 位 ALU。

补充介绍:ALU

ALU 是 CPU 的一种重要组件,它负责实现 CPU 的算术运算和逻辑运算功能。简而言之,CPU 中几乎所有的运算过程,比加减法、比较、位移等,都是由 ALU 来完成的。

Image title

由于我们下学期的组成原理课程中大概率会基于龙芯架构 32 位精简版指令集设计 CPU,故本次实验中的 ALU 也按照龙芯架构的标准来设计。

那么,如何开发 ALU 呢?我们当然可以选择 Verilog 提供的运算符来实现所有的 ALU 运算功能。但是,这样的实现可能会导致 ALU 的性能较差或资源使用量较大,从而对 CPU 的最终性能产生影响,因此我们将尝试自己实现 ALU 中的一些运算。

2. 实验目标

  1. 设计 4 位超前进位加法器,并将其层次扩展到 32 位。

  2. 以超前进位加法器为基础,设计与实现 ALU。

3. 实验内容

  1. 【必做】学习超前进位加法器的设计方法(点击这里跳转);
  2. 【必做】在加法器的基础上,设计一个包括减法器、比较器在内的ALU(点击这里跳转);
  3. 【必做】完成 Lab6 的实验练习题(点击这里跳转)。

4. 提交说明

本次实验需要大家在 BB 平台上在线提交相关内容。你提交的文件结构应当满足下面的文件树格式:

labs/
└── lab6_[姓名]_[学号]_ver[尝试编号]
    ├── figs (图片文件夹,如果没有可以无此文件夹)
    ├── lab6_[姓名]_[学号].pdf      
    ├── src (涉及到的源文件,如果没有可以无此文件夹)               
    │   └── ......
    └── others (其他你打算提交的文件,如果没有可以无此文件夹)

请将全部文件按照上面的格式进行整理,压缩成一个压缩文件,最后和实验报告一起提交到 BB 平台上。

关于实验报告

本学期《数字电路实验》的报告需要大家提交 PDF 格式。我们推荐大家使用 Markdown 或者 Latex 撰写实验报告,这样可以直接导出为 PDF。大家也可以使用 Word、WPS 等进行报告撰写,最后转换为 PDF 格式。我们不推荐也不拒绝大家手写实验报告,但请将其拍照扫描成 PDF 文件后再上传。我们不接受任何因为文件格式错误而导致成绩异常的申诉请求

在实验报告中,你需要给出每一次实验练习的答案,并附上必要的说明过程。

特别说明

实验报告的字数和排版与最终得分无关

实验文档中有一些我们为大家列出的思考点,这部分内容无需在实验报告上列出。除了要求的内容,我们也欢迎大家在实验报告中包含:

  • 对本次实验任务量的评价
  • 对本次实验的改进建议
  • 其他的吐槽 or 疑问
  • ......

注意

本次实验检查的 DDL 为 2023-11-23,报告提交的 DDL 为 2023-11-30。超出 DDL 的检查与报告提交将按照规定扣除部分分数。规则为:

  • 迟交两周以内的:得分 × 80%;
  • 迟交两周及以上的:得分 × 60%。

请保证个人实验的独立完成!


祝大家实验顺利!

参考资料

暂无


最后更新: November 14, 2023

评论