出租车计价器FPGA设计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《EDA》 设计报告 题目:出租车计价器FPGA设计 学院:电子信息与电气工程学院 专业:电子信息工程 班级:_ 姓名: 学号: 出租车计价器的FPGA设计 引言 FPGA(Field Programmable Gate Array,现场可编程门阵列)是 一种高密度可编程逻辑器件,它支持系统可编程,通过写入不同的配 置数据就可以实现不同的逻辑功能。使用FPGA来设计电子系统,具 有设计周期短、易于修改等明显特点,特别适合于进行科学实验、样 机研制和电子产品的小批量生产。 系统设计要求 主要功能包括:信号输入模块对车轮传感器传送的脉冲信号进行计数 (每100米送一个脉冲),并以高低脉冲模拟出租汽车启动、停止、暂 停、加速按钮,具有输入信号作用;数据转换模块将计费模块输出的 车费和路程转换成4位的十进制数据;译码/动态扫描模块将路程与 费用的数值译码后用动态扫描的方式驱动数码管;数码管显示模块将 公里数用3位LED数码管显示、等待时间用2位LED数码管显示和 计费金额用3位LED数码管显示。 设计题目 设计一个出租车计价器,要求显示里程和金额。 出租车启动和停驶由司机控制; 行程小于基本里程时,显示起步价,基本里程设2公里, 起步价设5元; (3) 当行程大于基本里程时,每多行一公里,在起步价上加1 元; (4) 当出租车进入低速状态,由司机按下等候键,每等待5分 钟加1元,不足5分钟的不计算; (5) 此处用脉冲信号模拟轮胎的转数,设每计一个脉冲汽车前 进100米,系统中所需脉冲均由20MHz晶振分频提供。 三?系统设计方案 该系统的设计可以采用分立元件来搭建,也可以通过单片机来设 计,而使用可编程FPGA来设计,具有设计周期短、易于修改等明显 特点,而且随着可编程逻辑器件和EDA软件的飞速发展,越来越多的 电子系统采用FPGA来设计,一旦该系统达到一定的量产规模,也比 较容易转化为ASIC芯片设计。因此,基于FPGA来设计一个出租车的 计价器。本系统在EDA工具软件MAX+plusII屮,采用硬件描述语言 Verilog HDL和原理图设计相结合的方法,进行各个模块的设计,最 终将各个模块组成整个系统。 出租车能够显示行驶的里程,可以通过车轮的转动产生脉冲,然 后通过计数器对脉冲进行计数来实现。假设出租车每行驶2 m就产生 一个脉冲。由于里程数要精确到0. 1km,也就是100m,因此每经过 50个脉冲就要输出一个新的脉冲信号,这里称为100 hi脉冲信号, 作为里程计数器的时钟信号,可以通过一个模为50的计数器进行分 频而得到。 里程计数器可以用一个二位BCD码计数器来实现,最大能显示到 99o以前两位为整数,,也就是最大能显示里程99 km,因为出租车 都在市区和近郊活动,二位BCD码计数器是可以实现里程计数的。里 程计数器每计数10 km还会周期性地输出一个脉冲信号,称为10 km 脉冲信号,可以通过一定的组合电路来实现。 系统最核心的部分就是计费如何实现。这里就需耍设计一个BCD 码的加法器,在起步价的基础上,根据行驶里程的不同,依据计费标 准,每增加1 km加上一个单价,单价的产生可以用Verilog HDL编 写程序来实现。 总体框图如下 (1)?分频模块 分频模块的Verilog HDL源程序如下图: rojectNavigstor ▲ x 稳 TOP.bdf 普 DIVI.v r ? ? . ? 05 1 Smodule DIVl(clk,clkoutl); 〃输入20MHz,翰出分颜到 1Hz 10 11 12 13 14 15 16 17 18 input elk; output clkoutl; reg clkoutl ; reg[23:0] counter; //中间变acounter定义为寄存卷型 parair.eter N=20 000 000; always?(posedge elk) begin if(counter= N begin clkoutl — clkoutl; counter=0; end else counter=counter+l *bl; end endiodule| Type Message (2) ?计时模块 计时模块的Verilog HDL源程序如下图: Project Navigator Entity 心 Cyclone III: EP3C5E 由?“”器TOP扁 Tasks ▲ x Flow: |Coapilation 三| ab Project Navigator Tasks : Flow: [Compilation 闔 TOP.bdf ule wait time(clkrist,startrsrmrtime EN); 3 4 5 6 7 8 i

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档