### 电子科技大学EDA实验报告二知识点总结
#### 实验背景及目标
本次实验是电子科技大学学生赵文扬在陈学英老师的指导下进行的一次EDA(Electronic Design Automation,电子设计自动化)实验,实验名称为“8421BCD码七段LED显示”。实验主要目的是通过实践操作加深对VHDL语言的理解,掌握EDA技术的应用,并学习如何进行时序仿真。
#### 实验要求
1. **计数器设计**:设计一个具备清除端、使能端的计数器,计数范围为0-999,输出形式为8421BCD码。
2. **七段LED译码显示电路设计**:设计一个用于将8421BCD码转换成七段LED显示的译码电路。
3. **时序仿真**:完成设计后,利用EDA工具进行时序仿真,验证电路的正确性。
4. **程序验证**:将设计好的程序下载到硬件平台上,通过实际测试验证程序的正确性。
5. **文件保存**:准备存储设备保存实验程序。
#### 实验目的
1. **掌握VHDL设计方法**:熟练掌握使用VHDL进行电路设计的基本方法,进一步熟悉开发系统的使用。
2. **学会时序仿真**:理解并掌握如何使用EDA工具进行时序仿真。
3. **了解EDA实验箱功能**:熟悉EDA实验箱的基本操作及其提供的各种功能。
#### 设计文件详解
1. **设计思路**
- **0~999计数器设计**:采用三个4位模10的计数器级联构成0~999计数器,每个计数器负责百位、十位和个位的计数,最终输出为8421BCD码。
- **七段LED译码器设计**:根据真值表设计七段LED译码器,输入为8421BCD码,输出为控制七段LED显示的信号。
2. **顶层文件**:顶层文件counter.vht负责将各个底层模块组合起来,形成完整的系统。
3. **底层VHDL设计文档**
- **vr7seg.vht**:七段译码器模块,负责将8421BCD码转换为七段LED显示所需的控制信号。
- **cnt10.vht**:模10计数器模块,用于构成三位计数器的一部分。
4. **仿真结果**
- **计数器仿真**:从仿真结果来看,计数器能够正常计数,进位延时为2553ps,这意味着当计数时钟周期小于2553ps时可能会出现计数错误。
- **顶层设计仿真**:整体系统运行正常,满足实验要求。
#### 实验体会及思考题解答
1. **异步计数器与时延问题**:异步计数器的主要时延在于进位时延,在计数时钟很快的情况下,可以考虑使用同步计数器来减少时延。
2. **扩展译码器功能**:如果需要译出0~9以及‘-’,则需对译码器进行一定的修改。具体来说,保持0~9的七段码不变,对于‘-’字符,其对应的七段码为0x40。因此,只需修改译码模块中的代码,使其在接收到特定输入时输出0x40即可实现。
本次实验不仅加深了学生对VHDL语言的理解,还提高了其实现复杂数字系统的能力。通过实验,学生不仅掌握了基本的设计技巧,还学会了如何利用EDA工具进行仿真和验证,这对于后续的学习和研究都具有重要意义。