基于EDA技术交通信号灯设计.doc_第1页
基于EDA技术交通信号灯设计.doc_第2页
基于EDA技术交通信号灯设计.doc_第3页
基于EDA技术交通信号灯设计.doc_第4页
基于EDA技术交通信号灯设计.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

基于EDA技术交通信号灯设计 1 EDA技术及VHDL语言介绍11 概述EDA是电子设计自动化Electronic Design Automation缩写是90年代初从CAD计算机辅助设计CAM计算机辅助制造CAT计算机辅助测试和CAE计算机辅助工程的概念发展而来的EDA技术是以计算机为工具根据硬件描述语言HDL Hardware Description language完成的设计文件自动地完成逻辑编译化简分割综合及优化布局布线仿真以及对于特定目标芯片的适配编译和编程下载等工作典型的EDA工具中必须包含两个特殊的软件包即综合器和适配器综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL原理图或状态图形描述针对给定的硬件系统组件进行编译优化转换和综合最终获得我们欲实现功能的描述文件综合器在工作前必须给定所要实现的硬件结构参数它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来也就是说综合器是软件描述与硬件实现的一座桥梁综合过程就是将电路的高级语言描述转换低级的可与目标器件FPGACPLD相映射的网表文件适配器的功能是将由综合器产生的王表文件配置与指定的目标器件中产生最终的下载文件如JED文件适配所选定的目标器件FPGACPLD芯片必须属于在综合器中已指定的目标器件系列硬件描述语言HDL是相对于一般的计算机软件语言如CPASCAL而言的HDL语言使用与设计硬件电子系统的计算机语言它能描述电子系统的逻辑功能电路结构和连接方式设计者可利用HDL程序来描述所希望的电路系统规定器件结构特征和电路的行为方式然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件目前就FPGACPLD开发来说比较常用和流行的HDL主要有ABEL-HDLAHDL和VHDL从目前的EDA技术来看其发展趋势是政府重视使用普及应用广泛工具多样软件功能强大中国EDA市场已渐趋成熟不过大部分设计工程师面向的是PCB制板和小型ASIC领域仅有小部分约11的设计人员开发复杂的片上系统器件为了与台湾和美国的设计工程师形成更有力的竞争中国的设计队伍有必要引进和学习一些最新的EDA技术 在信息通信领域要优先发展高速宽带信息网深亚微米集成电路新型元器件计算机及软件技术第三代移动通信技术信息管理信息安全技术积极开拓以数字技术网络技术为基础的新一代信息产品发展新兴产业培育新的经济增长点要大力推进制造业信息化积极开展计算机辅助设计CAD计算机辅助工程CAE计算机辅助工艺CAPP计算机机辅助制造CAM产品数据管理PDM制造资源计划MRPII及企业资源管理ERP等有条件的企业可开展网络制造便于合作设计合作制造参与国内和国际竞争开展数控化工程和数字化工程自动化仪表的技术发展趋势的测试技术控制技术与计算机技术通信技术进一步融合形成测量控制通信与计算机M3C结构在ASIC和PLD设计方面向超高速高密度低功耗低电压方面发展 外设技术与EDA工程相结合的市场前景看好如组合超大屏幕的相关连接多屏幕技术也有所发展中国自1995年以来加速开发半导体产业先后建立了几所设计中心推动系列设计活动以应对亚太地区其它EDA市场的竞争在EDA软件开发方面目前主要集中在美国但各国也正在努力开发相应的工具日本韩国都有ASIC设计工具但不对外开放中国华大集成电路设计中心也提供IC设计软件但性能不是很强相信在不久的将来会有更多更好的设计工具在各地开花并结果据最新统计显示中国和印度正在成为电子设计自动化领域发展最快的两个市场年夏合增长率分别达到了50和30 EDA技术发展迅猛完全可以用日新月异来描述EDA技术的应用广泛现在已涉及到各行各业EDA水平不断提高设计工具趋于完美的地步EDA市场日趋成熟但我国的研发水平仍很有限尚需迎头赶上硬件描述语言HDL是一种用于设计硬件电子系统的计算机语言它用软件编程的方式来描述电子系统的逻辑功能电路结构和连接形式与传统的门级描述方式相比它更适合大规模系统的设计例如一个32位的加法器利用图形输入软件需要输人500至1000个门而利用VHDL语言只需要书写一行ABC即可而且 VHDL语言可读性强易于修改和发现错误早期的硬件描述语言如ABELHDLAHDL由不同的EDA厂商开发互不兼容而且不支持多层次设计层次间翻译工作要由人工完成为了克服以上不足1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL1987年IEEE采纳VHDL为硬件描述语言标准IEEE STD1076 VHDL是一种全方位的硬件描述语言包括系统行为级寄存器传输级和逻辑门级多个设计层次支持结构数据流和行为三种描述形式的混合描述因此VHDL几乎覆盖了以往各种硬件俄语言的功能整个自顶向下或由底向上的电路设计过程都可以用VHDL来完成VHDL还具有以下优点1VHDL的宽范围描述能力使它成为高层进设计的核心将设计人员的工作重心提高到了系统功能的实现与调试而花较少的精力于物理实现2VHDL可以用简洁明确的代码描述来进行复杂控制逻辑艄设计灵活且方便而且也便于设计结果的交流保存和重用3VHDL的设计不依赖于特定的器件方便了工艺的转换4VHDL是一个标准语言为众多的EDA厂商支持因此移植性好VHDL语言设计其硬件时与传统的电路设计方法相比较具有如下的特点第一采用自上而下的设计方法即从系统总体要求出发自上而下地逐步将设计的内容细化最后完成系统硬件的整体设计在设计的过程中对系统自上而下分成三个层次进行设计第一层次是行为描述所谓行为描述实质上就是对整个系统的数学模型的描述一般来说对系统进行行为描述的目的是试图在系统设计的初始阶段通过对系统行为描述的仿真来发现设计中存在的问题在行为描述阶段并不真正考虑其实际的操作和算法用何种方法来实现而是考虑系统的结构及其工作的过程是否能到达系统设计的要求第二层次是RTL方式描述这一层次称为寄存器传输描述又称数据流描述如前所述用行为方式描述的系统结构的程序其抽象程度高是很难直接映射到具体逻辑元件结构的要想得到硬件的具体实现必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序也就是说系统采用RTL方式描述才能导出系统的逻辑表达式才能进行逻辑综合第三层次是逻辑综合即利用逻辑综合工具将RTL方式描述的程序转换成用基本逻辑元件表示的文件门级网络表此时如果需要可将逻辑综合的结果以逻辑原理图的方式输出此后可对综合的结果在门电路级上进行仿真并检查其时序关系第二应用逻辑综合工具产生的门级网络表将其转换成PLD的编程码点即可利用PLD实现硬件电路的设计由自上而下的设计过程可知从总体行为设计开始到最终的逻辑综合每一步都要进行仿真检查这样有利于尽早发现设计中存在的问题从而可以大大缩短系统的设计周期第三系统可大量采用PLD芯片由于目前众多制造PLD芯片的厂家其工具软件均支持VHDL语言的编程所以利用VHDL语言设计数字系统时可以根据硬件电路的设计需要自行利用PLD设计自用的ASIC芯片而无须受通用元器件的限制第四采用系统早期仿真从自上而下的设计过程中可以看到在系统设计过程中要进行三级仿真即行为层次仿真RTL层次仿真和门级层次仿真这三级仿真贯穿系统设计的全过程从而可以在系统设计的早期发现设计中存在的问题大大缩短系统设计的周期节约大量的人力和物力自顶而下的设计方法使系统被分解为各个模块的集合之后可以对设计的每个独立模块指派不同的工作小组这些工作小组可以工作在不同地点甚至可以分属于不同的单位最后将不同的模块集成为最终的系统模型并对其进行综合测试和评价4其自顶而下的设计流程如图1-1所示图1-1 自顶而下的设计流程14 Pull II开发平台系统com Pull II简介Pull II的全称是Multiple Array and Programmable Logic Use System2多阵列矩阵及可编程逻辑用户系统2是Altera公司的全集成化可编程逻辑设计环境IIAltera公司的开发工具软件在发展中不断完善PLUS II的版本不升级功能也越来越强大目前发行的PLUS II已经到了101版Pull II的界面友好在线帮助完备初学者也可以很快学习掌握完成高性能的设计在进行原理图输入时可以直接放置74系列逻辑芯片所以对于普通爱好者来说即使不使用Altera的可编程器件也可以把PLUS II作为逻辑仿真工具另外不用搭建硬件电路即可对自己的设计进行调试支持Altera公司不同结构的可编程逻辑器件能满足用户各种各样的设计需要plus II具有突出的灵活性与高效性为设计者提供了多种可自由选择的设计方法和工具PLUS II的编译核心支持Altera的FLEX 10KFLEX 8K90007000FLASHlogic5000Classic系列可编程逻辑器件 PLUS II的设计输入处理与校验功能一起提供了全集成化的一套可编程逻辑开发工具可加快动态调试缩短开发周期 PLUS II支持各种HDL设计输入包括VHDLVerilog和Altera的AHDL PLUS II可与其他工业标准设计输入综合与校验工具链接与CAE工具的接口符合EDIF200和209参数化模块库LPMVerilogVHDL及其它标准设计者可使用Altera或标准CAE设计输入工具去建立逻辑设计使用PLUS II编译器对Altera器件设计进行编译并使用Altera或其它CAE校验工具进行器件或板级仿真PLUS II支持与SynopsysViewlogicMentor GraphicsCadenceExemplarData IOIntergraphMincOrCAD等公司提供的工具接口图1-2 PLUSII软件的设计流程图2 交通灯系统设计21 交通灯设计背景及方案随着城市汽车保有量的越来越多城市的交通拥挤问题正逐渐引起人们的注意交通灯是交管部门管理城市交通的重要工具提高十字路口的通行效率对缓解交通阻塞具有十分重要的现实意义实现路口交通灯系统控制的方法很多可以用标准逻辑器件可编程序控制器PLC单片机等方案来实现但是这些控制方法的功能修改及调试都需要硬件电路的支持在一定程度上增加了设计难度采用EDA技术应用VHDL硬件电路描述语言实现变通灯系统控制器的设计利用PLUS集成开发环境进行综合仿真并下载到CPLD可编程逻辑器件中完成系统的控制作用该灯控制逻辑可实现3种颜色灯的交替点亮时间的倒计时指挥车辆和行人安全通行A 方向是主干道车流量大因此A方向通行的时间应比B 方向长一些其示意图如图2-1所示 图2-1 交通路口指示灯示意图交通灯控制器的状态转换如表1 所示表中1 表示灯亮0 表示灯灭A 方向和B 方向的红黄绿和左拐灯分别用R1 Y1G1 L1 和R2 Y2 G2 L2 来表示从状态转换表中可以看出每个方向四种灯依次按如下绿灯黄灯左拐灯黄灯红灯并且每个方向红灯亮的时间应该与另一方向绿拐黄灯亮的时间相等黄灯所起的作用是用来在绿灯和左拐灯后进行缓冲以提醒行人该方向马上要禁行了例如A 方向的控制程序描述如表2-1所示表2-1 交通灯控制器状态转换A方向B方向绿灯G1黄灯Y1左拐灯L1红灯R1绿灯G2黄灯Y2左拐灯L2红灯R2100000010100000100100001010000010001100000010100000100100001010023 交通灯控制器的VHDL设计使用PLUS II进行设计包括四个阶段设计输入设计处理设计验证和器件编程在PLUS环境下进行编译与仿真用VHDL语言对各个模块进行编程最后形成顶层文件在PLUS环境下进行编译与仿真检查所编程序是否运行正确如果出现错误需要进行修改直到完全通过为止需要说明的是在进行程序编译时要先从底层程序开始所有底层程序都正确后才能开始顶层程序的编译这是因为顶层程序是对底层程序的概括它是把底层程序各个模块连接起来相当于把每个模块的功能汇聚到一起实现整个系统的控制功能所以底层程序的正确与否关系到顶层程序的运行图2-2 分频器模块的时序仿真波形时序仿真说明 1 reset1则clk_cnt1clk_cnt2clk_s1clk_s2clk_f清零2 reset0clk_1k为上升沿触发时如果clk_cnt1大于或等于5时清零clk_cnt1并且clk_s1输出1否则clk_cnt1加一clk_s1等于03reset0clk_1k为上升沿触发并且clk_s11时如果clk_cnt2大于或等于200时clk_cnt2清零输出clk_s21取反clk_f否则clk_cnt2加一clk_s2clk_f保持不变其中clkflash是clk频率的12倍它是通过内部信号与运算的得来即clk_flash clk_s1 and clk_s2 and clk_fcom 计数器模块 com1 原理及功能计数器是对一个输入脉冲进行计数如果输入脉冲的频率一定则记录一定个数的脉冲其所需的时间是一定的elsif clkevent and clk 1 then 时钟信号if hold 1 then 禁止信号cnt1 cnt1cnt2 cnt2elsif recount 1 then 采集到的交通灯控制信号采集下cnt1 din1 一个计数值cnt2 din2else cnt1 cnt1-1 减计数cnt2 cnt2-1end ifcom2 时序仿真图2-3 计数器模块的时序仿真波形时序仿真说明1reset1清零cnt1 cnt2next_slast_f2reset0 clk为上升沿触发时如果hold1时计数器处于禁止状态cnt1cnt2保持不变输出不变3reset0 clk为上升沿触发时且hold0那么如果recount1时则采集下一个计数数值4reset0 clk为上升沿触发时且hold0recount0时cnt1cnt2进行减一运算并doutcnt输出5当cnt10或cnt20时则next_sa 1否则next_sa 06当cnt13或cnt23时则last_f 1否则last_f 0com 计数器控制器模块com1 原理及功能计数器控制器通过给计数器赋值控制计数器实现减计数从而达到倒记时的目的同时和计数器配合控制闪烁模块计数器控制器是通过硬件描述语言case语句来实现不同状态的选择控制计数器控制器模块有三个输入端子recount是交通灯控制器控制计数器控制器是否进行计数状态转换的信号reset是内部复位信号用来复位内部信号sign_s是状态选择控制端输出端Load赋值给计数器计数值flash_addr和计数器的flash共同作用控制闪烁模块的闪烁功能7com2 时序仿真图2-4 计数器控制器模块时序仿真波形时序仿真说明1reset1则load1load2清零2reset0 clk为上升沿触发且 recount1时1 若sign_s1XXXXXXXXXX1则load1 conv_std_logic_vector 278 load2 conv_std_logic_vector 278 flash_addr 002 若sign_s001110000001则load1 conv_std_logic_vector 238 load2 conv_std_logic_vector 238 flash_addr 003 若sign_s001001110000 则load1 conv_std_logic_vector 188 load2 conv_std_logic_vector 188 flash_addr 004 若sign_s000001001110则load1 conv_std_logic_vector 358 load2 conv_std_logic_vector 358 flash_addr 00com 交通灯控制器的设计com1 原理及功能交通灯控制器控制过程分为八个阶段对应的有四个状态分别用abcd表示a状态A方向的绿灯亮左转灯红灯黄灯都灭B方向的红灯亮绿灯黄灯左转灯都灭此时A方向上的车辆可直行或者各自右转行人可以横穿B路口方向上车和行人禁止通行直到计数器计数时间到由a状态转到b状态b状态方向的黄灯亮绿灯左转灯红灯灭方向的交通灯保持原状态此时方向上的车辆要开始停止通行行人可继续穿行方向的车辆行人保持原状态直到计数器计时时间到由b状态转到c状态c态方向的左转灯亮绿灯黄灯红灯灭方向的交通灯保持原状态此时方向上的车辆各自左转直行和右转车辆禁止通行行人可继续穿行方向的车辆和行人保持原状态直到计数器计时时间到由c状态转到d状态d状态方向上的黄灯亮绿灯左转灯红灯灭方向的交通灯保持原状态此时方向上的车辆和行人要开始停止通行方向的车辆行人保持原状态直到计数器计时时间到由d态转到下个状态到此方向上的交通灯开始变化依次重复方向上abcd四个状态的转换当方向上的四个状态循环完成后方向再次重复方向上abcd四个状态的转换交通灯主要控制程序为when a if a_m 1 then 交通灯处于自动状态时 if next_state 1 then 采集到计数器计数到零时反馈信号recount 1state b sign_state 1XXXXXXXXXX1else recount 0 state a end ifelsif a_m 0 then 交通灯处于手动状态时 if h_butt 1 then 手动状态转换控制信号 recount 1 state b sign_state 1XXXXXXXXXX1 else recount 0 state a end ifend ifcom2 时序仿真图2-5 交通灯控制器模块时序仿真波形时序仿真说明1Reset1则state asign_state 01XXXXXXXXXXrecount 12Reset0clk为上升沿触发如果hold1则交通灯控制器出与禁止状态此时所有路口的红绿灯都为红灯否则交通灯处于正常的显示状态3Reset0clk为上升沿触发且hold0如果state为a状态时如果a_m1且next_state 1则recount1state bsign_state 1XXXXXXXXXX1否则recount 0state a如果为手动状态a_m0且h_butt 1则recount 1state b sign_state 1XXXXXXXXXX1否则recount 0 state a4Reset0clk为上升沿触发且hold0如果state为b状态时如果a_m1且next_state 1则recount1state csign_state 1XXXXXXXXXX0否则recount 0state b如果为手动状态a_m0且h_butt 1则recount 1state c sign_state 1XXXXXXXXXX0否则recount 0 state b5Reset0clk为上升沿触发且hold0如果state为c状态时如果a_m1且next_state 1则recount1state dsign_state 1XXXXXXXXXX1否则recount 0state c如果为手动状态a_m0且h_butt 1则recount 1state d sign_state 1XXXXXXXXXX1否则recount 0 state c6Reset0clk为上升沿触发且hold0如果state为d状态时如果a_m1且next_state 1则recount1state esign_state 1XXXXXXXXXX1否则recount 0state d如果为手动状态a_m0且h_butt 1则recount 1state d sign_state 1XXXXXXXXXX1否则recount 0 state d7Reset0clk为上升沿触发且hold0如果state为e状态时如果a_m1且next_state 1则recount1state esign_state 1XXXXXXXXXX1否则recount 0state d如果为手动状态a_m0且h_butt 1则recount 1state f sign_state 1XXXXXXXXXX1否则recount 0 state e8Reset0clk为上升沿触发且hold0如果state为f状态时如果a_m1且next_state 1则recount1state asign_state 1XXXXXXXXXX1否则recount 0state f如果为手动状态a_m0且h_butt 1则recount 1state a sign_state 1XXXXXXXXXX1否则recount 0 state fcom 闪烁电路模块的设计com1 原理及功能闪烁模块一般用来提醒或者引起致意有时又希望能关断某一路的显示本设计中采用关断某个一个LED 的方法利用一个低频2Hz左右的时钟与全部的输入信号都做与运算然后在送到LED的输入端口这样就会实现该低频时钟的频率闪烁功能闪烁模块控制交通灯闪烁通过与运算其实现功能主要程序为elsif clk_flash 1 then 闪烁模块闪烁时钟if flash_addr 01and flash 1then 控制交通指示灯 cnt 01XXXXXXXXXX cnt_flash dins xor cnt 异或运算else cnt_flash dins end ifelsif flash_addr 11 and flash 1 then cnt 01XXXXXXXXXX cnt_flash dins xor cntelse cnt_flash dinsend if其中clk_flash2hz是低频闪烁信号clk是系统时钟信号clk_flash是低频闪烁时钟信号 flash flash_addr是交通灯控制器和计数器控制器产生的控制信号它们共同作用判别是否关断关开LED交通灯com2 时序仿真图2-6 闪烁电路模块时序仿真波形时序仿真说明1reset1则cnt_flash清零2reset0clk为上升沿触发如果hold1时cnt_flashdins即保持不变输入等于输出3 reset0clk为上升沿触发且hold0如果clk_flash 1 且flash_addr 01and flash 1则cnt01XXXXXXXXXXcnt_flash dins xor cnt否则cnt_flash dins4reset0clk为上升沿触发且hold0如果clk_flash 1且flash_addr 11 and flash 1则cnt 01XXXXXXXXXX cnt_flash dins xor cnt否则cnt_flash dinscom 消振模块设计com1 原理及功能交通灯出现紧急情况或需要交通人员进行手动控制时需要手动操作按键由于按键被按下和按键弹起时都有抖动造成控制器采集到多个信号信息使得计数器产生一些误操作控制器误判概率增加消振功能模块通过采用延时响应原理来消除抖动和误操作模块利用方波上升延采集信号当采集到信号时进行计数计数直到设定值时系统才认为此信号为有用信息进行响应输出控制信号否则屏蔽掉此信号不响应执行输出8在本模块中有五个输入端resetr是内部初始化信号当模块采集到初始化信号时置零内部信号clkr是模块时钟信号其它三个是手动按键输入端手动转化控制按钮a_mr手动转换按钮h_buttonr紧急情况禁止按钮holdr模块采用clkr1KHZ的方波作为时钟信号模块每1um采集一次信息当采集到十个上升延时响应操作输出一个1um的控制信号主要程序如下elsif clkrevent and clkr 1 then 1khz的时钟信号 if holdr 1 then 采集到手动信息if cnt2 0111 then 计数判断 cnt2 0000 hoq 1else cnt2 cnt21 加计数hoq 0end ifend ifcom2 时序仿真图2-7 消震模块时序仿真波形时序仿真说明1resetr1则 cnt1cnt2cnt3清零2resetr 0clk为上升沿触发当holdr1时cnt1的值大于等于10时则清零cnt1令hoq1否则cnt1加一hoq0不变3resetr0clk为上升沿触发当a_mr1时cnt2的值大于等于10时则清零cnt2令aq1否则cnt2加一aq0不变4resetr0clk为上升沿触发当h_buttonr1时cnt3的值大于等于10时则清零cnt3令hq1否则cnt2加一hq0不变com 译码器设计 com71 原理及功能用来实现将二进制码或二十进制码译成一组与输入代码一一对应的高低电平信号的电路就是译码器它是一个多输入多输出电路它的输入是二进制代码或二十进制代码输出是代码所代表的字符本设计中采用七段显示译码器来显示交通灯上的倒记时com2 时序仿真图2-8 译码器模块时序仿真波形com 总体电路设计 电路由从总体上是由各个功能的电路模块组成通过元件例化语句调用低层次的当前设计实体 程序见附录P9 图2-9 总体电路的时序仿真波形24 实验平台的引脚配置及下载测试com 实验平台介绍com1 实验系统主板提供的基本功能说明15个按键即九个琴键按键按住琴键对应输出指示的红色二极管亮表示输出高电平松开琴键对应输出指示的红色二极管灭表示输出为低电平五个电平按键按下键对应输出指示的红色二极管亮表示输出高电平再按下键对应输出指示的红色二极管灭表示输出为低电平一个脉冲模式按键当按下此按键对应输出 20ms 的脉冲电平各按键均已用软件消抖8个共阴数码管其中 7 个作为数码显示用显示采用扫描和自动灭零技术当输入的四位二进制数大于 1001 时灭灯通过跳线选择供 CPLDFPGA 或单片机使用6个共阴数码管其中 6 个作为数码显示用自动灭零技术当输入的四位二进制数大于 1001 时灭灯直接与 CPLDFPGA 连接用户直接提供 6 个数码管的 4 位 BCD 码输入共 24 位8个发光二极管输入高电平时二极管发亮4组时钟输入时钟频率从 50MHz 到 2Hz 即 CLK1 CLK2 CLK3CLK4 其中任何一组只能用一个跳线帽接通时钟信号结对不能在一组上插两个或两个以上的跳线帽接通两个以上的时钟一个蜂鸣器和一个喇叭由跳线 K1 接通一个串行通信接口通过跳线选择供 CPLDFPGA 或单片机使用电源输入电压交流 220V-10V电源输出电压5V2A和-12V05A5V的地和12V地com2 跳线说明Jump112对XILINX的CPLDFPGA进行配置 34对LATTICE的 CPLD进行 配置 56对ALTERA的 CPLDFPGA进行配置 78对89S5X进行配置 表2-2 Jump1端口配置75318642 Jump22457单片机串口与RS232的 端口相连 1368CPLDFPGA串行信号与RS232端口相连 1278单片机与CPLDFPGA的串口对连 表2-3 Jump2端口配置24681357 Jump3 12提供USB外设的电源 表2-4 Jump3端口配置12 Jump412选通AS0809 23停用0809 表2-5 Jump4端口配置123 Jump512选通AD0832 34停用0832 表2-6 Jump5端口配置123MCU JP1全接左由CPLDFPGA控制扫描数码管显示全接右由单片机控制扫描数码管显示MCU JP2 按下单片机下载状态 弹上单片机运行状态MCU JP3 全接左使用IIC端口连接 全接右使用扫描键盘MCU JP4 全接左由CPLDFPGA控制步进电机驱动信号 全接右由单片机控制步进电机驱动信号ALTERA公司的 EP1K30芯片的 下载实验板的引脚分配表2-2 下载实验板1K30的 引脚与实验系统的连接关系9功能脚号功能脚号功能脚号功能脚号Clk155A1低118SL AD 95双口RAMClk254B1121R AD 92Clk359C1120EN AD 91CE113Clk456D1 高128D7 AD 82WR112蜂鸣器64A2122D6 AD 81RD111喇叭65B2131D5 AD 86D796琴键144C2130D4AD83D698琴键246D2133D3AD88D597琴键347A3132D2AD87D4100琴键448B3136D1AD90D399琴键549C3135D0AD89D2102琴键651D3138WRAD67D1101琴键760A4137D7AD80D0110琴键862B4141D6AD79A10109琴键963C4140D5AD78VGA电平137D4143D4AD73RED119电平238A5142D3AD72RED020电平339B57D2AD70GRN122电平441C5144D1AD69GRN021电平542D59D0AD68BLU126脉冲43A68RxD29BLU023LED 818B611TxD30VG1328LED714C610PS132VG1427LED617D613PS531LED512LED2117T1LED4119LED1114LED3116com 引脚配置及下载测试按表2-2可对管脚重新分配和定位进行硬件测试为后面的器件下载和硬件实现提供保障管脚配置定位如图2-10所示图2-10 管脚的配置定位3 交通灯的硬件实现31 显示实现本设计中要求实现两个方面的显示即各个路口的时间和指示灯的状态对于路口时间显示可以采用LED七段数码管实现方向指示可以采用LED点阵显示器来实现LED七段数码管有共阴极和共阳极两种接法本设计电路中采用共阴极数码管即把七段数码管内的所有发光二极管的阴极都接地时数码管才能被点亮LED点阵显示器亦称LED矩阵板以发光二极管为象素按行与列顺序显示彩色LED显示以三色二极管作为象素点来显示红光绿光澄光复合光红灯和绿灯同时亮它们分别代表交通灯控制电路中的红灯绿灯和黄灯三个指示灯此外在设计电路时在七段数码管和点阵显示器的每一段串联510的电阻以限制流经每一段的电流否则电流太大容易烧毁发光二极管1032 芯片的实现该设计采用的是EP1K30TC144-3芯片首先对通过对各个模块的编译和排错形成工程文件然后进行编译设置成工程编译综合到仿真测试通过后以备后用最后将顶层文件设置为工程统一处理这时顶层文件会自动根据元件例化语句调用底层编译好的设计文件在设定好顶层文件后底层设计好的文件元件型号和引脚锁定信息会自动失效元件型号的选定和引脚锁定情况始终以工程文件顶层文件的设定为准同样仿真结果也是针对工程文件的所以在对最后的顶层文件处理时仍然应该对它重新设定元件型号和引脚锁定图2-11 内部控制芯片的连接33 外围电路的实现根据交通灯系统的控制要求所示为本系统的硬件电路图该电路包含了1个CPLD芯片个七段LED数码显示器个分别表示各个方向上的红黄绿灯以及相应的限流电阻 PLUS II软件操作平台等相关技术很不大了解的状态我开始了独立的学习和试验查看相关的资料和书籍让自己头脑中模糊的概念逐渐清晰使自己对硬件描述语言VHDL应用系统PLUS II软件系统的设计流程每一次改进都是我学习的收获技术是一种实现电子系统或电子产品自动化设计的技术它是为了适应现代电子产品设计的要求伴随着计算机集成电路电子系统设计的发展吸收众多学科的成果而逐步形成的一门新技术在本设计中主要实现了在十字路口交通灯的灯色变化和计时变化通过VHDL语言编译软件程序在PLUS II软件平台上进行VHDL代码设计目标器件选择编译仿真引脚配置编程下载硬件测试对交通灯的设计进行现实模拟仿真通过波形图分析电路这样做可实现模拟运行出错时可随时修改而且可以根究不同的实际情况修改完善程序节约项目开发资金由于我所学的知识不够全面设计中存在不足和需要改进的地方例如对于系统性能提高的诸如面积优化逻辑优化设计速度优化并未涉及以至等一些较新技术在本实际中就没有显现出来 通过这次毕业设计的完成使得我对自己所学的专业知识又有了更深一步的了解开拓了个人的视野在相关的知识和技巧方面也有了提高但是个人所学是有限的难免有疏漏的地方通过这次设计希望有所改善让所学的专业知识从理论运用到实际工作和生活中致 谢参考文献1擦光辉CPLDTPGA的开发与应用M北京电于工业出版社2002 2杜玉远EDA设计快速入门圆电子世界2004 1 24 3ALTERA公司DATABOOKM北京清华大学出版社1998 4ALTERA公司ADHL语言M北京清华大学出版社1998 5刘宝琴ALTERA可编程逻辑器件及其应用M北京清华大学出版社1995 6宋万杰罗丰吴顺君CPLD技术及零应用M西安西安电子科技大学刘宝琴ALTERA可编程逻辑器件及其应用清华大comDL实用教程 电子科技大学出版社 2000310 马淑华高原电子设计自动化 北京邮电大学出版社分频器程序library ieeeuse ieeestd_logic_1164alluse ieeestd_logic_unsignedallentity fpq isport clk_1kresetin std_logicclkclk_flash out std_logic endarchitecture art of fpq issignal clk_cnt1 std_logic_vector 3 downto 0 signal clk_cnt2 std_logic_vector 7 downto 0 signal clk_s1clk_s2clk_f std_logicbeginprocess resetclk_1k beginif reset 1 thenclk_cnt1 0000clk_s1 0elsif clk_1kevent and clk_1k 1 thenif clk_cnt1 0101 then clk_cnt1 0000 clk_s1 1else clk_cnt1 clk_cnt11clk_s1 0end if end ifend processprocess resetclk_1kclk_s1 beginif reset 1 thenclk_cnt2 00000000clk_s2 0clk_f 0elsif clk_1kevent and clk_1k 1 thenif clk_s1 1 then if clk_cnt2 00000010 then clk_cnt2 00000000 clk_s2 1 clk_f not clk_felse clk_cnt2 clk_cnt21clk_s2 0clk_f clk_f end ifend ifend ifend processclk clk_s2clk_flash clk_s1 and clk_s2 and clk_fend计数器程序library ieeeuse ieeestd_logic_1164alluse ieeestd_logic_unsignedalluse ieeestd_logic_arithallentity jsq isport clkresetrecountholdin std_logicdin1din2in std_logic_vector 7 downto 0 dout1dout2 dout3dout4 out std_logic_vector 3 downto 0 next_state out std_logicflash out std_logic endarchitecture art of jsq is signal next_sa last_f std_logic signal cnt1cnt2 std_logic_vector 7 downto 0 beginprocess clkresetrecounthold beginif reset 1 then cnt1 00000000 cnt2 00000000elsif clkevent and clk 1 thenif hold 1 thencnt1 cnt1cnt2 cnt2elsif recount 1 thencnt1 din1cnt2 din2else cnt1 cnt1-1cnt2 cnt2-1end if end ifend processdout1 cnt1 3 downto 0 dout2 cnt1 7 downto 4 dout3 cnt2 3 downto 0 dout4 cnt2 7 downto 4 process cnt1cnt2 beginif cnt1 00000000 or cnt2 00000000 then next_sa 1else next_sa 0end ifif cnt1 00000101 or cnt2 00000101 thenlast_f 1else last_f 0end ifend processnext_state next_saflash last_fend计数器控制器程序library ieeeuse ieeestd_logic_1164alluse ieeestd_logic_unsignedalluse ieeestd_logic_arithallentity jsqkzq isport clk in std_log

温馨提示

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

评论

0/150

提交评论