交通灯控制器课程设计报告共29页.doc
《交通灯控制器课程设计报告共29页.doc》由会员分享,可在线阅读,更多相关《交通灯控制器课程设计报告共29页.doc(29页珍藏版)》请在三一文库上搜索。
1、精选优质文档-倾情为你奉上目录引言3第1章 Verilog HDL 硬件描述语言的介绍4第2章 设计任务与要求5 2.1 实验目的与任务5 2.2 参考设计方案 6第3章 设计说明73.1 设计思路73.2 模块介绍9第4章 Verilog HDL 源程序11第5章 功能仿真18 5.1 功能仿真介绍185.2 功能仿真结果19第6章 时序仿真20 6.1 时序仿真介绍20 6.2 时序仿真结果21第7章 管脚分配22第8章 设计结果24第9章 总结28第10章 参考文献29引言 EDA 技术是依靠功能强大的电子计算机,在EDA 工具软件平台上,对以硬件描述语HDL (Hardware Des
2、cription Language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编辑、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/ FPGA 或专用集成电路ASIC(Application Specific IntegratedCircuit) 芯片中,实现既定的电子电路设计功能。EDA 技术使得电子电路设计者的工作仅限于利用硬件描述语言和EDA软件平台来完成对系统硬件功能的实现,极大地提高了设计效率,缩短了设计周期,节省了设计成本。 实现路口交通灯系统的控制方法很多,可以用标准逻辑器件,可编程控制器PLC ,单片机等方案来实现。但是这些控制方法的功能修改及调试都需要硬
3、件电路的支持,在一定程度上增加了功能修改及系统调试的困难。因此,在设计中采用EDA 技术,应用目前广泛应用的Verilog HDL 硬件电路描述语言,实现交通灯系统控制器的设计,利用MAX + PLUS 集成开发环境进行综合、仿真,并下载到CPLD 可编程逻辑器件中,完成系统的作用。第1章Verilog HDL 硬件描述语言的介绍Verilog HDL 是目前应用最广泛的一种硬件描述语言。Verilog HDL 是在1983 年由GDA(GateWay Design Automation) 公司的Phil Moorby 首创的。1986 年,他对Verilog HDL 的发展又作出了另一个巨大
4、贡献:提出了用于快速门级仿真的XL 算法。Verilog - XL 算法的成功,使Verilog HDL 语言得到迅速发展。基于Verilog HDL 的优越性,IEEE 于1995 年制定了VerilogHDL 的IEEE 标准,即Verilog HDL1364 - 1995。Verilog HDL 语言具有以下特点:基本逻辑门,例如and ,or 和nand 等都内置在语言中。用户定义原语(UDP) 创建的灵活性。用户定义的原语既可以是组合逻辑原语,也可以是时序逻辑原语。开关级基本结构模型,例如pmos 和nmos 等也被内置在语言中。提供显示语言结构制定设计中的端口到端口的时延及路径和设
5、计的时序检查。可以用三种不同方式或混和方式对设计建模这些方式包括:行为描述方式使用过程化结构建模;数据流方式使用连续赋值语句方式建模;结构化方式使用门和模块实例语句描述建模。能够描述层次设计,可使用模块实例结构描述任何层次。Verilog HDL 的描述能力能够通过使用编程语言接口(PLI) 机制进一步扩展。PLI 是允许外部函数访问Verilog 模块内信息,允许设计者与模拟器交互的例程集合。设计能够在多个层次相加以描述,从开关级,门级,寄级器传送级(RTL) 到算法级,包括进程和队列级。能够监控拟验证的执行,即模拟验证执行过程这设计的值能够被监控和显示。在行为级描述中,Verilog HD
6、L 不仅能够在RTL 级上进行设计描述,而且能够在体系结构描述及其算法级行为上进行第2章 设计任务与要求2.1 实验目的与任务学习利用计数器和状态机设计十字路口交通灯控制器。设计一个简单十字路口交通灯控制器。该控制器控制甲乙两道的红、黄、绿三色灯,指挥交通和行人安全通行。复杂十字路口交通灯控制器要比简单交通灯控制器增加一些功能,如倒计时时间显示,左转弯(左拐)、指示灯闪烁及特殊紧急情况的处理等。2.2 参考设计方案下面以下面的十字路口交通灯系统为例,来说明上述功能的实现:东西方向(甲道)循环为绿灯45s, 黄灯5s,左拐灯15s,黄灯5s,红灯40s,黄灯5s南北方向(乙道)循环为红灯65s,
7、黄灯5s,绿灯20s,黄灯5s,左拐灯15s,黄灯5s其一个工作周期的时间关系示意图如下:红 65s 黄5s 绿20s 黄5s 左拐15s 黄5s 绿 45s 黄 5s 左拐15秒 黄 5s 红40s 黄5s S0 S1 S2 S3 S4 S5 S6 S7 甲道乙道状态表示 可以将一个周期划分成以下8种状态:S0:cnt=0-44:甲道通行,乙道禁止;S1:cnt=45-49:甲道停车,乙道禁止;S2:cnt=50-64;甲道左拐,乙道禁止;S3:cnt=65-69;甲道停车,乙道禁止;S4:cnt=70-89;甲道禁止,乙道通行;S5:cnt=90-94;甲道禁止,乙道停车;S6:cnt=9
8、5-109;甲道禁止,乙道左拐;S7:cnt=110-114;甲道禁止,乙道停车;具体实现可采用VHDL/Verilog 硬件描述语言设计。 第3章 设计说明3.1 设计思路根据交通灯控制器要实现的功能,考虑用两个并行执行的always模块(两个进程)来分别控制甲道和乙道两个方向的4盏灯。这两个always模块使用同一个时钟信号,以进行同步,也就是说,两个进程的敏感信号是同一个。每个always模块控制一个方向的4种灯按如下顺序点亮,并往复循环:甲道:绿灯黄灯左拐灯黄灯红灯黄灯。乙道:红灯黄灯绿灯黄灯左拐灯黄灯。每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置法设计,这样只需改变预置
9、数据,就能改变计数器的模,因此每个方向只要一个计数器进行计时即可。为便于显示灯亮的时间,计数器的输出均采用BCD码,显示由4个数码管来完成,甲道方向和乙道方向各用两个数码管。总体思想可分为以下三个模块:1) 频率转换模块这个模块的基本功能就是将DE2-70实验板上的50MHz的晶振转换为1Hz的时钟信号,主要方法是通过递归来降低频率,为了使时钟信号更加准确,本次实验使用实验板内部自带的晶振信号。2)LED显示模块这个模块的基本功能就是将每条通道四位BCD码倒计时转换为七段码显示在实验板的数码管上,主要方法是通过七段码的基本分配方式。3)顶层模块这个模块包含状态分配模块,初始化倒计时以及状态转换
10、模块三个功能。其中,状态分配使用八位BCD码初始化每个状态的时间,初始化倒计时分别对两个通道BCD码的时间进行倒计时,状态转换是用于对时间倒计时结束后分配交通灯的下一个状态。总流程图:3.2 模块介绍(1) 状态分配模块:(甲乙两道除预置数及顺序不同,其余均相同)流程描述:首先将EN开关置1,处于清除功能,显示及亮灯情况不改变,再将EN置为0,处于开始状态,开始分配状态,包括每个状态的时间长度分配和每个道路的亮灯顺序分配。(2)倒计时及状态转换模块:流程描述:首先将EN开关置1,处于清除功能,再将EN置为0,处于开始状态,各个道路根据已分配的状态进行,通过灯的变化表示红灯,绿灯,黄灯,左拐灯的
11、变化,同时两块LED显示板会显示各个状态的倒计时情况,当倒计时为0,进入下一状态,将所亮的灯以及时长改为预设值,重新开始倒计时,否则时间减1,循环判断。下表为该控制芯片实现基本功能状态转换表:第4章 Verilog HDL源程序module Traffic(CLK,EN,LAMPA,LAMPB,ACOUNT,BCOUNT,dis);/顶层模块input CLK;/同步时钟信号, input EN;/ 使能信号,为1的话,则控制器开始工作output13:0 ACOUNT,BCOUNT;output3:0 LAMPA,LAMPB; output 3:0dis;/清除小数点assign RST=1
12、/频率使能端设为1,分频模块一直执行clk_1hz clk (CLK,RST,clk_1Hz);/分频模块,将50MHz分频为1Hzhex_7seg h7 (numa7:4,ACOUNT13:7); hex_7seg h6 (numa3:0,ACOUNT6:0); /显示甲道时间倒数hex_7seg h5 (numb7:4,BCOUNT13:7);hex_7seg h4 (numb3:0,BCOUNT6:0); /显示乙道时间倒数reg7:0 numa,numb; /八位BCD码倒计时regtempa,tempb; /控制是否亮灯reg2:0 counta,countb; /控制亮灯的顺序r
13、eg7:0 ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft; /各状态的时间reg3:0 LAMPA,LAMPB; /控制甲乙两道方向的亮灭,03分别控制左拐通行,绿灯,黄灯,红灯四盏灯reg3:0 dis; /用于去除LED小数点always (EN) if(!EN) /当使能信号为0,重新设置计数器begin /设置各种灯的计数器的预置数ared =8b; /甲道红灯40 秒ayellow =8b; /甲道黄灯5 秒agreen =8b; /甲道绿灯45 秒aleft =8b; /甲道左转灯15 秒bred =8b; /乙道红灯65
14、秒byellow =8b; /乙道黄灯5 秒bleft =8b; /乙道绿灯15 秒bgreen =8b; /乙道左转灯20 秒dis=4b1111;/去除小数点end always (posedge clk_1Hz) /该进程控制甲道的四种灯begin if(EN) begin if(!tempa) begin tempa=1; case(counta) /控制亮灯的顺序 0: begin numa=agreen; LAMPA=4; counta=1;end 1: begin numa=ayellow; LAMPA=2; counta=2;end 2: begin numa=aleft; L
15、AMPA=8; counta=3;end 3: begin numa=ayellow; LAMPA=2; counta=4;end 4: begin numa=ared; LAMPA=1; counta=5;end 5: begin numa=ayellow; LAMPA=2; counta=0; end default: LAMPA1) if(!numa3:0)/如果个位减至1,十位减1,个位变为9 begin numa3:0=9; numa7:4=numa7:4-1; end else numa3:0=numa3:0-1; if(numa=2) /倒计时显示至1 (tempa置0后,下1秒
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交通灯 控制器 课程设计 报告 29
