FPGA出租车计价器设计.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FPGA出租车计价器设计.doc

EDA课程设计目标 1.掌握用Verilog HDL语言的设计方法; 2.掌握Verilog HDL语言程序的基本结构,学习编写简单的Verilog HDL设计实用程序; 3.了解Quartus II软件的基本使用方法,数字电路系统的设计流程,掌握Quartus II的使用方法; 4.在Quartus II环境下,对其设计功能进行编程、仿真、并下载到EDA试验箱的FPGA芯片,验证其设计的正确性。 1 、设计任务及要求 设计一个出租车计价器,要求显示里程和金额。 (1)出租车启动和停驶由司机控制; (2)行程小于基本里程时,显示起步价,基本里程设3公里,起步价设5元; (3)行程大于基本里程时,每多行一公里,在起步价上加2元; (4)当出租车等待时,由司机按下等候键,每等待一分钟加1元,不足一分钟的按一分钟计算; (5)此处用脉冲信号模拟轮胎的转数,设每计一个脉冲汽车前进100米,系统中所需脉冲均由50MHz晶振分频提供。 2、设计原理及总体框图 (1)设计总体框图 图1.总设计框图 (2)设计总原理图 图2.设计总原理图 设计总原理:测控FPGA芯片通过采集速度传感器脉冲信号WCLK进行行驶里程计算,利用外部脉冲信号CLK1产生标准时钟信号,用来计算等待时间,最后根据行驶里程、等待时间来计算计价值。并用译码电路显示行驶里程、等待时间和计价值。 3、程序设计 1.VHDL语言简单介绍 VHDL 的英文全名是Very High Speed Integrated Circuit Hardware Description Language,即超高速集成电路硬件描述语言,被认为是标准的硬件描述语言,有专家认为,在新世纪中,VHDL与Verilog HDL语言将承担起几乎全部的数字系统设计任务。 VHDL 主要用于描述数字系统的结构、行为、功能和接口。除了含有许多具有硬件特征的语句外,VHDL 的语言形式和描述风格与句法十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件、一个电路模块或一个系统)分成外部(或称可视部分,即端口)和内部(或称不可视部分),即设计实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦内部开发完成后,其他的设计可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL 系统设计的基本点。 VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。 VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。 设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。 基于以上种种优点,VHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。 2、模块及相应程序说明 (1)消除抖动模块 module xiaodou(clk,kaishi,ks,zanting,zt,jieshu,js); //消抖模块 input clk,kaishi,jieshu,zanting; //clk为全局时钟50MHZ,按键的输入分别是:开始,结束,暂停 output ks,js,zt; //输出的是开始、结束、暂停的有效信号 reg ks_reg1,zt_reg1,js_reg1; reg ks_reg2,zt_reg2,js_reg2; //ks_reg1,ks_reg2分别是扫描得到的输入信号 reg ks,zt,js; reg [25:0] count1; //计数器 always @( posedge clk) begin count1=count1+1b1; if(count1==500000) //扫描频率100Hz

文档评论(0)

rewfdgd + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档