EDA课程设计最终版_第1页
EDA课程设计最终版_第2页
EDA课程设计最终版_第3页
EDA课程设计最终版_第4页
EDA课程设计最终版_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

第11页共13页EDA课程设计出租车自动计费器院系:信息工程学院班级:11级电科2班学号:201114580229姓名:仝福成同组:周亚婷指导:贾默伊任务书一、用VHDL运用层次化设计方法设计一个小型数字系统题目:简易出租车计价器二、说明书内容:1.系统设计要求(功能)2.系统设计方案(包括顶层电路图)3.VHDL源程序及仿真波形图4.课程设计注释5.设计解释、说明6.独特之处目录:第一节:设计要求……4第二节:系统设计方案………………4 1)、思路…………………...4 2)、设计…………………...4 ①、输入端口…….5②、输出端口…….5第三节:源程序和顶层电路图………...5源程序………5顶层电路……10第四节:情景仿真…….1021公里内无等待仿真…………….10进行21公里以上无等待仿真……10进行单程有等待仿真……………..11单程中进行复位仿真……………..11综合性仿真实验…..12第五节:系统拓展思路………………..12第六节:设计心得总结………………..12设计要求:设计一个出租车单程自动计费器,计费包括起步价、行车里程计费、等待时间计费等。起步价为8元,起步为3km。超过3km,按照1元/km收费。单程行驶超过21km,每公里加收50%费用。等候时间超过一分钟按照行驶一公里收费。要求显示两位里程、四位计费xxx.x和两位等候时间。设计方案:按照设计要求完成流程图:思路:①、输入双时钟信号,分别模拟时间和路程。对信号进行分频达到一定的计数目的。②、通过对里程的计数产生两个使能信号,伊达到在不同里程的时候产生不同的计费方法。③、通过各种使能信号使各个计数分别处在不同的状态,从而达到不同状态的设计要求。设计:输入端口:clk和mile——两个时钟信号,分别是时钟信号和里程信号。由于本设计存在缺点,无法根据速度和时间进行计程,所以设置成两个时钟信号进行。wait_signal——等待时间计数的使能信号。one_way——单程行驶信号,由于本设计是单程行驶的自动计费器,所以该信号一直为‘1’。rst——复位信号,该信号为‘1’时,所有输出全部清零。start——开始计数的使能信号。②、输出端口:cost0,cost1,cost2,cost3——4位显示计价,最高显示999.9元。min0,min1——8位BCD码显示等待时间单位,最高时间59分钟。km0,km1——8位BCD码显示里程,最高为99公里。源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.std_logic_arith.all;entitychuzujijiaisport(clk,start,wait_signal,mile,one_way,rst:instd_logic;cost0,cost1,cost2,cost3:outstd_logic_vector(3downto0);min0,min1:outstd_logic_vector(3downto0);km0,km1:outstd_logic_vector(3downto0));end;--主体部分,对各个端口进行声明architectureoneofchuzujijiaissignalmile_r1,mile_r2,mile_clk,start_r,clk1hz:std_logic;signalcount:integerrange0to29;signalsec:integerrange0to59;signalc0,c1,c2,c3:std_logic_vector(3downto0);signalk0,k1,m0,m1:std_logic_vector(3downto0);signalen0,en1:std_logic;signalwait_clk,cost_clk:std_logic;beginU1:process(rst,clk)--分频部分beginifrst='0'then ifclk'eventandclk='1'then ifcount=5thencount<=0;clk1hz<='1'; elsecount<=count+1;clk1hz<='0'; endif; endif;endif;endprocess;U2:process(rst,clk1hz,start,wait_signal)--计时部分beginifrst='1'thenm0<="0000";m1<="0000";elsifstart='0'thenwait_clk<='0';elsifclk1hz'eventandclk1hz='1'thenifwait_signal='1'then ifsec=5thensec<=0;wait_clk<='1'; ifm0="1001"thenm0<="0000"; ifm1="0101"thenm1<="0000"; elsem1<=m1+'1'; endif; elsem0<=m0+'1'; endif; elsewait_clk<='0';sec<=sec+1; endif;elsewait_clk<='0';endif;endif;endprocess;U3:process(rst,clk1hz,mile,start)--同步各个时钟信号beginifrst='0'then ifclk1hz'eventandclk1hz='1'thenmile_r2<=mile_r1;mile_r1<=mile;start_r<=start; endif;endif;endprocess;mile_clk<=mile_r1andnot(mile_r2);cost_clk<=wait_clkwhenwait_signal='1'elsemile_clkwhenen0='1'oren1='1'else'0';U4:process(rst,start,mile_clk)--计程部分beginifrst='1'thenk0<="0000";k1<="0000";elsifstart='0'thenk0<="0000";k1<="0000";en0<='0';en1<='0';elsifmile_clk'eventandmile_clk='1'then ifk1&k0>="00100000"andone_way='1'thenen1<='1';en0<='0'; endif; ifk1&k0="00000011"thenen0<='1'; endif; ifk0="1001"thenk0<="0000"; ifk1="1001"thenk1<="0000"; elsek1<=k1+'1'; endif; elsek0<=k0+'1'; endif;endif;endprocess;U5:process(rst,start,cost_clk,start_r)--计价部分beginifrst='1'thenc0<="0000";c1<="0000";c2<="0000";c3<="0000";elsifstart='1'andstart_r='0'thenc0<="0000";c1<="1000";c2<="0000";c3<="0000";elsifcost_clk'eventandcost_clk='1'then ifen1='0'anden0='1'then ifc1="1001"thenc1<="0000"; ifc2="1001"thenc2<="0000"; ifc3="1001"thenc3<="0000"; elsec3<=c3+'1'; endif; elsec2<=c2+'1'; endif; elsec1<=c1+'1';c0<="0000"; endif; else if(c0="0101"andc1="1000")orc1="1001"then ifc1="1001"andc0="0101"thenc0<="0000";c1<="0001";elsifc1="1001"andc0="0000"thenc0<="0101";c1<="0000"; elsifc1="1000"andc0="0101"thenc0<="0000";c1<="0000"; endif; ifc2="1001"thenc2<="0000"; ifc3="1001"thenc3<="0000"; elsec3<=c3+'1'; endif; elsec2<=c2+'1'; endif; elsifc0="0000"thenc0<="0101";c1<=c1+'1'; elsec0<="0000";c1<=c1+"0010"; endif; endif;endif;endprocess;min0<=m0;min1<=m1;km0<=k0;km1<=k1;cost0<=c0;cost1<=c1;cost2<=c2;cost3<=c3;--最后输出end;顶层电路图:仿真波形如下:㈠、进行单程21公里以内无等待仿真,如下:从图中可以看出在3Km以内直接赋值8元给个位计数的cost1,超过3公里之后进行每公里加1计数,并且到十向高一位进位。㈡、进行21公里以上无等待仿真:由图可知21公里以上时每公里加价0.5元,由cost0显示到达21公里时候显示在26元,22公里显示27.5元。㈢、进行单程有等待仿真:由图可见在等待的时候进行计价1元/分钟。并且在原来已有的计价上累加。㈣、单程中进行复位仿真:由图可见,在复位信号到来时候所有的输出信号全部归零。㈤、综合性仿真实验:在复位信号到来的时候,行驶了41公里,等待了4分钟,应当支付:8+(21-3)*1+(41-21)*1.5+4=60元,与图中显示一致。系统拓展思路:如果能够加入车速采集器或者对车轮转动圈数进行实时采集计算,那么就可以不依靠固定的速度进行整个仿真。只有不依靠固定车速实现上述的计程功能,该款设备才能投入实际生产应用。该程序还可可以修改成其他设备使用。对计价部分修改,加入实时采集油量的设备,从而可以用以检测一部车油耗和行驶里程及时间的关系。体会与心得:在设计开始之初准备设计的是20公里为另一个计价点,但是在仿真的过程中出现的每公里计价变化出现在21公里。在改变设计要求的情况下

温馨提示

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

评论

0/150

提交评论