




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于CPLD的出租车计价器设计软件设计学生:XX 指导教师:XX内容摘要:随着电子行业的迅猛发展,计价器在各个领域中的使用越来越频繁,用户对计价器的要求也越来越高。以出租车多功能计价器为例,用户不仅要求计价器性能稳定,计费准确;不同国家和地区的收费方式存在差异,即使在同一地区,不同车型的出租车其收费方式也有差别,而且出租车还面临几年一次的调价或调整收费方式等问题。传统的基于单片机设计的出租车多功能计价器已远远跟不上这种变化,功能升级很繁琐,需要硬件重组和软件更新同步进行,成本高,并且每次升级都可能产生新的不稳定因素;而本设计是基于复杂可编程逻辑器件 (CPLD)的出租车自动计价系统,采用超高速集成电路硬件描述语言VHDL和逻辑综合为基础的自顶向下的电路设计方法,在硬件电路不加改变的前提下, 功能升级十分方便,从使用情况看, 该设计稳定性好、可靠性高, 市场前景良好,而且开发成本低,周期短,极大的满足了用户的变化要求。关键词:CPLD 超高速集成电路硬件描述语言 仿真Based on the design of the meter taxi CPLD-software designAbstract: Along with the fast fierce development of the electronics profession, charge the machine in each realm of usage is more and more multifarious, the request of customer to the charge machine is also more and more high. To take multi-function charge machine of the rent car as an example, the customer not only request to charge the machine function stability, charge accurate; the for-rent car of different from the charges method existence difference of the region, even in same region, car in different nation type it charges the way but also have the difference, and rent the car to still faces a time fee hikes of several years or adjust to charge the way etc. problem. Traditional according to a machine design of multi-function charge machine of for-rent car has already canned not keep up with this kind of variety far and far, the function upgrade is very tedious, needing the hardware reorganization to carry on with the software renewal synchronously, the cost is high, and upgrade each time may produce the lately unsteady factor; but according to programmable logic array( CPLD) of the spot of multi-function charge machine of for-rent car, the adoption hardware description language the VHDL and logic is comprehensive for basal from the crest get down of the electric circuit design method, Does not change in the hardware electric circuit under the premise, the function upgrade extremely conveniently, looking from the service condition, this design stability good, the reliability is high, the market prospect is good, moreover the development cost is low, the cycle is short, enormous has satisfied the change request of customer.Keywords:CPLD super speed integrated descriptive language SimulationII目 录前言11 设计要求32 相关技术介绍32.1 CPLD简介32.1.1 CPLD的基本结构32.1.2 CPLD的特点42.2 VHDL语言简介52.2.1 VHDL语言的优点52.2.2 使用VHDL语言的可行性52.3 Xilinx Foundation F1.5系统简介63 出租车自动计价系统的设计63.1 系统基本设计思想及实现的功能及要求63.1.1 系统基本设计思想63.1.2 系统实现的功能及要求63.2 系统软件设计83.2.1 电子钟程序设计83.2.2 计价部分程序设计103.3 程序仿真图164 结束语19附录21参考文献2930基于CPLD的出租车计价器设计软件设计前言当今社会是数字集成电路广泛应用的社会。数字集成电路由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路ASIC(Application Specific Integrated Circuit)。在现代复杂的数字逻辑系统中,专用集成电路的应用越来越广泛,曾经广泛使用的由基本逻辑门和触发器构成的中小规模集成电路所占的比例越来越少。专用集成电路ASIC是面向用户定义用途或特定功能的大规模,超大规模集成电路。专用集成电路的英文是Application Specific Integrated Circuit, SIC是其英文缩写。ASIC有数字的、模拟的、数字和模拟混合的。按制造方式区分,有全定制ASIC、有半定制ASIC、可编程ASIC三种。其中可编程ASIC可做到用户在现场对其编程来实现各种特定的逻辑功能。正是可编程ASIC独特的器件性能和应用方式使拥护可“自制”大规模数字集成电路的理想成为现实。现在,使用可编程ASIC和相应的EDA开发系统,用户可以借助计算机实现各种实际的数字电路或电子系统的设计、功能模拟、时间模拟以及系统调试。因此,可编程ASIC的问世及广泛应用促进了电子系统设计方法的重大变革这一说法毫不过分。从20世纪70年代Intel公司第一个推出4004MPU起到80年代初,是MPU技术飞速发展的时期。MPU技术的快速渗透刺激了MPU外围LSI器件的发展。当时由MPU、MPU的外围LSI器件,通用IC这三大积木块搭起来可以标准地实现一个复杂的电子系统。到了20世纪80年代中期MPU由8位、16位发展到32位,速度和集成度越来越高,再加上电子产品的少少批量多品种化趋势,高速低功耗及小型化的要求,原来的电子系统中MPU的外围LSI和通用IC适应不了这一技术上的变化。20世纪80年代中期以来可编程ASIC以其现场可编程,高速,高集成度的优势充当了电子系统中的新的积木块。由MPU、存储器和可编程ASIC这三个可编程的积木块组成现代电子系统已形成趋势或潮流。是否采用可编程ASIC来实现电子产品的设计已成为衡量电子产品是否先进的标准之一。可以说可编程ASIC技术是现代电子系统设计的新潮流,对于一个现代电子系统设计师来说,学习应用可编程ASIC技术势在必行。虽然ASIC的成本很低,但设计周期长,投入费用高。可编程逻辑器件(PLD,Programmable Logic Device)自问世以来,经历了从低密度的PROM、PLA、PAL、GAL到高密度的现场可编程门阵列(FPGA,Field Programmable Gate Array)和复杂可编程逻辑器件CPLD(Complex Programmable Logic Device)的发展过程。大规模可编程逻辑器件的出现打破了中小规模通用型集成电路和大规模专用集成电路垄断的天下,它们既继承了专用集成电路的高集成度、高可靠性的优点,又克服了专用集成电路设计周期长、投资大和灵活性差的缺点;它们也可以解决使电子系统小型化、低功耗、高可靠性等问题。利用它们进行产品开发,不仅设计制造成本低、设计开发周期短、开发工具先进、可靠性高,而且具有完全的知识产权,给设计人员带来了诸多方便。FPGA/CPLD因此被广泛应用于电子产品的原型设计和电子产品生产(一般在1万件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均应用FPGA和CPLD器件。FPGA与CPLD都是可编程逻辑器件,它们是在PAL、GAL 等逻辑器件的基础之上发展起来的,它们在高密度、高速度、低功耗等方面发展很快,同以往的PLA、PAL、GAL等相比较,FPGA/CPLD 的规模比较大,它可以替代几十甚至几千块通用IC芯片。在这十几年的发展过程中,以FPGA/CPLD为代表的数字系统现场集成技术取得了惊人的发展,单一芯片的门数从几百门增加到数百万门,现场可编程逻辑器件从最初的1200个可利用门,发展到90年代的25万个可利用门。目前,国际上著名半导体器件公司有Xilinx,Lattice,Altera等,研发出若干新型的大规模可编程逻辑器件。CPLD有Xilinx公司的XC9500系列, Lattice公司的ispLSI/PLSI1000系列和MACH5系列,Altera公司的MAX7000系列和MAX9000系列等。Xilinx公司的XC5000/4000系列,Actel公司的ACT系列,TI公司的TPC系列, Altera公司的FLEX系列等是FPGA的代表产品。厂商又陆续推出了数百万门的单片FPGA芯片,将现场可编程器件的集成度提高到一个新的水平。随着可编程逻辑器件及EDA技术的高速发展,电子系统向集成化、小型化、大规模和高速度的方向发展,电子系统的设计技术和工具也发生了深刻的变化。计算机技术的普及加速了电子设计自动化技术的进程,EDA开发系统的自动化和智能化程度也日臻完善。由美国国防部提出的VHDL(Very High Speed Integrated Circuit Hardware Description Language)即超高速集成电路硬件描述语言,是为了要解决项目间的信息交换困难和设计维护困难,同时也为解决当时的超高速集成电路(VHSIC,Very High Speed Integrated Circuit)计划而提出的一种硬件描述语言,采用高层次的、自顶向下的设计方法来描述硬件,非常适合当前需要。它改变了传统的数字系统的描述方法和设计方法,使得软件实现硬件化、硬件设计软件化、用户自制大规模和超大规模集成电路等都成为了现实。美国国防部1987年12月IEEE接受VHDL为标准的HDL,这就是今天的IEEE STD1076-1987和IEEE STD1076-1993。Foundation Series可编程器件开发系统是Xilinx公司设计的EDA工具,具有很强的开发和设计功能,是电子设计不可缺少的工具,他可以接受多种方式的输入:原理图输入、文本输入(硬件描述语言)、第三方EDA工具提供的接口等。系统的仿真器具有很强灵活性,可以控制对单器件或多器件的仿真。1 设计要求出门坐出租车已成为现在很多人的选择,不仅随叫随到而且快捷方便,那么公平合理准确的计费就成为人们最关注的问题。本文主要内容是利用CPLD可编程逻辑器件设计并实现一个适合实际的出租车计价系统,采用VHDL语言进行编程,编程环境为Xilinx 公司的可编程器件的开发系统(Xilinx Foundation),源程序文件经编译后下载到可编程逻辑器件XC 9572芯片内部后,可应用于实际的出租车计价系统中。2 相关技术介绍2.1 CPLD简介复杂可编程逻辑器件CPLD与现场可编程门阵列FPGA都是在PLA、PAL、GAL等逻辑器件的基础上发展起来的。与以往的PLA、PAL、GAL等相比较,FPGA/CPLD的规模比较大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个子系统部件。这种芯片受到世界范围内电子工程设计人员的广泛关注和普遍欢迎。2.1.1 CPLD的基本结构CPLD的集成度在千门/片以上,其基本结构是由与阵列、或阵列、输入缓冲电路、输出宏单元组成。其与阵列比PAL大得多,但并非靠简单的增大阵列的输入、输出端口达到。阵列占用芯片的面积随其输入端数的增加而急剧增加,而芯片面积的增大不仅使芯片的成本增大,还使信号在阵列中传输延迟加大而影响其运行速度。所以CPLD通常是由多个类似PAL功能块组成,具有很大的固定于芯片上的布线资源,通过位于中心的互连矩阵连接在一起。互连阵列要将来自I/O的信号和逻辑块的输出布线到器件内任何逻辑块的输入。一般互连矩阵有两种形式:基于阵列的互连和基于多路开关的互连。基于阵列的互连是纵横开关的实现方式,它允许任何输入到互连矩阵中的信号布线到任何逻辑块,是完全可布通的。基于多路开关的互连是对逻辑块的每个输入有一个多路转换器,输入到互连矩阵的信号被连接到每个逻辑块的大量多路开关的输入端,这些多路转换器的选择是可编程的,只允许其一个输入通过它进入逻辑块。所以布通率与多路转换器的输入宽度有关,宽度愈大,所占面积增加,性能降低。与FPGA相比,CPLD不采用分段互连方式,因而具有较大的时间可预测性,产品可以给出引腿到引腿的最大延迟时间;此外,CPLD具有很宽的输入结构,适合于实现高级的有限状态机;具有ISP性能的CPLD,可以直接在系统内对其进行编程,因而类似于具有ISP性能的SRAM查找表类型的FPGA。2.1.2 CPLD的特点20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD和与标准门阵列类似的FPGA ,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活,具有以下特点:目前的 CPLD主要是基于E2 PROM或 FLASH存储器编程 ,编程次数达 1万次。其优点是在系统断电后 ,编程信息不丢失。CPLD又可分为在编程器上编程和在系统编程 (ISP) CPLD两种。 ISP器件的优点是不需要编程器 ,可先将器件装焊于印制板 ,再经过编程电缆进行编程,编程、调试和维护都很方便 。 CPLD是将多个可编程阵列逻辑 (PAL)器件集成到一个芯片 ,具有类似 PAL的结构。一般情况下CPLD器件中至少包含三种结构 :可编程逻辑功能块 (FB);可编程 I/ O单元 ;可编程内部连线 。 在速度上CPLD优于 FPGA。由于 FPGA是门级编程 ,且 CLB之间是采用分布式互连 ;而 CPLD是逻辑块级编程 ,且其逻辑块互连是集总式的。因此 ,CPLD比 FPGA有较高的速度和较大的时间可预测性 ,产品可以给出引腿到引腿的最大延迟时间 。 FPGA/CPLD软件包中有各种输入工具和仿真工具,以及版图设计工具和编程器等全线产品,电路设计人员在很短的时间内就可完成电路的输入、编译、优化、仿真,直至最后芯片的制作。电路设计人员使用FPGA/CPLD进行电路设计时,软件易学易用。2.2 VHDL语言简介当前,在国内外应用的硬件描述语言有许多种,VHDL语言是应用最广泛的硬件描述语言之一。VHDL语言功能相当强大,不但适应了当今电子设计自动化技术的飞速发展,还变革性地促进了电子设计自动化技术的进步。世界上一些著名EDA公司的开发工具均支持VHDL。用VHDL语言编程实现数字电子系统硬件设计容易做到技术共享,HDL语言最适合于用CPLD和FPGA等器件实现数字电子系统设计。2.2.1 VHDL语言的优点VHDL语言主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。VHDL语言的程序结构特点是见一项工程设计,或称设计实体(可以是一个元件、一个电路模块湖一个系统)分成外部(或称可视部分,即端口)和内部(或称可视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能检查设计系统的功能可行性,随时可对设计进行仿真模拟。VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须由许多甚至多个开发组共同并行工作才能实现。对于用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表。VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结。2.2.2 使用VHDL语言的可行性使用VHDL语言设计出租车自动计价系统,使其实现出租车上电子数字钟和计费器以及预置和模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示时钟和车费数目,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点。VHDL语言编制的程序编译通过下载到特定芯片后,可应用于实际的出租车计价系统中。2.3 Xilinx Foundation F1.5系统简介Xilinx Foundation系统是Xilinx公司可编程器件的开发系统之一,是一种目前使用较广的开发系统。该系统提供一个非常友好的用户界面,具有很强的开发和设计功能。在此开发系统下,用户可以完成从设计输入到设计仿真;从设计编译到器件编程,全部操作都在一个图形界面下操作完成。Foundation系统 支持Xilinx公司的全部系列的可编程逻辑器件,利用该系统可以开发任何一种Xilinx公司可编程逻辑器件。3 出租车自动计价系统的设计3.1 系统基本设计思想及实现的功能及要求3.1.1 系统基本设计思想本系统设计包含电子钟和计价器的设计,用VHDL语言实现整个系统的设计,编程环境为Xilinx Foundation F1.5系统。电子钟程序的设计要有时分秒的计量及显示,并且要有调节时间的功能。计价器程序的设计要有行驶路程、总金额和等待时间的计量及显示。设计最终生成SRAM 目标文件( 3 .sof) ,通过JTAG 端口下载、Byte2Blaster 编程电缆并行口PS 配置,将设计数据下载到相应的CPLD中。3.1.2 系统实现的功能及要求出租车自动计价系统实现两方面的功能,一是有一个电子数字钟的显示,一是计价部分(计价器),如图3.1.2-1所示。图3.1.2-1 计价系统功能框图电子钟实现功能及要求:在LED数码管上显示时、分、秒;设置清零按键clr,Clr信号有效时,使小时为1和分钟为1;设置小时调整按键,使小时加1,设置分钟调整按键,使分钟加1计价器实现功能及要求:实现预置功能,能预置起步费,车行1.5公里内,且累计等待时间2分钟内,起步费3元;实现计价、计时、计程功能:计价部分为:起步费6元,车行1.5公里外以每公里1元计费,累计等待时间2分钟内不计费,2分钟外以每分钟1.5元计费。计价范围为0-999.9元,分辨率为0.1元。计时部分为:计算乘客等待时间,计时器量程为59分,满量程自动归零。计时分辨率为1分钟。计程部分为:计算乘客所行驶的公里数,计程器的量程为99公里,满量程自动归零。计程分辨率为0.1公里。设计动态扫描显示电路,显示出租车费、等待时间、行驶路程。公里脉冲传感信号设定为每发一个脉冲代表运行了0.1公里。3.2 系统软件设计系统软件总体设计包括四大模块,即分频模块、控制模块、计量模块(含电子钟)和译码显示模块。分频模块对输入脉冲进行分频,得到频率为15Hz、10Hz和1Hz三种频率时钟信。控制模块是系统的核心部分,对计价器的状态进行控制。计量模块完成钟表计时,出租车计价、计时、计程功能。动态扫描/译码显示模块完成电子钟、计费、计时、计程数据显示。程序设计时将电子钟显示、里程和等待时间显示、计费显示模块的动态扫描功能独立出来,单独设计一个共用的扫描模块,因此将电子钟显示、里程和等待时间显示、计费显示模块各自都分为计数模块和扫描两个模块。3.2.1 电子钟程序设计电子钟原理图如图3.2.1-1所示。图3.2.1-1 电子钟原理图电子钟端口信号图见图3.1.2-2。图3.1.2-2 电子钟端口信号图f1为系统分频模块产生的1s时钟信号。h_add信号为小时调整按键输入信号。h_add信号有效时,小时数字加1。m_add信号为分钟调整按键输入信号。m_add信号有效时,分钟数字加1。clr信号为电子钟清0使能信号。scanclk信号为LED数码管的动态扫描信号。电子钟程序设计时主要是1秒脉冲的累加,分别设秒低位、秒高位、分低位、分高位、小时低位和小时高位,我们定义6个4位的信号分别代表电子钟的各位:s0、s1、m0、m1、h0和h1。当s0计到9时则s1加1,当s0和s1分别为9和5时,则m0加1,同时s0、s1清0。分钟和小时位也是同样的道理,当m0计到9时则m1加1,当m0和m1分别为9和5时,则h0加1,同时m0、m1清0。小时位在累加到12时则清0,在累加时同时还要判断调节信号(h_add、m_add)是否为0,不为0时则为电子钟调节,调节信号每来一个上升沿,对应的分或小时加1。电子钟程序框图见图3.1.2-3所示。图3.1.2-3电子钟程序框图3.2.2 计价部分程序设计系统分频模块产生15Hz、10Hz和1Hz三种频率时钟信号。见系统仿真图。整个计费过程可以归总到一个流程图中,设定K0为计价器启动start键。租车在载客期间的行使状态,K0判断载客的开始与结束。K2为等待信号stop_wait,K2为1为等待状态,为0为行使状态。用K0判断出当开始工作时,计费器要循环判断是否有传感器脉冲和等待信号,当一直有传感器脉冲时计费器要累加脉冲数当100米时发送一个里程信号,同时里程信号也要不断累加,当累加到1公里时,显示的里程和金额同时加上相应的金额。当判断到有等待信号时,开始途中等待计价模式,开始等待时间计时。等待计价部分也可以设不同等待单价,小于1.5公里时和大于1.5公里时可以有不同的等待单价。我们在这里当等待过程中没有超过免费等待时间2分钟不累加总金额,当超过等待时间2分钟时,按等待单价累加到总金额上,但总路程不加。K0是否按下K2是否为1赋初始值默认单价启动计价有里程信号吗够一公里吗有传感信号吗停止计价和里程计数开始计时YY总路程加一总金额加一NS2是否为1等待单价YYNYN够一分钟吗等待时间加一YNNY图3.2.2-1总计量流程图控制模块如图3.2.2-2。图3.2.2-2控制模块图3.2.2-3 控制模块工作流程图当开始键start按下后,启动计价器,stop-wait为中途等待信号,当有等待信号时,控制器启动等待计时模块,开始计等待时间,当stop-wait为0,而有公里脉冲时,计价器则开始计程。计量模块分三部分:计价模块、计时模块、计程模块。计程模块:图3.2.2-3 计程模块端口信号图3.2.2-5 等待计时模块端口信号计程模块的作用就是一个累加器的作用,Km0、Km1、Km2分别为里程的个十百位,每来一个里程信号,个位加1,因此要循环的判断个位是否达到9当达到时,十位加1,同时个为清0,十位和百为同样的道理。输出三位,公里显示三位,后面的计价模块要根据计程模块的输出计价。计时模块:图3.2.2-5 等待计时模块端口信号计时显示两位分辩率为一分钟,最大计时量为99分钟,f1为秒信号,因此在编程时可以设置一个中间计数变量w,当其计数达到60秒时,等待时间的低位加一,并把这一变量清0,分钟的高低位以计数达到9判断进位。当计到99时等待时间高低位全部清0。启动等待计时stop_wait=1秒信号累加s=60?分钟值加1YN图3.2.2-6 等待计时模块计价模块:计价模块百元 Cha33-0十元Cha23-0元Cha13-0角Cha03-0f(f10,f15)start图3.2.2-7 计价模块计价模块以计程模块输出,和等待时间的输出来计算。计价初始值为6大于3公里后,每公里为1元。等待时间大于2分钟部分没分钟1.5元,这样计价编程时只要在路程和等待时间上减掉一个固定值即可,下面是计价部分的程序流程框图。金额的累加由控制信号en0和en1来控制,当控制模块控制信号输出为en0=1时则累加公里单价信号f10,f10为10Hz信号,累加1秒钟则金额加1元,当控制信号为en1=1时则累加公里单价信号f15,f15为15Hz信号,累加1秒钟则金额加1.5元。这样就实现了公里单价和等待单价的变换累加。图3.2.2-8 计价模块程序流程动态显示模块:clikrow000 001 010 011 100 101图3.2.2-9 动态显示数码管由循环控制信号row控制循环扫描点亮。3.3 程序仿真图出租车计价器VHDL程序仿真图。分频模块VHDL程序仿真图如图3.3-1。输入脉冲为CLK,分频得到f15为15H频率信号,f10为10Hz频率信号,f1为1Hz频率信号。f15代表等待单价为1.5元每分钟,f10代表里程单价为1元每分钟。图3.3-1秒分频模块程序仿真图数字电子钟模块VHDL程序仿真图如图3.3-2、图3.3-3。图3.3-2为数字电子钟初始化仿真图,CLR为低清零时,分钟显示为1,小时显示为1。图3.3-3为电子钟实时仿真图,时间为07时21分36秒。图3.3-2数字电子钟初始化仿真图图3.3-3数字电子钟模块程序仿真图出租车计价部分VHDL程序仿真图如图3.3-4。仿真结果为行驶39公里,等待6分钟,总费用50元。图3.3-4出租车计价部分程序仿真图当行使路程小于3公里时的仿真图的显示部分,如图3.3-5所示。仿真图显示当行驶小于3公里时金额为6元,当行使4公里等待时间为0时金额为8元。图3.3-5 路程小于3公里当等待时间大于2分钟时的时序图,如图3.24。行驶21公里,等待3分钟时,金额为28元,证明本设计是正确的。图3.3-6等待时间大于2分钟4 结束语本计费器在设计过程中由于采用了CPLD 和硬件描述语言(VHDL ) , 在硬件电路不加改变的前提下, 功能升级十分方便, 极大的满足了用户的变化要求。从使用情况看, 该计费器稳定性好、可靠性高, 市场前景良好,VHDL硬件描述语言打破了硬件和软件设计人员之间互不干涉的界限,可以使用语言的形式来进行数字系统的硬件结构、行为的描述,直接设计数字电路硬件系统。从本文描述的出租车计费系统可以看出,通过编程、下载后,该芯片已经具备了原来需要使用复杂的数字电路实现的功能;这样,使用语言描述的形式,大大缩短了开发周期,减少了开发难度,并使得系统更加灵活、稳健。 大学生活一晃而过,回首走过的岁月,心中倍感充实,当我写完这篇课程设计的时候,有一种如释重负的感觉,感慨良多。首先感谢我的母校为我们提供了良好的学习环境,使我们能在这里专心学习,陶冶情操。通过大学四年的学习,我开拓了自己的视野,夯实了自己的专业知识,与同学之间建立了良好的人际关系。感谢我们系的系主任XX主任,感谢他为我们学习进行指导,同时感谢我们的辅导员,为我们学生所做的一切。在这次做课程设计时,XX老师和XX老师给与了此课程设计的指导工作,并且提出我课程设计当中的错误,使我受益匪浅。在此谨向XX和XX老师致以诚挚的谢意和崇高的敬意。另外,我必须感谢我的父母。焉得谖草,言树之背,养育之恩,无以回报。作为他们的孩子,我秉承了他们朴实、坚韧的性格,也因此我有足够的信心和能力战胜前进路上的艰难险阻;也因为他们的日夜辛劳,我才有机会如愿完成自己的大学学业,进而取得进一步发展的机会。最后,再次对关心、帮助我的老师和同学表示衷心地感谢!附录:电子钟程序系统程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all; use ieee.std_logic_signed.all; entity watch is port ( f1: in std_logic; scanclk: in std_logic; clr: in std_logic; m_add: in std_logic; h_add: in std_logic; row:out std_logic_vector (2 downto 0); led:out std_logic_vector (7 downto 0) ); end watch; architecture behavioral of watch is signal h1,h0,m1,m0,s1,s0:std_logic_vector(3 downto 0);signal dispcnt:std_logic_vector(2 downto 0); signal num:std_logic_vector(3 downto 0); begin p1: process(f1,clr) begin if(clr=0)then s0=0000; s1=0000; elsif rising_edge (f1) then if s0=1001then s0=0000; else s0=s0+1; end if; if(s1=0101) and (s0=1001) then s1=0000 ; elsif s0=1001 then s1=s1+1; end if; end if; end process p1;p2: process(f1,clr,s1,s0,m_add) begin if clr=0 then m0=0001; m1=0000; elsif rising_edge(f1)then if(s1=0101)and(s0=1001)or(m_add=0)then if(m0=1001)then m0=0000; else m0=m0+1; end if; if(m1=0101)and(m0=1001)then m1=0000; elsif m0=1001 then m1=m1+1; end if; end if; end if; end process p2;p3:process(f1,clr,m1,m0,s1,s0,h_add) begin if clr=0 then h0=0001; h1=0000; elsif rising_edge(f1) then if(s1=0101) and (s0=1001) and (m1=0101) and (m0=1001)or(h_add=0)then if(h1=0001)and(h0=0010)or(h0=1001) then h0=0000; elseh0=h0+1; end if; if(h1=0001)and(h0=0010)then h1=0000; end if; end if; end if;end process p3;end behavioral;计费程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity taxi is port ( clk: in std_logic; start: in std_logic; stop: in std_logic; fin: in std_logic; cha3,cha2,cha1,cha0: out std_logic_vector (3 downto 0); km2,km1,km0: out std_logic_vector (3 downto 0); min1,min0: out std_logic_vector (3 downto 0);end taxi;architecture taxi_behav of taxi is signal f15,f10,f1:std_logic; signal q15:integer range 0 to 15; signal q10:integer range 0 to 23; signal q1:integer range 0 to 239; signal w: std_logic_vector (5 downto 0); signal c3,c2,c1,c0:std_logic_vector (3 downto 0); signal k2,k1,k0:std_logic_vector (3 downto 0); signal m1:std_logic_vector (2 downto 0); signal m0:std_logic_vector (3 downto 0); signal en1,en0,f:std_logic;beginp4:process(clk,start) begin if clkevent and clk=1 then if start=0 then q15=0;q10=0;f15=0;f10=0;f1=0;f=0; else if q15
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 作用域和闭包机制问答
- 职业教育培训方案制定
- 促销活动页面设计方案
- 建筑施工用电安全操作规范解读
- 幼儿园安全管理责任制执行报告
- 北师大版初中数学矩形性质练习题
- 混凝土搅拌站运行管理手册
- 财务预算编制与控制流程说明
- 经典逻辑难题数独及解法详细解析
- 商业银行利率风险管理案例分析
- 特种作业电工安全培训
- DB37-T 1933-2022 氯碱安全生产技术规范
- 校园传染病防控班主任培训
- 《大肠癌的治疗进展》课件
- GB/T 15268-2024桑蚕鲜茧
- GYK运行记录智能分析系统研究
- 计划生育服务站劳动合同
- GB/T 44757-2024钛及钛合金阳极氧化膜
- 红领巾爱祖国 星星火炬耀成长主题班会2
- 中国地级市经纬度-精确版
- 07SG111-1 建筑结构加固施工图设计表示方法
评论
0/150
提交评论