酷文首页  
站内搜索:
网站地图 | RSS订阅 | 收藏本站
经济论文
证券金融
工商管理
会计审计
法学论文
医药论文
社会论文
教育论文
计算机论文
艺术论文
哲学论文
财政税收
财务管理
公共管理
理学论文
政治论文
文学论文
工学论文
文化论文
实用文档
应用文
自考成考
演讲稿
法律文书
子栏目导行↓
网站赞助商↓
本类热点↓
本类更新↓
热门标签↓
网摘收藏↓

基于VHDL的交通灯控制器的设计与实现

作者:易 博
来源:酷文网
点击:
载入中...
加入时间:2008-07-23
字体大小:[  ]

4  交通灯控制器的详细设计
4.1  计数模块的设计
4.1.1  计数模块功能描述
根据输入基准时钟信号CLK,当HOLD信号为1时则表示处于特殊情况,NUM保持原值直到HOLD再次变为0。当RESER信号为1时则是将NUM值重置为0。当输入信号HOLD和RESET置0情况下,对信号NUM进行计算。当NUM小于49时,每一个基准时钟信号CLK,NUM数值加1,同时读取NUM值作为下一次计算的初始值。当NUM等于49时,则把NUM值重新赋值为0。
4.1.2  输入/输出信号说明
根据计数模块功能描述和总体框图,得到计数模块的输入/输出信号,对输入输出信号的详细说明如下:
输入端口说明:
RESET:交通灯控制器复位控制键,当RESET=1时,计数模块中的端口NUM
重新赋值为0。当RESET=0时,计数模块中的端口NUM正常计算。RESET采用1位2进制来表示,用VHDL定义为RESET:INT SDT_LOGIC。
HOLD:交通灯控制器特殊情况控制键,当HOLD=1时表示出现特殊情况,计数模块中的端口NUM保持不变。当HOLD=0时表示正常情况,计数模块中的端口NUM,当小于49时端口NUM递增步长为1,当等于49时端口NUM重新赋值为0。HOLD采用1位2进制来表示,用VHDL语句定义为HOLD:IN SDT_LOGIC。
CLK:系统基准时钟信号,频率为1HZ。CLK对端口NUM的计算有关,将在CLK上升沿改变端口NUM的值。CLK采用1位2进制来表示,用VHDL定义为CLK:INT SDT_LOGIC。


输出端口说明:
NUM:计数端口。为BUFFER类型,这样可以使计数模块回读输出信号做下一计数值的初始值。NUM采用INTEGER来表示并将其范围限制为0到49,用VHDL语句定义为NUM:BUFFER INTEGER RANGE 0 TO 49。
4.1.3  实体说明
根据计数模块功能描述和总体框图的输入/输出信号,容易得到计数模块的实体说明,实体说明图如图3所示。

 

图3  计数模块模块实体说明
Fig 3  Entity discription of the counter
4.1.4  实现算法
通过计数模块功能描述可以得出计数模块基本流程,流程图如图4所示。

 

图4  计数模块进程
Fig 4  process of the counter
4.1.5  元件符号图
原理图输入方式是FPGA/CPLD设计的基本方式之一,几乎所有的设计环境都集成有原理图输入方法。这种设计方法直观、易用、支撑它的是一个功能强大、分门别类的器件库。然而由于器件库元件通用性差,导致其移植性差,如更换设计实现的芯片信号或厂商不同时,整个原理图需要做很大修改甚至是全部重新设计。所以原理图设计方式主要是一种辅助设计方式,更多的应用于混合设计中的个别模块设计。大多数人喜欢用图来表示一个设计,因为原理图能更清楚的显示不同设计模块的关系。
由于原理图提供图形表示,因此它的使用更流行。很多年来,原理图被认为是一张最优的设计方法,但随着电子技术的发展,电路越来越复杂,器件密度越来越大,这又使得利用原理图设计感到了能力有限,而且也是一件非常耗时的工作。
根据进程的算法流程图,我们容易编写对应的计数模块的VHDL代码,把该模块的已经编写好的VHDL代码在Quartus II平台上运行,进行编译与调试。编译成功之后,建立计数模块的符号元件,就可以得到计数模块的元件符号图如图5所示。

图5  计数模块元件符号图
Fig 5 Component symbol diagram of the counter block
4.1.6  仿真
模块编译成功,只能说明设计符合一定的语法规范,但其是否满足设计者的功能要求并不能保证,这需要设计者通过仿真对设计进行验证。仿真的目的就是在软件环境下,验证电路的行为和设想中的电路功能是否一致。
仿真就是对设计项目进行全面彻底的测试,以确保设计项目的功能和时序特性,以及最后的硬件器件的功能与原设计相吻合。仿真可分为功能仿真和时序仿真。功能仿真只测试设计项目的逻辑行为,而时序仿真则既测试逻辑行为,也测试实际器件在最差条件下设计项目真是运行情况。
仿真操作前必须利用QuartusII波形编辑器建立一个矢量波形文件(.VWF)作为仿真激励。VWF文件将仿真驶入矢量和仿真输出描述称为波形的图形来实现仿真,但也可以将仿真激励矢量用文本表达,即文本方式的矢量文件(.vec)。
QuartusII允许对真个设计项目进行仿真测试,也可以对该设计中的任何子模块进行仿真测试。对工程的编译通过后,必须对其功能和时序进行仿真,以了解设计结果是否满足原设计要求。
计数模块的仿真:当RESET起始状态设为高电平时,NUM将为0。CLK为1HZ并且在上升沿时改变NUM的数值,当NUM到49时再重新赋值为0。当HOLD为高电平时,NUM的数值不改变,变为低电平时,NUM恢复。仿真结果与预设功能相符,仿真图如图6所示。

图6  计树模块的仿真图
Fig 6 Simulatiom diagram of the counter
4.2 控制模块的设计
4.2.1  控制模块功能描述
根据输入端口NUM的值,来确定STATE的状态,进而确定交通信号灯的信号和倒计时间。当NUM小于20时STATE一直保持状态S0,交通灯信号为GA<=1,YA<=0,RA<=0,GB<=1,YB<=0,RB<=0;倒计时间NUMA赋值为20减去NUM,NUMB赋值为25减去NUM。当NUM等于20时STATE转化为状态S1。当NUM小于25时STATE一直保持状态S1,交通灯信号为GA<=0,YA<=1,RA<=0,GB<=0,YB<=0,RB<=1;倒计时间NUMA赋值为25减去NUM,NUMB赋值为25减去NUM。当NUM等于25时STATE转化为状态S2。当NUM小于45时STATE一直保持状态S2,交通灯信号为GA<=0,YA<=0,RA<=1,GB<=1,YB<=0,RB<=0;倒计时间NUMA赋值为50减去NUM,NUMB赋值为45减去NUM。当NUM等于45时STATE转化为状态S3。当NUM小于49时STATE一直保持状态S3,交通灯信号为GA<=0,YA<=0,RA<=1,GB<=0,YB<=1,RB<=0;倒计时间NUMA赋值为50减去NUM,NUMB赋值为50减去NUM。当NUM等于49时STATE转化为状态S0。
4.2.2  输入/输出信号说明
根据控制模块功能描述和总体框图,得到控制模块的输入/输出信号,对输入输出信号的详细说明如下:
输入端口说明:
RESET:交通灯控制器复位控制键,当RESET=1时,控制模块中的枚举信号STATE
将被赋值为S0状态。当RESET=0时,控制模块中的枚举信号STATE正常转换。RESET采用1位2进制来表示,用VHDL定义为RESET:INT SDT_LOGIC。
CLK:系统基准时钟信号,频率为1HZ。CLK与枚举信号STATE的状态改变有关,将在下降沿时改变枚举信号STATE的状态。CLK采用1位2进制来表示,用VHDL定义为CLK:INT SDT_LOGIC。转贴于 酷文网-论文下载中心 http://www.coolwen.net


共8页: 上一页 [1] [2] [3] 4 [5] [6] [7] [8] 下一页

网摘收藏:
免责声明 | 关于我们 | 广告联系 | 友情链接 | 网站地图 | 共同合作
免费论文 毕业论文 毕业论文范文 酷文网(www.coolwen.net) 版权所有 coolwen.net 2007,All Rights Reserved
E-mail:hui_love#tom.com(为防止垃圾邮件请把#换成@) 点击这里给我发消息 点击这里给我发消息
湘ICP备07003917号