收藏 分享(赏)

数字电路课程设计报告25115.doc

上传人:dreamzhangning 文档编号:2286376 上传时间:2018-09-09 格式:DOC 页数:34 大小:9.61MB
下载 相关 举报
数字电路课程设计报告25115.doc_第1页
第1页 / 共34页
数字电路课程设计报告25115.doc_第2页
第2页 / 共34页
数字电路课程设计报告25115.doc_第3页
第3页 / 共34页
数字电路课程设计报告25115.doc_第4页
第4页 / 共34页
数字电路课程设计报告25115.doc_第5页
第5页 / 共34页
点击查看更多>>
资源描述

1、数字电路课程设计论文- 1 -出租车计费器学院名称: 电气信息工程学院 专 业: 通信工程 班 级: 07 通信 2 班 姓 名: 邵德鹏 学 号: 07313223 指导教师姓名: 宋伟 朱幼莲 2009 年 12 月JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY 数 字 电 路 课 程 设 计 报 告数字电路课程设计论文- 2 -摘 要随着 EDA 技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件 CPLDFPGA 的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。利

2、用 VHDL 语言设计出租车计费系统,使其实现计费以及预置和模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。此程序通过下载到特定芯片后,可应用于实际的出租车计费系统中。本文基于 FPGA 开发系统,在 Quartus II 9.0 软件平台上,完成了出租车自动计费电路的设计和硬件实现。首先,论文介绍了 Quartus II 9.0 软件的基本使用方法和 FPGA 硬件描述语言的特点,采用 VHDL 硬件描述语言描述出租车自动计费电路,完成对电路的功能仿真。在设计过程中,重点探讨了出租车自动计费电路的设计思路和功能模

3、块划分。然后,初步探讨了电路逻辑综合的原理,该软件对出租车自动计费电路进行了逻辑综合。最后,使用EDA 实验开发系统进行电路的下载和验证。验证结果表明设计的出租车自动计费电路完成了预期的功能。关键词 超高速集成电路硬件描述语言,计数器,Quartus II 9.0,高速集成电路 AbstractWith the rapid development of EDA technology, electronic system design techniques and tools have been profound changes in large-scale programmable logic

4、 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 using VHDL language taxi billing system, billing, as well as to achieve the preset and simulated ve

5、hicle 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 and readability advantages. By downloading the program to a specific chip, the taxi can be applied

6、 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, the paper introduced the Quartus II 9.0 the basic use of software and hardware description language

7、 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 automatic billing and circuit design divided into functional modules. Then, a preliminary study of th

8、e 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 verify the circuit. Validation results show that the automatic billing taxi designed to complete the des

9、ired circuit function. Key words ultra-high-speed integrated circuit hardware description language, counters, Quartus II 9.0, high-speed integrated circuits 数字电路课程设计论文- 3 -目录摘要2序言5第一章 EDA与 QuartusII开发系统介61.1 EDA发展况61.2 硬件描述语 VHDL.71.2.1 VHDL 的简介.7 1.2.2 VHDL 的流程设计.71.3 QuartusII 软件操作流程8第二章 课题概述10 2.

10、1 出租车计费系统的实验任务及求10 2.2、出租车计费系统的原理和方案计10 2.3、具体的方案计112.3.1 硬件电路方案设计.112.3.2 软件方案方计12第三章 硬件路133.1 时钟电路13555 电路133.2下载路143.3按钮电路153.4动态显示路15第四章 计费系统的 VHDL计154.1 分频器164.2 标志模块174.3 等待模块19数字电路课程设计论文- 4 -4.4 计程模块214.5 计费模块244.6 译码模块28第五章 总程序的设计及其实现的结果305.1 实物图285.2 输入、输出信号说明305.3 波形仿真315.4 设计中需要注意的问题32总结3

11、2致谢33参考文献33附录一34附录二35数字电路课程设计论文- 5 -出租车计费器序 言随着当代电子信息技术的发展,自动计费器被广泛的用于各个系统,例如上网自动计费系统、电话计费器、出租车计费器等等。可见自动计费系统在我们的生活中是越来越重要,本次课程设计是围绕出租车计费器来深入了解计费器是怎样实现计费的。本课题是利用VHDL语言来实现计费功能的,VHDL具有与具体硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言易读性和层次化、结构化设计方面,表现了强大的生命力和应用潜力,因此选用VHDL语言进行编程。本次课程设计巩固和运用了所学课程,通过理论联系实际

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

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

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

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

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

17、也便于设计结果的交流、保存和重用。 ()的设计不依赖于特定的器件,方便了工艺的转换。 ()是一个标准语言,为众多的厂商支持,因此移植性好。1.2.2 VHDL的设计流程从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要

18、求。第二层次是 RTL 方式描述。这一层次称为寄存器传输描述(又称数据流描述) 。如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。要想得到硬件的具体实现,必须将行为方式描述的 VHDL 语言程序改写为 RTL 方式描述的 VHDL 语言程序。也就是说,系统采用 RTL 方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。第三层次是逻辑综合。即利用逻辑综合工具,将 RTL 方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表) 。此时,如果需要,可将逻辑综合数字电路课程设计论文- 8 -的结果以逻辑原理图的方式输出。此后可对综合的结果在门电路级上

19、进行仿真,并检查其时序关系。应用逻辑综合工具产生的门网络表,将其转换成 PLD 的编程码,即可利用PLD 实现硬件电路的设计。由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。1.3 Quartus 的软件操作流程双击桌面上 ,打开 Quartus 软件。(1) 新建 VHDL 文件 ,开始编写 VHDL 程序。(2) 保存 VHDL 文件,文件取名要与程序实体名要一致。(3) 创建新工程按下“保存”按纽后会出现如下提示。提示是否为此文件建立一个工程,这很重要。然后点击“是” ,出现以下窗口

20、,点“Next ” 。(4) 器件的选择继续点“Next ”。然后选择 FPGA 或 CPLD 的有关参数,这些参数都是根据目标芯片来选择的。一直到“Finish”完成器件选择(5) 编译编译:选择 processing 菜单中的 start compilation 命令。编译完成的提示如下,点击确定即可。(6) 仿真数字电路课程设计论文- 9 -这时可以进行仿真,首先要建立波形文件,点“File-New-” ,出现如下窗口:选择“Other Files”最下面的“Vector waveform File”点“OK” 。出现以下窗口。双击左边的空白处,设定输入输出信号。设定好波形后,保存波形。

21、之后点 进行仿真。(7) 锁定引脚引脚锁定,如下图操作:引脚的锁定是根据不同的电路和不同功能来确定的,不是一层不变的。选择 Assignments 菜单下的 Pins 命令,出现以下窗口,如果是下载到实验箱上则需连续按“模式选择”按钮选择模式 5,再按“系统复位”按钮。进行引脚锁定,查阅附表,分别点“location”选择引脚号。引脚锁定后再编译。如同此前进行过的。编译成功后点确定。数字电路课程设计论文- 10 -(8) 下载选择 Tools 菜单下的 Programmer 命令,然后在 Program/Configure 下打上钩选中,点“start”按钮开始下载, “Progress”进度

22、条显示下载进度。成功下载后如图所示:下载完后就可以在实验箱查看结果。通过上面的步骤分别下载到实验箱中和 FPGA 中,验证了在仿真中的结果是正确的。第二章 课题概述2.1 出租车计费系统的实验任务及要求1. 能实现计费功能,计费标准为:按行驶里程收费,分为白天和黑夜。白天收费标准:起步费为 9.00 元,超过 3 公里按 3 元/ 公里,车暂停超过三分钟按2 元/ 分钟计算。黑夜收费标准:起步费为 12.00 元,超过 3 公里按 4 元/ 公里,车暂停超过三分钟按 1 元/分钟计算。2. 实现预置功能:能预置起步费、每公里收费、车行加费里程、等待加费时间。3. 实现模拟功能:能模拟汽车启动、

23、停止/白天、黑夜 /等待、行驶状态。4. 设计动态扫描电路:将车费、里程、等待时间动态的显示出来。5. 用 VHDL 语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。6. 各计数器的计数状态用功能仿真的方法验证,并通过有关波形确认电路设计是否正确。2.2、出租车计费系统的原理和方案设计数字电路课程设计论文- 11 -信号输入:各种控制信号经输入端给控制芯片。控制芯片:采用的有 CPLD 或者 FPGA 等。动态显示电路:采用的是数码管来实现功能的输出。2.3、具体的方案设计2.3.1、硬件电路方案设计以下为硬件电路的结构简图:各模块的组成和原理:(1)时钟控制模块此模块是

24、 555 电路所构成的。(2)下载电路模块此模块主要由下载线组成。系统的顶层框图:CPLD模块时钟控制模块PC 机下载电路控制芯片信号输入动态显示模块动态显示电路开关电路数字电路课程设计论文- 12 -作用:使 PC 机中编写的 VHDL 语言的程序下载到 CPLD 芯片中,使电路实现所需的功能。(3)开关模块:该模块的作用是用于电路的输入的信号。主要有三个开关以及三个限流电阻,电源构成。(4)动态显示模块:此模块由六个数码管和三个二极管所构成,三个二极管起到限制电流的作用,使得流到数码管的电流适当,防止数码管中的电流过大,而使得数码管损坏。数码管将计费、等待时间和里程动态的显示出来。2.3.

25、2 软件方案设计以下为软件结构简图:输入信号分频器 里程计数模块车费计数模块车行驶状态译码模块各模块的功能:1)由 555 触发电路产生时钟信号并输入。2)分频器:将时钟信号进行分频。3)标志模块:将按钮产生的脉冲转化为一种标志信号。4)计程模块:在等待信号未作用时,来一个时钟脉冲信号,里程值加 1。该模块还包含一个路程计费标志的小模块,输出一个路程计费的信号。5)等待状态模块:等待信号作用时,该模块可以记录等待的时间,并产生等待计费的信号。6)车费计数模块:按行驶里程收费,分为白天和黑夜。白天收费标准:数字电路课程设计论文- 13 -起步费为 9.00 元,超过 3 公里按 3 元/公里,车

26、暂停超过三分钟按 2 元/ 分钟计算。黑夜收费标准:起步费为 12.00 元,超过 3 公里按 4 元/公里,车暂停超过三分钟按 1 元/分钟计算。7)译码模块:实现将车费计数模块、等待状态模块和里程计数模块输出的 BCD 码转换成七段码输出。第三章 硬件电路根据前面第一章所提到的硬件电路的方案设计,这章介绍各模块的具体设计。3.1时钟电路555电路在数字系统中,为了使各部分在时间上协调动作,需要有一个统一的时间基准。用来产生时间基准信号的电路称为时基电路。时基集成电路 555 就是其中的一种。它是一种由模拟电路与数字电路组合而成的多功能的中规模集成组件,只要配少量的外部器件,便可很方便的组成

27、触发器、振荡器等多种功能电路。因此其获得迅速发展和广泛应用。下图为由 555 定时器所构成的多谐振荡器,该电路可以用于脉冲输出、音响告警、家电控制、电子玩具、检测仪器、电源变换、定时器等。数字电路课程设计论文- 14 -图 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下载电路PC 机和 CPLD 之间采用的是并

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

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

30、中,具有5个模块:1)分频器:将时钟信号进行分频。数字电路课程设计论文- 16 -2)标志模块:将按钮产生的脉冲转化为一种标志信号。3)计程模块:在等待信号未作用时,来一个时钟脉冲信号,里程值加 1。该模块还包含一个路程计费标志的小模块,输出一个路程计费的信号。4)等待状态模块:等待信号作用时,该模块可以记录等待的时间,并产生等待计费的信号。5)车费计数模块:按行驶里程收费,分为白天和黑夜。白天收费标准:起步费为 9.00 元,超过 3 公里按 3 元/公里,车暂停超过三分钟按 2 元/ 分钟计算。黑夜收费标准:起步费为 12.00 元,超过 3 公里按 4 元/公里,车暂停超过三分钟按 1

31、元/分钟计算。6)译码模块:实现将车费计数模块、等待状态模块和里程计数模块输出的 BCD 码转换成七段码输出。下面具体介绍各个部分的设计。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 ISPORT(CLK0:IN STD_LOGIC;数字电路课程设计论文- 17 -FOUT:OUT STD_LOGIC);END PULSE;ARCHITECT

32、URE ONE OF PULSE ISBEGINPROCESS(CLK0)VARIABLE CNT:STD_LOGIC_VECTOR(2 DOWNTO 0);VARIABLE FULL :STD_LOGIC; BEGINIF CLK0EVENT AND CLK0=1 THENIF CNT=“100“ THENCNT:=“000“ ;FULL:=1;ELSE CNT:=CNT+1;FULL:=0;END IF;END IF;FOUT0 OR Q03) THENDDJFBZ0);SOUT:=(others=0);for i in 0 to 1 loop SA(i) := (0 if (SA(i)(

33、4)=1) or (SA(i)(3 downto 0)9) thenSB(i) := SA(i) + “00110“;elseSB(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 isPORT( SS:IN

34、 STD_LOGIC; 数字电路课程设计论文- 26 -DN:IN STD_LOGIC; LC:IN std_logic_vector(7 downto 0); DDSJ:IN STD_LOGIC_VECTOR(7 DOWNTO 0); LCJFBZ:IN STD_LOGIC; DDJFBZ:IN STD_LOGIC; FY:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); END ENTITY JF;architecture ONE of JF isBEGINPROCESS(SS,DN,LC,DDSJ,DDJFBZ,LCJFBZ)VARIABLE FY1 :STD_LOGI

35、C_VECTOR(11 DOWNTO 0);BEGINIF SS=0 THENFY1:=“000000000000“;ELSIF DN=0 THEN IF LCJFBZ=0 THEN FY1(11 DOWNTO 4):=(OTHERS=0); FY1(3 DOWNTO 0):=“1001“;ELSE FY1:=bcd_add8(LC,LC); FY1:=bcd_add8(FY1,LC); END IF;ELSIF LCJFBZ=0 THEN FY1(11 DOWNTO 5):=(OTHERS=0);FY1(4 DOWNTO 0):=“10010“; ELSE FY1:=bcd_add8(LC,

36、LC); FY1:=bcd_add8(FY1,LC);数字电路课程设计论文- 27 -FY1:=bcd_add8(FY1,LC); END IF;IF DN=0 THEN IF DDJFBZ=0 THEN FY1:=FY1; ELSE FY1:=bcd_add8(FY1,DDSJ);FY1:=bcd_add8(FY1,DDSJ); END IF;ELSIF DDJFBZ=0 THEN FY1:=FY1; ELSE FY1:=bcd_add8(FY1,DDSJ); END IF;FYdout1dout1dout1dout1dout1dout1dout1dout1dout1dout1dout1do

37、ut0dout0dout0dout0dout0dout0dout0dout0dout0dout0dout0=“ZZZZZZZ“;end case;end process;end one;(3)波形仿真符合七段显示。数字电路课程设计论文- 30 -第五章 总程序的设计及其实现的结果5.1 实体图上图为带译码器的电路,下图为不带译码器的电路。5.2 输入、输出信号说明输入:DN:day OR night 控制;SS:Start OR stop 控制;WR:wait OR run 控制;CLK:输入时钟信号,模拟时间和路程。输出:DNPB:用于判别白天还是黑夜的输出信号,接至发光二极管,白天不发光,黑夜的时候发光。FY1:费用的十位FY0:费用的个位DDSJ1:等待时间的十位DDSJ0:等待时间的个位LC1:路程的十位LC0:路程的个位输出的为七段码5.3 波形仿真考虑到仿真结果的明了,这里只给出未加译码器时的仿真,输出为 BCD 码。可

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报