跳转至

实验 2:测试与仿真

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

留下你的评论!

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

更新说明

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

  • 2023-10-12:正式发布
  • 2023-10-19:修改 Lab2 实验练习中必做部分题目 4 的仿真示例、选择性必做题目 3 中关于『众数』的定义

1. 实验简介

Q: 为什么到目前为止我无法知道自己代码的正确性?在 C 语言里,写完一个函数后就可以调试与运行,很快就找到 Bug 了!

A: 别急~ 这就是硬件描述语言与高级程序设计语言的区别之一。从本次实验开始,我们将带大家学习如何检验自己代码的正确性。

在了解 Verilog 的基础语法知识后,我们也将正式踏入 Verilog 硬件开发的阶段。首先,我们将学习更为深层次的 Verilog 设计思想,培养更为完善的系统观念。接下来,我们将学习仿真文件的编写方法,用于检测自己设计的正确性。最后,我们将接触 FPGA 开发工具 Vivado,并进行初步的使用与体验。

理论上,FPGA 从编程到下载实现预期功能的过程至少需要经历即 RTL 分析综合以及实现这几个阶段。它们的简要介绍如下:

  1. RTL 分析。RTL(Register Transfer Level,寄存器传输级)指通过描述寄存器到寄存器之间的逻辑功能来描述电路。RTL 分析过程则是将 HDL 硬件描述语言转换成逻辑门电路的过程。
  2. 综合(Synthesis)。综合是指将 HDL 转换成较低层次电路结构的过程。低层次电路结构是 FPGA 内部存在的基本逻辑单元,包括查找表 LUT、触发器、RAM 等。这一步得到的电路图比 RTL 更为具体,结构上往往也十分不同。这是因为 FPGA 底层中并没有 RTL 生成的逻辑电路的实现,所以只能用其他逻辑资源进行代替。
  3. 实现(Implementation)。综合后生成的电路只表示了逻辑资源之间虚拟的连接关系,并没有规定每个逻辑资源的实际位置以及连线长度等。实现就是一个将综合电路中逻辑资源位置以及连线长度确定的过程。
例子:FPGA 与搭积木

下面是一个很棒的类比。原帖链接在这里

FPGA 可以看作是一个大型的积木仓库,里面有着各种各样形状的积木(不同的硬件逻辑资源),我们可以使用这些积木搭建出想要的物品(逻辑设计)。

现在,我们想要搭建一个变形金刚(目标设计)。HDL 的过程就是用通俗的语言描述变形金刚的特征与功能(硬件描述);RTL 分析过程将刚刚的 HDL 描述转换成变形金刚的图纸;综合过程则是将之前的图纸与仓库里的积木对应起来,确定各个积木的具体数量;实现过程则是从积木堆中找到最合适的积木。并最终组装到一起。

为了完成上面的步骤,我们需要借助一些专门的工具。从本次实验开始,我们将借助 Vivado 帮助完成 Verilog 的开发流程。在 Lab2 中,我们将了解到如何使用 Vivado 进行 RTL 分析与仿真操作。

2. 实验目标

  1. 进一步熟悉 Verilog 的语法知识;
  2. 学习如何编写测试文件;
  3. 学习如何使用 Vivado 进行 RTL 分析与仿真。

3. 实验内容

  1. 【必做】学习 Verilog 语言的进阶语法知识(点击这里跳转)。

  2. 【必做】学习仿真文件的编写(点击这里跳转)。

  3. 【必做】学习使用 Vivado 进行仿真(点击这里跳转)。

  4. 【必做】完成 Lab2 的实验练习题(点击这里跳转)。

4. 提交说明

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

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

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

关于实验报告

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

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

特别说明

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

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

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

注意

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

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

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


祝大家实验顺利!


最后更新: October 25, 2023

评论

Authors: wintermelon008