EDA实习报告
1 出租车计费系统的设计
1.1 出租车计费设计
实际中出租车的计费工作原理一般分成3个阶段:
(1)车起步开始计费.首先显示起步价(本次设计起步费为7.00元),车在行驶3 km以内,只收起步价7.00元.
(2)车行驶超过3 km后,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加.
(3)行驶路程达到或超过9 km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费.车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变.若停止则车费清零,等待下一次计费的开始
1.2 基本设计思想
(1) 根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE.①计数器A完成车费百位.②计数器B完成车费十位和个位.③计数器C完成车费角和分.④计数器D完成计数到30(完成车费的起步价).⑤计数器E完成模拟实现车行驶100 m的功能.
(2)行驶过程中车费附加50%的功能:由比较器实现.
(3)车费的显示:由动态扫描电路来完成.用专用模块来实现,完成数据的输入即动态数据的显示.
(4)通过分析可以设计出系统的顶层框图如图1.1所示:
图1.1 系统的顶层框图
2 出租车计费系统的实现
2.1 系统的总体框图
2.2 程序流程图
2.3 系统各功能模块的实现
2.3.1 模块JIFEI的实现
模块JIFEI见图2.3.输入端口START,STOP,PAUSE,JS分别为汽车起动,停止,暂停,加速按键.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity jifei is
port (clk,start,stop,pause,js:in std_logic;
chefei,luc:out integer range 0 to 8000);
end jifei;
architecture rtl of jifei is
begin
process(clk,start,stop,pause,js)
variable a,b:std_logic;
variable aa:integer range 0 to 100;
variable chf,lc:integer range 0 to 8000;
variable num:integer range 0 to 9;
begin
if(clk'event and clk='1')then
if(stop='0')then
chf:=0;
num:=0;
b:='1';
aa:=0;
下一页