数字电路课程设计报告出租车计费器.doc

上传人:精*** 文档编号:856017 上传时间:2023-09-17 格式:DOC 页数:33 大小:9.54MB
下载 相关 举报
数字电路课程设计报告出租车计费器.doc_第1页
第1页 / 共33页
数字电路课程设计报告出租车计费器.doc_第2页
第2页 / 共33页
数字电路课程设计报告出租车计费器.doc_第3页
第3页 / 共33页
数字电路课程设计报告出租车计费器.doc_第4页
第4页 / 共33页
数字电路课程设计报告出租车计费器.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、 摘 要随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLDFPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。利用VHDL语言设计出租车计费系统,使其实现计费以及预置和模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。此程序通过下载到特定芯片后,可应用于实际的出租车计费系统中。本文基于FPGA开发系统,在Quartus II 9.0软件平台上,完成了出租车自动计费电路的设计和硬件实现。首先,论文介绍了Quar

2、tus II 9.0软件的基本使用方法和FPGA硬件描述语言的特点,采用VHDL 硬件描述语言描述出租车自动计费电路,完成对电路的功能仿真。在设计过程中,重点探讨了出租车自动计费电路的设计思路和功能模块划分。然后,初步探讨了电路逻辑综合的原理,该软件对出租车自动计费电路进行了逻辑综合。最后,使用EDA实验开发系统进行电路的下载和验证。验证结果表明设计的出租车自动计费电路完成了预期的功能。关键词 超高速集成电路硬件描述语言,计数器,Quartus II 9.0,高速集成电路 AbstractWith the rapid development of EDA technology, electro

3、nic system design techniques and tools have been profound changes in large-scale programmable logic device CPLD / FPGA emergence of designers to bring a lot of convenience. Use it for product development, not only low cost, short cycle, high reliability and full intellectual property rights. Design

4、using VHDL language taxi billing system, billing, as well as to achieve the preset and simulated vehicle to start, stop, pause and other functions, and circuit design of dynamic scan showed that the number of fare, highlighted as a hardware description language can be a good Reading, the portability

5、 and readability advantages. By downloading the program to a specific chip, the taxi can be applied to the actual billing system. Based on FPGA development system, in the Quartus II 9.0 software platform, automatic billing taxi completed the circuit design and hardware implementation. First of all,

6、the paper introduced the Quartus II 9.0 the basic use of software and hardware description language FPGA features, the use of VHDL hardware description language description of the taxi circuit automatic billing, complete function simulation of the circuit. In the design process, focus on the taxi au

7、tomatic billing and circuit design divided into functional modules. Then, a preliminary study of the principles of integrated circuit logic, the software automatically billing for a taxi to the logic integrated circuit. Finally, the use of experimental development of EDA system to download and verif

8、y the circuit. Validation results show that the automatic billing taxi designed to complete the desired circuit function. Key words ultra-high-speed integrated circuit hardware description language, counters, Quartus II 9.0, high-speed integrated circuits 目录 摘要2序言5第一章EDA与QuartusII开发系统介61.1 EDA发展况61.

9、2 硬件描述语VHDL.71.2.1 VHDL的简介.7 1.2.2 VHDL的流程设计.71.3 QuartusII 软件操作流程8第二章 课题概述10 2.1 出租车计费系统的实验任务及求10 2.2、出租车计费系统的原理和方案计10 2.3、具体的方案计112.3.1硬件电路方案设计.112.3.2软件方案方计12第三章 硬件路133.1 时钟电路13 555电路133.2下载路143.3按钮电路153.4动态显示路15第四章 计费系统的VHDL计154.1 分频器164.2 标志模块174.3 等待模块194.4 计程模块214.5 计费模块244.6 译码模块28第五章 总程序的设计

10、及其实现的结果305.1 实物图285.2 输入、输出信号说明305.3 波形仿真315.4 设计中需要注意的问题32总结32致谢33参考文献33附录一34附录二35出租车计费器序 言随着当代电子信息技术的发展,自动计费器被广泛的用于各个系统,例如上网自动计费系统、电话计费器、出租车计费器等等。可见自动计费系统在我们的生活中是越来越重要,本次课程设计是围绕出租车计费器来深入了解计费器是怎样实现计费的。本课题是利用VHDL语言来实现计费功能的,VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命

11、力和应用潜力,因此选用VHDL语言进行编程。本次课程设计巩固和运用了所学课程,通过理论联系实际,提高了分析、解决计算机技术实际问题的独立工作能力,通过对一个出租车计费器的设计,进一步加深了对计算机原理以及数字电路应用技术方面的了解与认识,进一步熟悉了数字电路系统设计、制作与调试的方法和步骤。进一步了解了计算机组成原理与系统结构,使自己对EDA技术的学习更深入,学会用VHDL语言去控制将会使我们对本专业知识可以更好地掌握。出租车计费器就是对车轮传感器送来的脉冲进行计数(每转一圈送一个脉冲),本课程设计利用555触发电路产生的脉冲代替车轮传感器送来的脉冲。当计费系统接收到一个脉冲信号, 它将会实现

12、计数的功能,并且通过外围的电路把所实现的功能实现出来。本论文共分5章和2个附录,第1章介绍了EDA与QuartusII开发系统。第2章介绍出租车计费系统的原理和方案设计第3章介绍了软件设计。第4章介绍了硬件设计。第5章介绍了总的设计以及其结果。本课题的主要设计工作内容是能够显示出租车的车费和里程并完成安装与调试。第一章 EDA与QuartusII开发系统简介1.1 EDA发展概况电子设计技术的核心就是EDA技术,EDA是指以计算机为工作台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。EDA

13、技术已有30年的发展历程,大致可分为三个阶段。70年代为计算机辅助设计(CAD)阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作。80年代为计算机辅助工程(CAE)阶段。与CAD相比,CAE除了有纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计。CAE的主要功能是:原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。90年代为电子系统设计自动化(EDA)阶段。 中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员开发复杂的片上系统器件。为了

14、与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。 在EDA软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放 。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具有各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。 EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完美的地步。EDA市场日趋成熟,但我

15、国的研发水平还很有限,需迎头赶上。1.2 硬件描述语言VHDL1.2.1 VHDL简介是一种全方位的硬件描述语言,包括系统行为级。寄存器传输级和逻辑门多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此几乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由下向上的电路设计过程都可以用来完成。还具有以下优点:()的宽范围描述能力使它成为高层进设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。可以用简洁明确的代码描述来进行复杂控制逻辑设计,灵活且方便,而且也便于设计结果的交流、保存和重用。()的设计不依赖于特定的器件,方便了工艺的转换。()是一个标准

16、语言,为众多的厂商支持,因此移植性好。1.2.2 VHDL的设计流程从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。如前所述,用行为方式描述

17、的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。第三层次是逻辑综合。即利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。应用逻辑综合工具产生的门网络表,将其转换成PLD的编程码,即可利用PLD实现硬件电路的设计。由自上而下的设计过程可知,从总体行为设

18、计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。 1.3 Quartus 的软件操作流程双击桌面上,打开Quartus软件。(1) 新建VHDL文件 ,开始编写VHDL程序。(2) 保存VHDL文件,文件取名要与程序实体名要一致。(3) 创建新工程按下“保存”按纽后会出现如下提示。提示是否为此文件建立一个工程,这很重要。然后点击“是”,出现以下窗口,点“Next ”。(4) 器件的选择继续点“Next ”。然后选择FPGA或CPLD的有关参数,这些参数都是根据目标芯片来选择的。一直到“Finish”完成器件选择(5) 编译编译

19、:选择processing菜单中的start compilation命令。编译完成的提示如下,点击确定即可。(6) 仿真这时可以进行仿真,首先要建立波形文件,点“File-New-”,出现如下窗口:选择“Other Files”最下面的“Vector waveform File”点“OK”。出现以下窗口。双击左边的空白处,设定输入输出信号。设定好波形后,保存波形。之后点进行仿真。(7) 锁定引脚引脚锁定,如下图操作:引脚的锁定是根据不同的电路和不同功能来确定的,不是一层不变的。选择Assignments菜单下的Pins命令,出现以下窗口,如果是下载到实验箱上则需连续按“模式选择”按钮选择模式5

20、,再按“系统复位”按钮。进行引脚锁定,查阅附表,分别点“location”选择引脚号。引脚锁定后再编译。如同此前进行过的。编译成功后点确定。(8) 下载选择Tools菜单下的Programmer命令,然后在Program/Configure下打上钩选中,点“start”按钮开始下载,“Progress”进度条显示下载进度。成功下载后如图所示:下载完后就可以在实验箱查看结果。 通过上面的步骤分别下载到实验箱中和FPGA中,验证了在仿真中的结果是正确的。第二章 课题概述2.1 出租车计费系统的实验任务及要求1. 能实现计费功能,计费标准为:按行驶里程收费,分为白天和黑夜。白天收费标准:起步费为9.

21、00元,超过3公里按3元/公里,车暂停超过三分钟按2元/分钟计算。黑夜收费标准:起步费为12.00元,超过3公里按4元/公里,车暂停超过三分钟按1元/分钟计算。2. 实现预置功能:能预置起步费、每公里收费、车行加费里程、等待加费时间。3. 实现模拟功能:能模拟汽车启动、停止/白天、黑夜/等待、行驶状态。4. 设计动态扫描电路:将车费、里程、等待时间动态的显示出来。5. 用VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。6. 各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。2.2、出租车计费系统的原理和方案设计系统的顶层框图:动态显示模块

22、控制芯片信号输入 信号输入:各种控制信号经输入端给控制芯片。控制芯片:采用的有CPLD或者FPGA等。动态显示电路:采用的是数码管来实现功能的输出。2.3、具体的方案设计2.3.1、硬件电路方案设计以下为硬件电路的结构简图: CPLD 模块动态显示电路时钟控制模块PC机开关电路下载电路各模块的组成和原理:(1)时钟控制模块此模块是555电路所构成的。(2)下载电路模块此模块主要由下载线组成。作用:使PC机中编写的VHDL语言的程序下载到CPLD芯片中,使电路实现所需的功能。(3)开关模块:该模块的作用是用于电路的输入的信号。主要有三个开关以及三个限流电阻,电源构成。(4)动态显示模块: 此模块

23、由六个数码管和三个二极管所构成,三个二极管起到限制电流的作用,使得流到数码管的电流适当,防止数码管中的电流过大,而使得数码管损坏。数码管将计费、等待时间和里程动态的显示出来。2.3.2 软件方案设计以下为软件结构简图:输入信号分频器里程计数模块车费计数模块车行驶状态 译码模块各模块的功能:1)由555触发电路产生时钟信号并输入。2)分频器:将时钟信号进行分频。3)标志模块:将按钮产生的脉冲转化为一种标志信号。4)计程模块:在等待信号未作用时,来一个时钟脉冲信号,里程值加1。该模块还包含一个路程计费标志的小模块,输出一个路程计费的信号。5)等待状态模块:等待信号作用时,该模块可以记录等待的时间,

24、并产生等待计费的信号。6)车费计数模块:按行驶里程收费,分为白天和黑夜。白天收费标准:起步费为9.00元,超过3公里按3元/公里,车暂停超过三分钟按2元/分钟计算。黑夜收费标准:起步费为12.00元,超过3公里按4元/公里,车暂停超过三分钟按1元/分钟计算。7)译码模块:实现将车费计数模块、等待状态模块和里程计数模块输出的BCD码转换成七段码输出。第三章 硬件电路根据前面第一章所提到的硬件电路的方案设计,这章介绍各模块的具体设计。3.1时钟电路555电路在数字系统中,为了使各部分在时间上协调动作,需要有一个统一的时间基准。用来产生时间基准信号的电路称为时基电路。时基集成电路555就是其中的一种

25、。它是一种由模拟电路与数字电路组合而成的多功能的中规模集成组件,只要配少量的外部器件,便可很方便的组成触发器、振荡器等多种功能电路。因此其获得迅速发展和广泛应用。下图为由555定时器所构成的多谐振荡器,该电路可以用于脉冲输出、音响告警、家电控制、电子玩具、检测仪器、电源变换、定时器等。 图3.1.2 555电路的接法该电路的特点是“RA7RB6.2C”,RA与VCC相连。公式是:T1=0.693(RA+RB)*C, T2=0.693RB*C,F=1.443/(RA+2RB)*C 为了满足我的设计要求,因此取RA=RB其阻值为10K,取电容C的取值为10uf,电容C1的取值0.01uF。3.2下

26、载电路PC机和CPLD之间采用的是并行接口的通信方法,如图3-2所示。ByteBlaster与PC机并口相连的一端是25针插座头, 与CPLD板插座相连的是10针插座头。图3-2 电缆3.3按钮电路它的作用是提供输入信号。拨码开关的3个引脚CPLD芯片的引脚上。根据拨码开关的高低电平来实现模拟汽车的相应的转态,如清零、停止。SS:开始、停止开关。当按下SS按钮时,计费器开始工作,再次按下后清零等待时间、路程和费用。DN:白天、黑夜开关。初始状态为白天的计费规则,当按下DN后变为黑夜的计费规则,再次按下重复以上规则。 WR:等待、行驶开关。当按下WR按钮后,进入等待状态,再次按下,计费器又恢复行

27、驶状态,重复按此按钮,重复以上功能。3.4动态显示电路 该电路用六个数码管所组成,其中两个数码管实现将车费动态的显示出来。其动态的显示范围为0到99元;还有两个数码管实现将汽车行驶的里程动态的显示出来,其动态的显示范围为0到99公里;最后两个数码管讲汽车的等待时间显示出来,其动态显示范围为0到99公里。第四章 计费系统的VHDL设计在本设计中采用的是自顶向下的设计方法,首先从系统功能设计开始,对系统高层模块进行行为描述和功能仿真.系统的功能验证完成后,将抽象的高层设计自顶向下逐级细化,直到与所用可编程逻辑器件相对应的逻辑描述。在本设计中,具有5个模块:1)分频器:将时钟信号进行分频。2)标志模

28、块:将按钮产生的脉冲转化为一种标志信号。3)计程模块:在等待信号未作用时,来一个时钟脉冲信号,里程值加1。该模块还包含一个路程计费标志的小模块,输出一个路程计费的信号。4)等待状态模块:等待信号作用时,该模块可以记录等待的时间,并产生等待计费的信号。5)车费计数模块:按行驶里程收费,分为白天和黑夜。白天收费标准:起步费为9.00元,超过3公里按3元/公里,车暂停超过三分钟按2元/分钟计算。黑夜收费标准:起步费为12.00元,超过3公里按4元/公里,车暂停超过三分钟按1元/分钟计算。6)译码模块:实现将车费计数模块、等待状态模块和里程计数模块输出的BCD码转换成七段码输出。下面具体介绍各个部分的

29、设计。4.1分频器(1)实物图图4.1分频器的实体图CLK0:输入555脉冲信号FOUT:输出脉冲(2)分频器的VHDL设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PULSE IS PORT(CLK0:IN STD_LOGIC; FOUT:OUT STD_LOGIC);END PULSE;ARCHITECTURE ONE OF PULSE ISBEGIN PROCESS(CLK0) VARIABLE CNT:STD_LOGIC_VECTOR(2 DOWNTO 0); VARI

30、ABLE FULL :STD_LOGIC; BEGIN IF CLK0EVENT AND CLK0=1 THEN IF CNT=100 THEN CNT:=000 ; FULL:=1; ELSE CNT:=CNT+1; FULL:=0; END IF; END IF;FOUT=FULL;END PROCESS;END ONE;(3)波形仿真从该波形图可以看出输入脉冲的频率是输出脉冲的频率的五倍。4.2标志模块(1)实物图图4.2标志模块的实体图AJ:输入的按键信号BZ:输出的标志信号(2)标志模块的VHDL设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;U

31、SE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BZ IS PORT(AJ:IN STD_LOGIC; BZ:OUT STD_LOGIC);END BZ;ARCHITECTURE TWO OF BZ IS BEGIN PROCESS(AJ) VARIABLE CNT:STD_LOGIC_VECTOR(9 DOWNTO 0); BEGIN IF AJ=0 AND AJEVENT THEN IF CNT=1111111111 THEN CNT:=0000000000; ELSE CNT:=CNT+1; END IF; END IF; BZ=CNT(0); END PRO

32、CESS;END TWO;(3)波形仿真从该波形图可以看出在输入的按键信号下降沿来临时输出的标志信号取反,且刚开始为低电平。4.3等待状态模块(1)实物图图4.3等待状态模块的实体图(2)等待状态模块的VHDL设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DDZT IS PORT(CLK,SS:IN STD_LOGIC; DDBZ:IN STD_LOGIC; DDJFBZ:OUT STD_LOGIC; DDSJ:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);

33、END ENTITY DDZT;ARCHITECTURE ONE OF DDZT ISBEGIN PROCESS(CLK,SS,DDBZ) VARIABLE Q1,Q0: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF SS=0 THEN Q1:=0000;Q0:=0000;DDJFBZ0 OR Q03) THEN DDJFBZ=1; END IF; END IF; END IF; DDSJ(7 DOWNTO 4)=Q1;DDSJ(3 DOWNTO 0)=Q0;END PROCESS;END ONE;(3)波形仿真等待标志有效时,等待时间开始计数。等待时间超过3时

34、等待计费标志置高电平。由于设计时只用两个数码管显示,所以只能显示到99,在程序中设置了让等待时间到达99后变为0。从上面的说明可以看出程序达到了所设计的功能。4.4计程模块(1)实物图图4.4.1计程模块的实体图图4.4.2路程计费标志的实物图(2)计程模块的VHDL设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity JC is port(clks,SS,WR:in std_logic; LC:BUFFER std_logic_vector(7 downto 0); end enti

35、ty JC;architecture one of JC is SIGNAL Q1,Q0:std_logic_vector(3 downto 0);beginprocess(clks,SS,WR,LC) VARIABLE SW:STD_LOGIC_VECTOR(1 DOWNTO 0); begin SW:=SS≀ IF SW=00 OR SW=01 THEN Q1=0000;Q0=0000; ELSIF SW=11 THEN Q1=Q1;Q0=Q0; ELSIF CLKSEVENT AND CLKS=1 THEN IF Q1=9 AND Q0=9 THEN Q1=0000;Q0=0000

36、; ELSIF Q0=9 THEN Q1=Q1+1;Q0=0000; ELSE Q1=Q1;Q0=Q0+1; END IF; END IF;END PROCESS;LC(7 DOWNTO 4)=Q1;LC(3 DOWNTO 0)=Q0;END one;路程计费标志模块的VHDL设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity LCJFBZ is port(SS:in std_logic; LC:IN STD_LOGIC_VECTOR(7 DOWNTO 0); LCJFBZ:OUT

37、std_logic); end entity LCJFBZ;architecture TWO of LCJFBZ is BEGIN PROCESS(SS,LC) BEGIN IF SS=0 OR (LC(7 DOWNTO 4)=0000 AND LC(3 DOWNTO 0)4) THEN LCJFBZ=0; ELSE LCJFBZ0); SOUT:=(others=0); for i in 0 to 1 loop SA(i) := (0 & AIN(i*4+3 downto i*4)+(0 & BIN(i*4+3 downto i*4)+(0000 & CI(i); if (SA(i)(4)=

38、1) or (SA(i)(3 downto 0)9) then SB(i) := SA(i) + 00110; else SB(i) := SA(i); end if; CI(i+1) := SB(i)(4); SOUT(i*4+4 downto i*4):=SB(i); end loop; RETURN SOUT;END FUNCTION bcd_add8;END;library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;USE WORK.PACKEXP1.ALL;ENTITY JF is PORT( SS:IN STD_LOGIC; DN:IN STD_LOGIC; LC:IN std_logic_vector(7 downto 0);

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922