本文档描述了一个基于数字电路的出租车计费器的设计项目,其目标是利用VHDL语言和Quartus II 6.0软件来实现一个复杂的逻辑计费系统。该计费器需具备计费、预置、模拟汽车状态以及动态扫描显示等功能。以下是详细的知识点:
1. **VHDL语言**:VHDL是一种用于硬件描述的语言,用于设计数字电子系统的逻辑行为。在这个项目中,VHDL被用来定义计费器的各个功能模块。
2. **Quartus II 6.0**:这是一个由Altera公司开发的FPGA(Field-Programmable Gate Array)设计工具,用于编写、仿真和编程FPGA芯片。在本设计中,它用于实现计费器的逻辑电路。
3. **计费功能**:计费器应根据行驶里程计算费用,包括起步费、基础费率和超过特定费用后的附加费。起步费为7.00元,3公里后每公里2.2元,当费用达到或超过20元时,每公里加收50%的车费。车停驶时不计费。
4. **预置功能**:允许预设初始费用和起步公里数。
5. **模拟功能**:模拟汽车的启动、停止、暂停和车速变化,以测试计费器的实时响应。
6. **动态扫描电路**:这是一种显示技术,通过轮流点亮数码管的各个段来显示数值,可以节省硬件资源,提高显示效率。
7. **计数器设计**:包括A、B、C三个计数器,分别用于车轮转数计数、百米脉冲累加和步长可变的计费累加。每个计数器都需要通过功能验证和波形确认其正确性。
8. **车型调整**:通过“设置1”适应不同车轮直径的车型,调整计数器的计数基准。
9. **计程模块**:B计数器负责计算实际公里数,输出BCD码供译码器使用。
10. **计费模块**:C计数器实现步长可调的计费,可以根据需求改变单价。
11. **译码/动态扫描模块**:将计算出的路程和费用转换为数码管可以显示的格式,通过动态扫描驱动数码管。
12. **模块化设计**:整个系统采用模块化设计,包括车型调整模块、计程模块、计费模块和译码动态扫描模块,便于代码复用和逻辑验证。
13. **分频设计**:为了满足数码管显示的合适频率,设计了oneMHz和twoMHz两个分频器,分别实现50MHz到1MHz和1MHz到500kHz的分频。
14. **分频器实现**:使用VHDL过程语句实现计数和分频功能,当计数值达到预设值时翻转输出信号。
15. **系统验证**:完成所有设计后,需要在硬件平台上下载验证,确保设计的正确性和功能的完整性。
通过以上知识点,我们可以看到这个项目涵盖了数字电路设计的基础知识,包括逻辑门、计数器、分频器、VHDL编程以及FPGA的使用,同时也涉及到实际应用中的计费算法和模拟功能的设计。这样的项目既锻炼了设计者的逻辑思维能力,又提升了其实验室操作技能。