出租车自动计费器设计(课程设计报告模板)_第1页
出租车自动计费器设计(课程设计报告模板)_第2页
出租车自动计费器设计(课程设计报告模板)_第3页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录1 绪论 11.1 设计背景 11.2 QUARTUSII 简介 . 11.3 VHDL语言基础 22 出租车计费器总体设计结构 22.1 系统设计要求和目的 22.2.1 系统设计要求 22.2.1 系统设计目的 22.2 设计思路 32.3 系统总体结构 32.4 出租车计费器系统工作流程图 43 出租车计费器的实现 53.1 出租车计费器的顶层原理图 53.2 系统各功能模块的实现 53.2.1 计费模块 JIFEI 53.2.2 计量模块 JILIANG 63.2.3 显示控制模块 SELTIME 73.2.4 显示模块 DELED74 出租车计费器系统仿真及分析 84.1 计费系

2、统的仿真 84.2 单元模块的仿真及分析 104.2.1 译码显示模块的仿真及分析 104.2.2 显示控制模块的仿真及分析 124.2.3 计量模块的仿真及分析 134.2.4 计费模块的仿真及分析 135 锁定管脚及硬件实现 145.1 锁定管脚图 145.2 硬件实现 145.2.1 显示结果的几种情况 155.2.2 硬件实现总结 166 设计体会与总结 17参考文献 18附 录 191 JILIANG模块的VHDL编程 192 JIFEI模块的 VHDL编程 213 SELTIME控制模块的VHDL编程 224 DELED模块的VHDL编程 231 绪论1.1 设计背景随着我国社会经

3、济的全面发展,各大中小城市的出租车营运事业发展迅速, 出租车已经成为人们日常出行选择较为普通的交通工具。 于是,出租车行业以低 价高质的服务给人们带来了出行的享受。 但是总存在着买卖纠纷困扰着行业的发 展。而在出租车行业中解决这一矛盾的最好方法就是改良计价器。 汽车计价器是 乘客与司机双方的交易准则, 它是出租车行业发展的重要标志, 是出租车中最重 要的工具, 它关系着交易双方的利益。 具有良好性能的计价器无论是对广大出租 车司机朋友还是乘客来说都是很必要的。 因此,汽车计价器的研究也是具有一定 意义的。 出租车计费器是出租车营运收费的专用智能化仪表, 是出租车市场规范 化,标准化以及减少司机

4、与乘客之间发生纠纷的重要设备。一种功能完备,简单 易用,计量准确的出租车计费器是加强出租车行业管理, 提高服务质量的必需品。 本设计就是采用VHDL硬件描述语言作为设计手段,采用自己的设计思路,得到 一种出租车计价系统的软件结构,通过 Quartus II 6.0 软件下进行仿真,证明 所设计的电路系统完成了出租车计价的功能, 各项指标符合设计要求, 具有一定 的实用性。1.2 QUARTUS II 简介QUARTUS II是Altera 公司的综合性 CPLD/FPGAT发软件,支持原理图、VHDL、VerilogHDL 等多种设计输入形式,内嵌自有的综合器以及仿真器,可以 完成从设计输入到

5、硬件配置的完整 CPLD设计流程。QUARTUS II支持Altera的 片上可编程系统(SOPC开发,集系统级设计、嵌入式软件开发、可编程逻辑设 计于一体,是一种综合性的开发平台。 Altera QUARTUISI 作为一种可编程逻辑 的设计环境 , 由于其强大的设计能力和直观易用的接口, 越来越受到数字系统设 计者的欢迎。1.3 VHDL 语言基础一般而言,一个相对完整的 VHDL语言程序至少应三个基本组成部分:库(Library )、程序包(Package)使用说明;实体(Entity )说明;实体对 应的结构体(Architecture )说明。其中,库、程序包使用说明用于打开(调用)

6、 本设计实体将要用到的库、 程序包;实体说明用于描述该设计实体与外界的接口 信号说明,是可视部分;结构体说明用于描述该设计实体内部工作的逻辑关系, 是不可视部分。在一个实体中,允许含有一个或多个结构体,而在每一个结构体 中又可以含有一个或多个进程以及其他的语句。 根据需要, 实体还可以有配置说 明语句。配置说明语句主要用于以层次化的方式对特定的设计实体进行元件例 化,或是为实体选定某个特定的结构体。2 出租车计费器总体设计结构2.1 系统设计要求和目的2.2.1 系统设计要求1. 起步价为 5.0 元,起步公里为 3 公里;2. 超过 3 公里,每公里按 1 元收费,也可每 0.1 公里按 0

7、.1 元收费;3. 等候时间累计 1 分钟,按每分钟 0.1 元收费;4. 用三个数码管显示总金额, 最大值为 99.9 元;用三个数码管显示总里程, 最大值 99.9 公里;用两个数码管显示等待时间,最大值 99 分钟。2.2.1 系统设计目的1. 通过这次实验设计使我们加深对 EDA技术与数字系统设计相关理论和概 念的理解,培养我们的理论联系实际的能力,特别是实际动手能力。2. 学习使用QUARTUS I软件设计。3. 根据原理图学会用VHDL语言设计时序电路。4. 学会绘制功能仿真波形图。2.2 设计思路根据设计要求,电路具有计时、计程、计费功能,用数码管显示行驶公里数、 等待时间、收费

8、金额,行车里程和等待时间的处理电路将汽车行驶的里程数、转 换成与之成正比的计费脉冲,然后由计费电路转换成收费金额,实验中以一个脉 冲模拟汽车前进十米,则每100个脉冲表示1公里,3公里以后每0.1公里产生 一个计费脉冲,一个1HZ的脉冲用来表示等待时间,60个脉冲代表1分钟,1分 钟即60个脉冲产生一个等待计费脉冲,然后用计费电路对计费脉冲进行计费。2.3 系统总体结构控制模块图2-1系统总体结构图谨 码动 态 扫 描S. 显 示出租车计费器的组成如上图所示,通过控制模块以高低脉冲模拟出租汽车启 动、行驶、暂停,具有控制作用;通过控制模块控制出租车的状态来选择出租车 是计里程还是计等待时间,相

9、应产生的时间计费脉冲信号和里程脉冲信号来计 费,译码/动态扫描模块将等待时间、路程与费用的数值译码后用动态扫描的方 式驱动数码管;数码管显示模块将里程数、等待时间和计费金额用数码管显示2.4 出租车计费器系统工作流程图图2-2出租车计费系统工作流程图出租车载客后,启动计费器,整个系统开始工作,进入初始化状态,即计程 从0开始,计费从5.0元开始。再根据BREAKS号判断行驶还是暂停。若是行驶 状态,计费器开始进行里程计数,当里程超过 3公里时,计费器开始累加,按每 0.1公里收费0.1元计算,计程器则继续,否则计费器不变。若是暂停状态,计 费器开始进行等候时间计数,当等候时间累计1分钟,则每分

10、钟0.1元计费。最后将等候时间、里程、计费都显示出来。3出租车计费器的实现3.1出租车计费器的顶层原理图二 尹-Ij 'ui flin iBi ii vi »-a-sa tar aiB-:洋快汗一产4; ! II II 利 I IIV li illffllll"Hia!MIII IS 'I: eye亠 1 ra Hi ir ,;CUC1I '- Bill I I ! - I I- CfiVE y ra mi- i &n*£I、_,亠 Is fw T=nrBTBa_B "Tr-nri= r-«r m _ =i-LA

11、SS !* i *! 9-4 IBiAiBi ir iliMIIIUI产rwr a- :STATCLKBt更隠 raoci &r<Mip qemn e召JJMi N13 JMlMqj 可Ywe島.tK孑丹1品4L K:J.T*“3护甸 ST駅T ©Hip S DRP< Crop OJwnireffiijfifi'': 一巴r T ,' 1:;:;: ;J*JOUP TTpKMXSJQ:WWTGHjp.gjC-1p 网O«fB q KWp q 畑甲gj whip qiy IHQAi .Bl& -即丁L八1 iJDi :当 X

12、i1o17i昌亠1i图3-1出租车计费器顶层原理图原理图中输入部分分别是 CLK秒脉冲信号,1个脉冲代表1秒,则60个脉 冲表示1分钟。CLK1: 10米脉冲信号,1个脉冲代表10米,则10个脉冲表示 100米,100个脉冲代表1公里。START计程车开启信号;DRIVE计费器启动信 号;BREAK等待信号,SEL为计数控制信号输出端。3.2 系统各功能模块的实现3.2.1 计费模块JIFEI计费(JIFEI )模块也是本系统的核心,完成起步价计费,等待时间计费,里程计费功能。计费器启动,显示起步价 5.0元,之后每来一个行驶里程计 费脉冲或者等待时间计费脉冲,计费金额自动加0.1元。计费显示

13、用3位数码管, 所以计费最大值为99.9元。其中CH2表示费用的十位,CHI表示费用的个位, CH0表示费用的十分位。B为等待时间计费脉冲信号或里程计费脉冲信号。Fjifei1ELCH23.OSTART1CH13. 0DRIVECHO3.Oinst图3-2 JIFEI 模块图3.2.2 计量模块JILIANGJiLiANGSTART011CLK02CLK1KM2y 0DRIVE0BREAKKMO3.0:MIN13.OMINQ3.OTI:inst2图3-3 JILIANG 模块图本模块是系统的核心模块之一,能够对外部的行驶距离脉冲、等待时间脉冲 进行计数。因为行驶距离每脉冲代表 10米,所以计满

14、100个数就输出一个行驶 距离计费脉冲,因为3公里之内属于起步价,所以前3公里内不输出行驶距离计 费脉冲,因为用3位数码管来显示行驶距离,其中两位整数,一位小数,所以行 驶距离最小分辨率为0.1公里,行驶距离脉冲每计10个数,行驶距离输出加0.1, 行驶距离最大值为99.9公里。其中KM2为里程的十位,KM1为里程的个位,KM0 为里程的十分位。等待时间脉冲频率为 1HZ所以一个脉冲代表1秒,60个等待 脉冲是1分钟,输出等待时间加1,等待时间满1分钟计一次费,所以对等待时 间脉冲计数,计满60个数就输出一个等待计费脉冲。等待时间最大值为99分钟。MINI为等待时间的十位,MINO为等待时间的

15、个位。将行驶距离、等待时间 送到SELTIME莫块,时间与里程计费脉冲送到计费模块完成里程、等待时间的计 费功能。B1为超过3公里后,每0.1公里产生的计费脉冲。B2为每等待一分钟 产生的计费脉冲。3.2.3 显示控制模块SELTIMEJselH:irwLIEdkdp1 CH?I3 .0daoutfi 0seiR.OCHau.O一'KM2I3.&1E>KM0(3l 0MIN13r.Oinst1nr图3-4 SELTIME模块图SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在数码管上 的显示位置。sel为计数控制信号输出端,功能主要是利用其计数的八个状态,

16、使daout在其每个状态下选择某一输入数据,进而将选择的的数据送入到DELED模块。dp为小数点脉冲控制信号,当该模块输出的值为里程的个位、费用的个 位时,需要考虑小数点的存在,即此时 dp= 1 ',在其他不需要小数点的情况 下,dp= 0',最后dp将信号输出到DELED模块。3.2.4 显示模块DELEDDEL£DDPA1iS3.OB;CDEFGFHI-mt2_图3-5 DELED模块图DELE模块把送入的每个四位数据转换为 7段码送出显示,能够使数码管正 常显示送入的数据。其中DP为小数点输入信号。4出租车计费器系统仿真及分析4.1计费系统的仿真SSSHSHS

17、SsrmCLKCLK1DRIVEBREAKEJIZH!1KIOMINIMEHQ匚H2CHICHOlvalue at331.0 证H 0H 0H 0H 0H 0H 0H 0H 0H 0H QH 0H 0H 0图4-1J ps 3Z0. 0 ns 640.p iu 950 0 ns 1 2c ux331.0 nsI(:(7 ' : ' /i ; i i : 5 _ i ' yli1i=-1IJJUK(二。榊I II出租车启动时计费系统功能仿真图由图4-1可知,当出租车未启动时,里程、等待时间、费用均为0。出租车刚启动时,里程、等待时间为 0,费用为出租车起步价 5 元由图S

18、TA1TH 1CLKH 0MlH 0nfiiTEH 1BREAKH 1 KM2H 1田EMIH 6田EMOH 2田 MINIH 3 MINDH 2田GHZH 2田CHIH 1 GHOH 44-2可知,匕26出租车等待时计费系统功能仿真图Vilu*4.5& he4-IS us4. 82 usI4 581IIIHill11Illi10r!卜631 X.2XMWCri>r3XglAAAAJ4.比 A. AAAA Ai'iiLU_!_/心 A图4-2当出租车在等待过程中,行驶里程16.2公里,等待时间为32分钟时,出租车的费用为:5+( 16.2-3 )X 1+32X 0.1=2

19、1.4元,与仿真结果致。N:iirieSTAETH 1cuH 1CLK1H 1DRIVEH 1BMAKH 0KM2H EKN1H 6KMOH 6MillH 6HIIDH 0CM2H 7CK1H 4CHBH t图4-3LD.5出租车行驶时计费系统功能仿真图/lue at11.3 nsa. 22 us 9.S611.14 us 11 7611.2935由图4-3可知,当出租车行驶到66.6千米,等待时间60分钟时,由仿真结 果可得出费用为 74.6元;根据设计要求计算可得费用为:5+ ( 66.6-3 )X 1+60X 0.仁74.6元。仿真结果与计算值一致,验证了设计的正确性。NameSTART

20、CLKCLK1D肚咙BKEAK 国EM2 +j KM1 S KMO MI1I1H肛BO+j CJE CHI+j CHOVtlue at3,11 usH 0H IH IH 0H 0H ilH 0H DH 0H 0H 0H 0H 0l. 6 tie 4. lb us6. 72 us. ZE nsII1405i;J图4-4出租车停车时计费系统功能仿真图当出租车停车时,出租车上的时间、里程和费用清零,为下次计费的开始做 准备。4.2 单元模块的仿真及分析4.2.1译码显示模块的仿真及分析Value at £4. 15 佔1>DPH D日2H A-S3H IV-SZ)H *-SlM g-

21、SDJH 0oLH 1aBM 1aCHlrH 1HLaHM 1ClH HM a It-8*! IIS*-fill !*!1 尸 4.0 nx9 0 n=12 g UH 站 Qzr-L_nL_rL_rL_rL_rr_JLTLjmnLrmRLrLanmnm ru-uZZnrLTLTLl nrTLTLTLR n iru图4-5译码显示模块的功能仿真图图4-5为译码显示模块的功能仿真波形图,DP S为信号输入端,也是显示控制模块的信号输出端口, ABCDEFG八个端口为八位二进制的输出端口。假设DOUT=,则 DOUT= 00111111”;,则 DOUT= 00000110';,则 DOUT

22、= 01011011”;,则 DOUT= 01001111';,则 DOUT= 01100110',则 DOUT= 01101101';,则 DOUT= 01111101';,则 DOUT= 00000111';,则 dout= 01111111';,则 DOUT= 01101111';2. DP=1 时:当 S(3 downto 0)= ' 0000' 当 S(3 downto 0)= ' 0001' 当 S(3 downto 0)= ' 0010' 当 S(3 downto 0)= &#

23、39; 0011' 当 S(3 downto 0)= ' 0100' 当 S(3 downto 0)= ' 0101' 当 S(3 downto 0)= ' 0110' 当 S(3 downto 0)= ' 0111' 当 S(3 downto 0)= ' 1000' 当 S(3 downto 0)= ' 1001',则 dout= 10111111';,则 DOUT= 10000110',则 DOUT= 11011011';,则 DOUT= 11001111'

24、;;,则 DOUT= 11100110',则 DOUT= 11101101';,则 dout= 11111101';,则 DOUT= 10000111';,则 dout= 11111111';,则 dout= 11101111';HGFEDCB”A, 由上图可以看出:1. DP=0 时:当 S(3 downto 0)= ” 0000” 当 S(3 downto 0)= ” 0001” 当 S(3 downto 0)= ” 0010” 当 S(3 downto 0)= ” 0011” 当 S(3 downto 0)= ” 0100” 当 S(3 d

25、ownto 0)= ” 0101” 当 S(3 downto 0)= ” 0110” 当 S(3 downto 0)= ” 0111” 当 S(3 downto 0)= ” 1000” 当 S(3 downto 0)= ” 1001”当 S(3 downto 0) 等于上述值以外的值时,则 DOUT'= 00000000'当 S(3 downto 0) 等于上述值以外的值时,则 DOUT'= 10000000'422显示控制模块的仿真及分析elkH 田CKDH 2 CK1H 3+ CK2K 4E 1310H 5 KM1H 5E 02H TH B田cnH日H 1田

26、 laoutH 6Vslu« 26.23 iCi1&Tn_nIfajrien_n_n_TLE lOOi00101010111Lcm001图4-6显示控制模块的功能仿真图童至审一匣77图4-6为显示控制模块功能仿真图,其中elk为时钟脉冲输入端,sei为计 数控制信号输出端,daout为sei所控制状态下的输出到数码管的位选信号,dp为小数点控制输出信号。可以看出,当时钟沿上升时刻到来时,计数器的输出 sei就自动加1,当计数器输出端加到“ 111 ”时,再来一个脉冲上升沿,则计数 的输出端sei变为“ 000”,该显示控制模块的功能主要是利用其计数的八个状 态,进而去轮流控制

27、数码管的位选信号。由图4-6可知:当sel= “000”时,则daout=CH0 当 sel= “001 ”时,daout=CH1;当 sel= “010” 时,daout=CH2 当 sel= “011” 时,daout=KM0 当 sel= “ 100” 时,daout=KM1;当 sel= “ 101 ”时, daout=KM2 当 sel= “110” 时,daout=MIN0;当 sel= “ 111” 时,daout=MIN1。 由于KM1 CH1表示里程的个位和费用的个位,其后都存在小数,故在设计中当 显示KM1 CH1时须加入小数点,此时dp='1',在其他没有

28、小数点的情况时dp= 0'。4.2.3计量模块的仿真及分析7*1 us at639(. 5 uSTAMH 1CLKH 1CLK1H 1DRIVEK L£K£A1:H QH 0EMIH 1KMOH 6HIK1H 0MINOH 5BlH 0E2H 0W 0 竺S竺亘环05 ns J640.0 ns图4-7计量模块的功能仿真图图4-7为计量模块的功能仿真图,START言号为高电平时(即出租车启动)。 当DRIVE为高电平且BREA为低电平时,出租车为行驶状态,此时里程计数模块 开始计数,每经过10个CLK1脉冲信号,里程加0.1公里,当里程计数大于3公 里时,每计0.1公

29、里产生1个B1脉冲信号。当DRIVE为高电平且BREAKS高电 平时,出租车为暂停状态,此时等待时间计数模块开始计数,每经过60个CLK脉冲信号,时间加1分钟,每计1分钟产生一个B2脉冲信号。B1和B2分别为 里程计费脉冲和等待时间计费脉冲。4.2.4 计费模块的仿真及分析Master Tinw Bar:STARTDRIVEH 1H 1H 15ECH2H0CHIH5CHO5WarnsV alue at520.0 ns52D.0彳"Pointer:23.69 hs冲U640.0 nsI01图4-8计费模块的功能仿真图图4-8为计费模块的功能仿真图当 START处于高电平且DRIVE处于

30、高电平时,每送入一个计费脉冲且计费脉冲处于上升沿时,CHO自动加1 (即每送入一个计费脉冲加0.1元)。CHO CH1 CH2为十进制计数。CH2表示费用的十位, CH1表示费用的个位,CH0表示费用的十分位,计费的最大值为 99.9元。5锁定管脚及硬件实现5.1 锁定管脚图在验证出租车计费器系统的功能之前,需要清楚实验箱与各个信号之间的对 应关系,参照资料得出本设计中各引脚的对应情况如下:No<je MamedirectorLocation1<L> AOutputPIN IO2& eCXj-tputPIN 11:P BREAKInputPIN 47牛cOutputP

31、IN 125Er CLICInputPIN 79&P CLKtInputPIN.朗7CLKJMInputP1N 3QQ尬 DOutputPIN 139A DRIVEInputPIN 4610<L>EOutputPIN 1411研 FOulputPIN.1512 GOutputPIN 1613e HOutputPIN?140 SEL3utxjtPIN 915SEL1OjtputPIN 8述衬?.OuiputP1N 717P JTARTInputPIN.45图5-1顶层原理图5.2 硬件实现通过硬件下载,该电路可以完成硬件实现,芯片管脚定义可以直接用编 辑.pin文件。完成管脚

32、定义后选择器件,编译后生成.sof文件。选择.sof文 件进行下载。下载完成后,将第一全局时钟 CLK1的跳线器接1Hz(作为秒脉冲信号),将 第二全局时钟CLK2的跳线器接1Hz(作为十米脉冲信号),将第三全局时钟CLK3 的跳线器接32768Hz用拨位开关模拟控制出租车的启动、行驶、暂停。观察数 码管上数据的变化是否符合设计标准。在试验箱上八个数码管从左至右分别显示 的是:等待时间的十位、等待时间的个位、里程的十位、里程的个位、里程的十分位、费用的十位、费用的个位、费用的十分位521显示结果的几种情况图5-2验证结果1图5-2表示出租车等待了 1分钟,行驶了 3.9公里,即时车费为6.0元

33、。根 据设计要求计算所得费用为:5元+(3.9-3 )公里X 1元/公里+1分钟X 0.1元/ 分钟=6.0元,计算结果与试验箱上所得显示结果相同。0 3 0 6.8 0 3. I图5-3 验证结果2图 5-3 表示出租车等待了 3 分钟,行驶了 6.8 公里,即时车费为 9.1 元。根 据设计要求计算所得费用为:5元+ (6.8-3 )公里X 1元/公里+3分钟X 0.1元/ 分钟 =9.1 元,计算结果与试验箱上所得显示结果相同。在试验箱验证过程中,我们可以看到,八位数码管的右三位显示起步价 05.0, 中间三个数码管在以 0.1 为步长进行加法显示行驶里程, 当行驶里程超过 3公里 之后

34、,每 0.1 公里计费金额加 0.1 元,当我们按下等待暂停键,每分钟左边两个 数码管加 1,其显示的等待时间,当等待时间到 1 分钟时,计费金额加 0.1 元, 由此我们可以判断,系统设计符合要求。5.2.2 硬件实现总结通过对每一模块的仿真和下载, 可以实现各个模块的逻辑功能, 验证了各个 模块的正确性。在出租车计费系统的 4 个模块中,重点在于计量模块 (JILIANG) , 计费模块(JIFEI ),显示控制模块(SELTIME ,译码显示模块(DELED。JILIANG 模块主要有汽车的开始、运行、暂停, JILIANG 模块主要记录出租车的行驶里程 和等待时间,并将等待时间计费脉冲

35、和行驶里程计费脉冲送入JIFEI模块;JIFEI模块主要是完成起步价计费、等待时间计费、行驶里程计费,并完成总费用; SELTIME模块起显示控制作用,控制等待时间、行驶里程、费用在八个数码管上 的位置。DELED模块是把送入的每个四位数据转换为 7段码,从而能在数码管上 正确的显示。 这四个模块的组合成完整的出租车系统, 在设计过程中还需要改进 的是控制出租车计费系统的控制功能。出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车开始、 启动、暂停、停止等功能,由数码管显示出租车等待时间,行驶里程,费用。车 暂等待时停止行驶里程计费,车费仅由等待时间计费;出租车正常行驶时,仅根 据里

36、程收费方式。若停止则车费清零,等待下一次计费的开始。出租车计费系统 的设计中体现了 VHDL覆盖面广,描述能力强,是一个多层次的硬件描述语言本 设计在实用方面具有一定的价值。该计费器实现了按预置参数自动计费 (最大计费金额为 99.9 元) 、自动计程 (最大计程公里数为 99.9 公里) 等功能;能够实现起步价、每公里收费、等待时 间计费的参数预置 (如:起步价 5.0 元; 3公里后 1 元每公里;等待时间 0.1 元 每分钟),且预置参数可调范围广。由于采用 CPLD大规模可编程逻辑器件,整机 功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。6 设计体会与总结通过这次紧张而又充实的E

37、DA课程设计,我感受到了 VHDL语言和普通软件 语言之间的区别,也能够更加熟练地运用 VHDL语言进行逻辑电路的设计了,受 益匪浅。我们所做的课题是出租车计费器的设计。老师给了我们课程设计题目, 在这半个月的实验操作中, 不断的完善自己的设计要求, 将自己的想法融入到实 验的程序中去。最终通过仿真达到了自己预想的效果。有种先苦后甜的成就感。同时在本次试验中,我们熟练的掌握了 Quartus II 软件的使用。学会了如 何把自己所设计的程序,通过软件用波形仿真出来,再通过试验箱仿真出来。在这次课程设计过程中, 要感谢陈老师在课程设计上给予我的帮助, 提供给 我的支持与建议, 特别是帮助我解决了

38、我半个月来一直遇到的运行程序警告多的 问题,这是我能顺利完成这次报告的主要原因, 让我能把课程设计做得更加完善。 在此期间,我不仅学到了许多新知识,而且也开阔了视野,提高了自己的设计能 力。其次,我要感谢帮助过我的同学们,他们也为我解决了不少难题。这些东西 是无法再平时上课的过程中学到的, 实践出真知, 只有在实验中我们才能更好的 学到东西,不用纸上谈兵,做无用功。参考文献1 徐飞.EDA技术与实践M.北京:清华大学出版社,2011.2 王行,李衍.EDA技术入门与提高M.西安:西安电子科技大学出版社,2005.3 刘昌华.数字逻辑EDA设计与实践M.北京:国防工业出版社,2011.4 李蓉.

39、基于VHDL语言的出租车自动计费器的设计J.科技风,2008,24:33.附录1 JILIANG 模块的VHDL编程LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JILIANG ISPORT(CLK,CLK1 : IN STD_LOGIC;START : IN STD_LOGIC;DRIVE : IN STD_LOGIC;BREAK : IN STD_LOGIC;B1,B2 : OUT STD_LOGIC;KM2,KM1,K

40、M0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);MIN1,MIN0 : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END JILIANG;ARCHITECTURE BEHAVE OF JILIANG ISSIGNAL R1:INTEGER RANGE 0 TO 9;SIGNAL K:STD_LOGIC_VECTOR (7 DOWNTO 0);SIGNAL K2,K1,K0 :STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL W1:INTEGER RANGE 0 TO 59;SIGNAL M1:STD_LOGIC_VECT

41、OR(3 DOWNTO 0);SIGNAL M0:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINRUN:PROCESS(CLK1,DRIVE,BREAK,K0,K1,K2)BEGINIF START='1' THENIF DRIVE='0' THEN K0<="0000"K1<="0000"K2<="0000"R1<=0;ELSIF CLK1'EVENT AND CLK1='1' THENIF DRIVE='1'AND

42、 BREAK='0' THENIF R1=9 THEN R1<=0;IF K0="1001" THEN K0<="0000"k1<=k1+1;IF K1="1001" THEN K1<="0000"k2<=k2+1;IF K2="1001" THEN K2<="0000"ELSE K2<=K2+1;END IF;ELSE K1<=K1+1;END IF;ELSE K0<=K0+1;END IF;ELSE R

43、1<=R1+1;B1<='0'END IF;K<=K2&K1;IF K>"00000010" THENIF R1<9 THEN R1<=R1+1;B1<='0'ELSE R1<=0; B1<='1'END IF;END IF;END IF;END IF;ELSE K0<="0000"K1<="0000"K2<="0000"END IF;KM0<=K0;KM1<=K1;KM2&l

44、t;=K2;END PROCESS;PAUSE:PROCESS(CLK,DRIVE,BREAK,M0,M1)BEGINIF START='1' THENIF DRIVE='0' THEN M0<="0000"M1<="0000"W1<=0;ELSIF CLK'EVENT AND CLK='1' THENIF DRIVE='1' AND BREAK='1'THENIF W1=59 THEN W1<=0;B2<='1'IF M

45、0="1001"THEN M0<="0000" M1<=M1+1;IF M1="1001"THEN M1<="0000"ELSE M1<=M1+1;END IF;ELSE M0<=M0+1;END IF;ELSE W1<=W1+1;B2<='0'END IF;END IF;END IF;ELSE M0<="0000"M1<="0000"END IF;MIN0<=M0;MIN1<=M1;END P

46、ROCESS;END ARCHITECTURE ;2 JIFEI 模块的VHDl编程LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY JIFEI IS PORT(B :IN STD_LOGIC;START:IN STD_LOGIC;DRIVE:IN STD_LOGIC;CH2,CH1,CH0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); END JIFEI;ARCHITECTURE BEHAVE OF J

47、IFEI ISSIGNAL C2,C1,C0:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(B,DRIVE,C0,C1,C2)BEGINIF DRIVE='0' THEN C0<="0000"C1<="0101"C2<="0000" ELSIF DRIVE='1' THENIF B'EVENT AND B='1' THENIF C0="1001" THEN C0<="0000"

48、IF C1="1001"THEN C1<="0000"IF C2="1001"THEN C2<="0000"ELSE C2<=C2+1; END IF;ELSE C1<=C1+1;END IF;ELSE C0<=C0+1; END IF;END IF;END IF;ELSE C0<="0000"C1<="0000"C2<="0000"END IF;CH0<=C0;CH1<=C1;CH2<=C

49、2;END PROCESS;END;3 SELTIME控制模块的VHDL编程library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity seltime isport( clk : in std_logic;CH2,CH1,CH0 : in std_logic_vector(3 downto 0);KM2,KM1,KM0 : in std_logic_vector(3 downto 0); MIN1,MIN0 : in std_logic_vector(3 downto 0); dp: OUT S

50、TD_LOGIC;daout : out std_logic_vector(3 downto 0);sel: out std_logic_vector(2 downto 0);end seltime;architecture behav of seltime is signal sec : std_logic_vector(2 downto 0); beginprocess(clk)begin if(clk'event and clk='1') thenif(sec="111") then sec<="000" elsese

51、c<=sec+1;end if;end if;end process; process(sec,MIN1,MIN0,CH2,CH1,CH0,KM2,KM1,KM0) begincase sec iswhen "000"=>daout<=CH0 ( 3 downto 0);dp<='0' when "001"=>daout<=CH1 ( 3 downto 0);dp<='1' when "010"=>daout<=CH2 ( 3 downto 0);d

52、p<='0' when "011"=>daout<=KM0 ( 3 downto 0);dp<='0' when "100"=>daout<=KM1 ( 3 downto 0);dp<='1' when "101"=>daout<=KM2 ( 3 downto 0);dp<='0' when "110"=>daout<=MIN0( 3 downto 0);dp<='0' when "111"=>daout<=MIN1( 3 downto 0);dp<='0'when others=>daout<="XXXX"end case;end process;sel<=sec;end beha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论