实验 6:加法器与 ALU
欢迎大家阅读我们的实验文档!
留下你的评论!
本次实验已开启评论系统。欢迎大家在相应的页面下方友好交流!
更新说明
Lab6 实验文档的改动情况如下:
- 2024-10-29:正式发布
- 2024-11-08:修改部分文字表述和任务描述,重置得分组成。
- 2024-11-11:微小错误修改
1. 实验简介
在之前的实验中,我们已经学会了组合逻辑电路与时序逻辑电路的设计方法与流程。本次实验中,我们将尝试使用我们所学到的知识,搭建出一个计算机系统中的重要组成部分:ALU(Arithmetic Logic Unit,算术逻辑单元),并通过对运算的不同实现方式的对比,来学习如何在设计中权衡时间性能与资源的使用。
在各种运算中,加法是最简单也最基本的,它的性能高低可能会影响到各个运算的性能。在 Lab4 中,我们曾向大家介绍了基础的 1bit 位宽半加器和全加器。在本次实验中,我们将介绍以半加器与全加器为基础的串行进位加法器,以及一种更高效的加法器——超前进位加法器。
在设计完加法器后,我们将尝试以此为基础,逐步实现一个完整的 32 位 ALU。
由于我们下学期的组成原理课程中大概率会基于龙芯架构 32 位精简版指令集设计 CPU,故本次实验中的 ALU 也按照龙芯架构的标准来设计。
那么,如何开发 ALU 呢?我们当然可以选择 Verilog 提供的运算符来实现所有的 ALU 运算功能。但是,这样的实现可能会导致 ALU 的性能较差或资源使用量较大,从而对 CPU 的最终性能产生影响,因此我们将尝试自己实现 ALU 中的一些运算。
2. 实验目标
-
设计 4 位超前进位加法器,并将其层次扩展到 32 位。
-
以超前进位加法器为基础,设计与实现 ALU。
3. 实验内容
4. 提交说明
本次实验需要大家在 BB 平台上在线提交相关内容。你提交的文件结构应当满足下面的文件树格式:
labs/
└── lab6_[姓名]_[学号]_ver[尝试编号]
├── figs (图片文件夹,如果没有可以无此文件夹)
├── lab6_[姓名]_[学号].pdf
├── src (涉及到的源文件,如果没有可以无此文件夹)
│ └── ......
└── others (其他你打算提交的文件,如果没有可以无此文件夹)
请将全部文件按照上面的格式进行整理,压缩成一个压缩文件,最后和实验报告一起提交到 BB 平台上。
关于实验报告
本学期《数字电路实验》的报告需要大家提交 PDF 格式。我们推荐大家使用 Markdown 或者 Latex 撰写实验报告,这样可以直接导出为 PDF。大家也可以使用 Word、WPS 等进行报告撰写,最后转换为 PDF 格式。我们不推荐也不拒绝大家手写实验报告,但请将其拍照扫描成 PDF 文件后再上传。我们不接受任何因为文件格式错误而导致成绩异常的申诉请求!
在实验报告中,你需要给出每一次实验练习的答案,并附上必要的说明过程。
特别说明
实验报告的字数和排版与最终得分无关。
实验文档中有一些我们为大家列出的思考点,这部分内容无需在实验报告上列出。除了要求的内容,我们也欢迎大家在实验报告中包含:
- 对本次实验任务量的评价
- 对本次实验的改进建议
- 其他的吐槽 or 疑问
- ......
注意
本次实验检查的 DDL 为 2024-11-14,报告提交的 DDL 为 2024-11-21。超出 DDL 的检查与报告提交将按照规定扣除部分分数。规则为:
- 迟交两周以内的:得分 × 80%;
- 迟交两周及以上的:得分 × 60%。
请保证个人实验的独立完成!
祝大家实验顺利!
参考资料
暂无