EDA课程设计Word格式.docx
《EDA课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《EDA课程设计Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
一、总体设计思想
1.基本原理
用CPLD做出租车计费,器层次化设计根据理论,该设计问题自顶向下可分为分频模块、控制模块、计量模块、译码动态扫描显示模块,其系统框图如图所示。
各部分主要功能包括:
信号输入模块对车轮传感器传送的脉冲信号进行计数(每转一圈送一个脉冲),并以高低脉冲模拟出租汽车启动、停止、暂停、加速按钮,具有输入信号作用;
数据转换模块将计费模块输出的车费和路程转换成4位的十进制数据;
译码/动态扫描模块将路程与费用的数值译码后用动态扫描的方式驱动数码管;
数码管显示模块将公里数和计费金额均用4位LED数码管显示(2位整数,2位小数)。
2.设计框图
图一出租车自动计费器系统框图
二、设计步骤和调试过程
1、总体设计电路
根据设计要求,系统的输入信号有:
系统时钟信号CLK,计价开始信号START,等待信号STOP,里程脉冲信号FIN.系统的输出信号有:
总费用数CHA0-CHA3,行驶距离(km数)KM0-KM1和等待时间MIN0-MIN1等。
系统组成方框图由外部输入模块、控制模块和显示模块三部分组成。
控制模块是整个系统的核心,它由分频模块、控制模块、计量模块和译码显示模块构成。
2、模块设计和相应模块程序
(1).分频/计量控制模块
分频模块对频率为240HZ的输入脉冲进行分频,得到16HZ、10HZ、和1HZ的三种频率。
该模块产生频率信号用于计费,每1HZ脉冲为0.1元计费控制,10HZ信号为1元的计费控制,16HZ信号为1.6元计费控制。
计量控制模块是出租车计费的主体部分,该模块主要完成等待计时功能、计价功能、计程功能,同时产生3分钟的等待计时始能控制信号en1、行程3公里外的是能控制信号en0。
其中计价功能主要完成的任务是:
行程3公里内,且等待累计时间在3分钟内,起步费为8元;
3公里以外以每公里1.6元计费。
等待时间3分钟以外以每分钟1元计费。
计时功能主要完成的任务是:
计算乘客的等待累计时间,计时的量程为59分,满量程自动归零。
计程功能主要完成的任务是:
计算乘客所行驶的公里数,计程器的量程为99公里,满量程自动归零。
(2).译码显示模块
该模块经过8选1选择器将计费数据(4位BCD码)、计时数据(2位BCD码)、计程数据(2位BCD码)动态显示输出。
其中计费数据jifei4~jifei1送入译码显示模块进行译码,然后送至以百元、十元、元、角为单位对应的数码管上显示,最大显示为999.9元;
计时数据送入译码显示模块进行译码,最后送至一分为单位对应的数码管上显示,最大显示为59s;
计程数据送入译码显示模块进行译码,最后送至以公里为单位的数码管上显示,最大显示为99公里。
该模块包含8选1选择器、模8计数器、七段显示译码器3个子模块。
(3).设计程序
主程序:
LIBRARYIEEE;
USEIEEE.std_logic_1164.all;
USEIEEE.std_logic_unsigned.all;
USEIEEE.std_logic_arith.all;
ENTITYtaxiis
port(clk_240:
instd_logic;
start:
stop:
fin:
cha3,cha2,cha1,cha0:
outstd_logic_vector(3downto0);
km1,km0:
min1,min0:
outstd_logic_vector(3downto0));
endtaxi;
architecturebehavoftaxiis
signalf_10,f_16,f_1:
std_logic;
signalq_10:
integerrange0to23;
signalq_16:
integerrange0to14;
signalq_1:
integerrange0to239;
signalw:
integerrange0to59;
signalc3,c2,c1,c0:
std_logic_vector(3downto0);
signalk1,k0:
signalm1:
std_logic_vector(2downto0);
signalm0:
signalen1,en0,f:
begin
feipin:
process(clk_240,start)
ifclk_240'
eventandclk_240='
1'
then
ifstart='
0'
thenq_10<
=0;
q_16<
f_10<
='
;
f_16<
f_1<
f<
else
ifq_10=23thenq_10<
elseq_10<
=q_10+1;
endif;
ifq_16=14thenq_16<
elseq_16<
=q_16+1;
ifq_1=239thenq_1<
elseq_1<
=q_1+1;
ifen1='
thenf<
=f_10;
elsifen0='
=f_16;
elsef<
endprocess;
main:
process(f_1)
w<
en1<
en0<
m1<
="
000"
m0<
0000"
k1<
k0<
elsiff_1'
eventandf_1='
then
ifstop='
ifw=59thenw<
ifm0="
1001"
thenm0<
ifm1="
101"
thenm1<
elsem1<
=m1+1;
elsem0<
=m0+1;
ifm1&
m0>
"
0000010"
elseen1<
elsew<
=w+1;
elsiffin='
ifk0="
thenk0<
ifk1="
thenk1<
elsek1<
=k1+1;
elsek0<
=k0+1;
ifk1&
k0>
00000010"
thenen0<
elseen0<
cha3<
=c3;
cha2<
=c2;
cha1<
=c1;
cha0<
=c0;
km1<
=k1;
km0<
=k0;
min1<
&
m1;
min0<
=m0;
endprocessmain;
jifei:
process(f,start)
thenc3<
c2<
c1<
1000"
c0<
elsiff'
eventandf='
ifc0="
thenc0<
ifc1="
thenc1<
ifc2="
thenc2<
ifc3="
elsec3<
=c3+1;
elsec2<
=c2+1;
elsec1<
=c1+1;
elsec0<
=c0+1;
endprocessjifei;
endbehav;
模8计数器se的VHDL源程序:
ENTITYseIS
port(clk:
a:
outstd_logic_vector(2downto0));
ENDse;
ARCHITECTURErt1ofseIS
process(clk)
variableb:
begin
if(clk'
eventandclk='
)then
if(b="
111"
)then
b:
else
=b+1;
a<
=b;
endprocess;
endrt1;
8选1选择器mux8_1的VHDL源程序:
ENTITYmux8_1IS
port(c:
instd_logic_vector(2downto0);
dp:
outstd_logic;
a1,a2,a3,a4,b1,b2,t1,t2:
instd_logic_vector(3downto0);
d:
endmux8_1;
architecturert1ofmux8_1is
process(c,a1,a2,a3,a4,b1,b2,t1,t2)
variablecomb:
comb:
=c;
casecombis
when"
=>
d<
=a1;
dp<
001"
=a2;
010"
=a3;
011"
=a4;
100"
=b1;
=b2;
110"
=t1;
=t2;
whenothers=>
null;
endcase;
七段数码显示译码器di_LED的VHDL源程序;
ENTITYdi_LEDIS
port(d:
instd_logic_vector(3downto0);
q:
outstd_logic_vector(6downto0));
enddi_LED;
architecturert1ofdi_LEDis
process(d)
casedis
q<
0111111"
--gfedcba
0001"
0000110"
0010"
1011011"
0011"
1001111"
0100"
1100110"
0101"
1101101"
0110"
1111101"
0111"
0100111"
1111111"
1101111"
3、仿真及仿真结果分析
图二出租车自动计费器电路仿真输出波形
在图二中,STOP=0即全程无停止等待时间,因此计时显示输出为3F(00),该电路中出租车总行驶3F(0)7D(6)(即6公里),等待累计时间为3F(0)3F(0)(0分钟),总费用为06
(1)5B
(2)7F(8)(即12.8元),仿真结果正确。
4、实验调试结果
仿真结果正确后,就可将文件下载到芯片中。
连接硬件系统后,通上电源,经QuartusⅡ中的“PROGRAMMER”菜单,调出编程器窗口。
一切就绪后,按下编程器窗口中的“START”按钮,设计的内容就开始下载到CPLD芯片中。
实验测试表明:
该计费器实现了按预制参数自动计费(最大计费金额为999.9元)、自动计程(最大计程公里数为99公里)、自动计时(最大计时时间为59min)等功能;
能够实现行程3公里内,且等待累计时间3分钟内,起步费为8元,超过3公里,以每公里1.6元计费,等待时间单价为每分钟1元,且预置参数可调范围大。
由于采用了CPLD大规模可编程逻辑器件,整机功耗小、抗干扰能力强、系统稳定、工作可靠、升级方便。
3、结论及心得体会
本次课程设计至此已经接近尾声,但在这一个星期的设计过程中收获颇丰。
设计的核心内容就是QuartusⅡ环境中,利用VHDL语言设计出基于CPLD的出租车自动计费器。
整个设计过程中首先对数字电路这门课程有了更深的了解,因为课程设计本身要求将以前所学的理论知识运用到实际的电路设计当中去,在电路的设计过程中,无形中便加深了对数字电路的了解及运用能力,对课本以及以前学过的知识有了一个更好的总结与理解;
以前的数字实验只是针对某一个小的功能设计,而此次得EDA课程设计对我们的总体电路的设计的要求更严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;
其次,在电路仿真的过程中总会出现一些问题,需要我们细心解决,所以这两周下来,我对电路故障的排查能力有了很大的提高;
再次,通过此次课程设计,我对设计所用到的软件有了更加深刻地了解,这对我们以后的工作和学习的帮助都很有用处。
参考资料
东北石油大学课程设计成绩评价表
课程名称
EDA技术课程设计
题目名称
出租车自动计费系统
学生姓名
盛建宇
学号
080901140429
指导教师姓名
职称
序号
评价项目
指标
满分
评分
1
工作量、工作态度和出勤率
按期圆满的完成了规定的任务,难易程度和工作量符合教学要求,工作努力,遵守纪律,出勤率高,工作作风严谨,善于与他人合作。
20
2
课程设计质量
课程设计选题合理,计算过程简练准确,分析问题思路清晰,结构严谨,文理通顺,撰写规范,图表完备正确。
45
3
创新
工作中有创新意识,对前人工作有一些改进或有一定应用价值。
5
4
答辩
能正确回答指导教师所提出的问题。
30
总分
评语:
指导教师:
2012年3月2日