EDA技术课 程 设 计
题 目 简易出租车计费器设计
系 (部) 信息工程系
班 级 电班
姓 名
学 号
指导教师
20XX年 7 月 6 日 7 月 12 日 1 周
20XX年 7 月 8 日
课程设计成绩评定表
出勤
情况
出勤天数
缺勤天数
成
绩
评
定
出勤情况设计程表现(20分)
课设答辩(20分)
设计成果(60分)
硬件调试
设计说明书
总成绩(100分)
提问
(答辩)
问题
情况
综
合
评
定
指导教师签名:
年 月 日
目录
1 引言 1
2 计费器设计 2
21 设计容 2
22设计求 2
23 设计原理 2
24 模块设计 3
241 分频模块 3
242 计程模块 4
243 计费模块 4
244 顶层模块 5
3 仿真 6
4 引脚锁定 7
5总结 8
参考文献 9
附录 10
1 引言
出租车计费器出租车营运收费智化仪表出租车市场规范化标准化重设备种功完备简单易计量准确出租车计价器加强出租车行业理提高服务质量必需品科技高度发展天集成电路计算机应高速发展设计采VHDL描述语言设计出租车计价系统软件结构通QuartusⅡ90软件进行仿真试验箱进行硬件仿真实现模拟简易出租车计费器
编写程序VHDL语言全名VeryHighSpeed Integrated Circuit Hardware Description Language诞生1982年1987年底VHDLIEEE美国国防部确认标准硬件描述语言 IEEE1076(简称87版)EDA公司相继推出VHDL设计环境宣布设计工具VHDL接口1993年IEEEVHDL进行修订更高抽象层次系统描述力扩展VHDL容公布新版VHDLIEEE标准10761993版简称93版VHDLVerilog作IEEE工业标准硬件描述语言众EDA公司支持电子工程领域已成事实通硬件描述语言
程序进行编译仿真QuartusⅡ90软件Altera公司综合性PLDFPGA开发软件原理图VHDLVerilogHDLAHDL(Altera Hardware 支持Description Language)等种设计输入形式嵌综合器仿真器完成设计输入硬件配置完整PLD设计流程
QuartusⅡ90利原理图结构框图VerilogHDLAHDLVHDL完成电路描述保存设计实体文件芯片面布局连线编辑完备电路功仿真时序逻辑仿真工具定时时序分析关键路径延时分析SignalTap II逻辑分析工具进行嵌入式逻辑分析动定位编译错误外Quartus II 通DSP Builder工具MatlabSimulink相结合方便实现种DSP应系统支持Altera片编程系统(SOPC)开发集系统级设计嵌入式软件开发编程逻辑设计体种综合性开发台
2 计费器设计
21 设计容
(1)设计简易出租车计费系统实现计价功计费标准行程里程收费起步价600元里程3公里时起价计费车行超3公里12元公里收费
(2)实现车辆行驶模拟:模拟汽车启动停止暂停等状态
(3)计费器显示部分设计:LED数码实时显示车费汽车行驶里程两位数字显示汽车行驶里程显示方式XX单位km计程范围0—99km计程分辨率1km四位数字显示总费显示方式XXX单价元计价范围0—999元计价分辨率01元
(4)计费器设司机控制整体复位控制设定车轮转圈输出脉100脉应1公里
22设计求
(1)根务求确定电路功模块
(2)写出设计程序
(3)出时序仿真结果
(4)实现硬件调试
23 设计原理
设计系统输入信号:时钟脉clk开始计费信号start复位信号rst暂停信号stop输出信号:显示总费cost0 ~cost3显示计程km0km1设计两脉cost_clkmile_clk中cost_clk通分频模块分成8clk升脉计费mile_clk96clk升脉计程两控制输入开关startstop控制程:start作计费开始开关start高电时stop低电时系统开始根输入情况计费出租车开始行驶时mile_clk脉进行行驶计程果行驶路程3公里费显示起步价600元果行程3公里cost_clk开始工作脉加起步价加01元需停车等stop变高电恢复行驶时stop变低电继续计程计费rst键计程计费显示清零
该设计三模块:分频模块计程模块计费模块
系统结构框图图21示:
图21
24 模块设计
241 分频模块
方便计费计程需clk脉进行分频计费12元公里01元约833米设计求脉10米cost_clk分频成8clk升应cost_clk升mile_clk分频成96clk升应mile_clk升
系统模块图22:
图22
242 计程模块
计程模块功计算输出出租车行驶公里数输出信号en表示否三公里
计费信号start高电复位信号rst低电时mile_clk升计程器低位k0加1k0满9时进位高位k1加1k0清零k1满9清零计程器计程范围0~99km满量程动零行驶里程3km时信号en变高电3km时en低电stop暂停信号stop高电时计量模块停止计数显示前里程数
系统模块图23:
图23
243 计费模块
计费模块功根前两模块输出根公里数否3公里分计费
定义c2c1c0分表示费十元元角输出en低电行程3公里时c2c1c0显示0000 0110 0000代表起步价60元en高电行程超3公里时超里程12元公里计费cost_clk升c2c1c060元基础01元基数进行累加暂停信号stop高电时c2c1c0停止计费显示前费c2c1c0信号cost2~cost0送数码译码显示
系统模块图24:
图24
244 顶层模块
三模块设计求组合起连接原件输入输出顶层模块
系统模块图25
图25
3 仿真
程序编译成功进行仿真
仿真结果图31
图31
clk脉信号开始里程计数行驶计费行驶里程3公里时起步价60元收费行驶里程超3公里超出里程千米12元计费stop高电时里程计数计费均停止显示前里程数总费rst高电时数值清零
4 引脚锁定
km1km0cost2cost1cost0输出分表示行驶里程数总费实验箱静态数码显示
clk1Hz脉信号startrststop分表示开始计费复位暂停计费
具体引脚锁定图41:
图41
5总结
次课设学仅知识更团队合作仅仅综合理知识运设计创新知道团队凝聚起时发挥巨潜
次熟悉增强VHDL语言基知识熟悉利VHDL语言 常组合逻辑电路时序逻辑电路编程编程实际结合起VHDL硬件描述语言破硬件软件设计员间互干涉界限语言形式进行数字系统硬件结构行描述直接设计数字电路硬件系统通编程载该芯片已具备原需复杂数字电路实现功更加解加深编制调试程序技巧进步提高机动手力培养设计综合电路力养成提供文档资料惯规范编程思想设计程序时妄想次整程序设计反复修改断改进程序设计必路养成注释程序惯程序完美否仅仅实现功应该明白思路样资料保存交流提供方便设计课程程中遇问题正常应该次遇问题记录分析清楚免次碰样问题
次课设课学知识应实践中更加熟练掌握知识学帮助
参考文献
[1] 阎石数字电子技术基础高等教育出版社2005
[2] Volei A Pedroni VHDL数字电路设计教程电子工业出版社2010
[3] 潘松黄继业EDA技术实教程科学出版社20106
[4] 刘江海EDA技术课程设计华中科技学出版社20095
[5] 毕满清电子技术实验课程设计机械工业出版社2009
[6] 焦素敏EDA应技术清华学出版社20024
附录
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity che is
port(clkin std_logic
startin std_logic
rstin std_logic
stopin std_logic
cost0cost2out std_logic_vector(3 downto 0)
cost1out std_logic_vector(7 downto 0)
km0km1out std_logic_vector(3 downto 0))
end
architecture bhv of che is
signal mile_clkcost_clkstd_logic
signal c0c1c2std_logic_vector(3 downto 0)
signal k0k1std_logic_vector(3 downto 0)
signal en0std_logic
signal count1integer range 0 to 8
begin
U1process( rstclkstart)
begin
if rst'1' then mile_clk<'0'
elsif start'0'then
mile_clk<'0'
elsif stop'1' then count1
count1
count1<0mile_clk<'1'
else mile_clk<'0'
end if
end if
end process
U2process(rststartmile_clk)
variable k integer range 0 to 12
begin
if rst'1' then
k0<0000 k1<0000
elsif start'0' then
en0<'0'
elsif mile_clk'event and mile_clk'1' then
kk+1
if k1 & k0>00000011 then
en0<'1'
end if
if k12 then
k0 k0
k0<0000 k1
k1<0000
end if
end if
end if
end if
km0
cost_clk< mile_clk when en0'1'else
'0'
U3process( rststartcost_clken0)
begin
if rst'1' then
c0<0000c1<0000 c2<0000
elsif start'1'and en0'0'then
c0<0000c1<0110c2<0000
elsif start'1' and en0'1' then
if cost_clk'event and cost_clk'1'then
c0
c0<0000c1
c1<0000c2
c2<0000
end if
end if
end if
end if
end if
case c1 is
when 0000>cost1<11111101
when 0001>cost1<01100001
when 0010>cost1<11011011
when 0011>cost1<11110011
when 0100>cost1<01100111
when 0101>cost1<10110111
when 0110>cost1<10111111
when 0111>cost1<11100001
when 1000>cost1<11111111
when 1001>cost1<11110111
when others>null
end case
cost0
end
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档