基于VHDL的交通控制灯设计

上传人:飞*** 文档编号:43983463 上传时间:2018-06-07 格式:DOC 页数:19 大小:242KB
返回 下载 相关 举报
基于VHDL的交通控制灯设计_第1页
第1页 / 共19页
基于VHDL的交通控制灯设计_第2页
第2页 / 共19页
基于VHDL的交通控制灯设计_第3页
第3页 / 共19页
基于VHDL的交通控制灯设计_第4页
第4页 / 共19页
基于VHDL的交通控制灯设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《基于VHDL的交通控制灯设计》由会员分享,可在线阅读,更多相关《基于VHDL的交通控制灯设计(19页珍藏版)》请在金锄头文库上搜索。

1、福建农林大学计算机与信息学院福建农林大学计算机与信息学院信息工程类信息工程类实验报告实验报告课程名称:VHDL 数字系统设计姓 名:系:电子信息工程专 业:电子信息工程年 级:2008 级学 号:指导教师:职 称:2011 年 6 月 18 日实验项目列表序号实验项目名称成绩指导教师1基于 VHDL 的交通控制灯设计蔡剑卿福建农林大学计算机与信息学院信息工程类实验报告福建农林大学计算机与信息学院信息工程类实验报告实验 基于 VHDL 的交通控制灯设计1实验目的和要求实验目的和要求模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿 LED 作为交通信号灯,设计一个交通信号灯控制器。

2、基本要求: (a)信号灯分别由红、黄、绿三种颜色组成,运行时,绿灯亮 40 秒钟,然 后闪 5 秒,绿灯灭,黄灯亮 2 秒,黄灯灭,红灯亮,同时另一方向的绿灯亮, 红灯亮的时间为 47 秒 。 扩展要求: (b)增加显示功能,即每个灯亮时显示相应的秒数并倒计时。 (c)增加左转功能,即信号灯由红灯、黄灯和两个绿灯组成,左转时间为 15 秒,红灯亮的时间调整为 62 秒。2实验原理或方案实验原理或方案1.总体方案的设计:交通灯控制电路主要由以下几部分构成,如图 2.1 所示,有电源电路,脉冲电路,分频电路,倒计时电路,(交通灯)状态控制电路,灯显示电路。图 2.1 交通灯控制电路功能模块框图在某

3、一十字路口交叉地带,可设置东西走向的道路为主道,南北走向的道路 为次道,主次车道的交通灯需按交通法则交替运行。 2. 总体设计电路图脉冲电路分频电路倒计时电路状态控制电路 路显示器灯显示电路电源供电控制电路VCCCLKINPUTG1OUTPUTY1OUTPUTR1OUTPUTL1OUTPUTL2OUTPUTG2OUTPUTY2OUTPUTR2OUTPUTVGA3.0OUTPUTQ7.0OUTPUTAOUTPUTBOUTPUTCOUTPUTDOUTPUTEOUTPUTFOUTPUTGOUTPUTclkEN45AEN45BDOUT45M7.0DOUT45B7.0CNT45sinst1clkEN15

4、AEN15BDOUT15M7.0DOUT15B7.0CNT15sinst2clkEN02AEN02BDOUT02M7.0CNT02sinst3EN45AEN45BEN02AEN02BEN15AEN15BAIN45A7.0AIN45B7.0AIN15A7.0AIN15B7.0AIN027.0DOUTM7.0DOUTB7.0XSKZinst4CLKG1Y1R1L1L2G2Y2R2KZinst9VCCGNDSEL2.0Q7.0decode3_8inst6num3.0ABCDEFGDPdeledinst7clk3clkout1clkout2divinst8CLK2DOUT13.0DOUT23.0DOU

5、T33.0DOUT43.0DAOUT3.0SEL2.0SELTIMEinst5VGA3VGA1VGA0VGA2DOUTB7.0DOUTM7.0DOUTM3.0DOUTM7.4DOUTB3.0DOUTB7.4交通控制灯系统总体电路图3主要仪器设备主要仪器设备1、装有 Altera 公司 Max+plus仿真软件的计算机一台。 2、选择 FPGA 器件:Cyclone 中的 EP1C12Q240C8。 3、EDA-VI 实验箱一台。 4、实现数据下载的数据线,导线。 5、开关以及 LED 灯。 6、四位八段数码显示管。4操作方法与实验步骤操作方法与实验步骤Max+plus开发工具是美国 Alter

6、a 公司自行设计的一种软件工具,其使用方法如下:(1)建立和编写一个 VHDL 语言的工程文件 首先启动 Max+plus系统,启动后系统进入主菜单画面。 (a)打开文本编辑器;用鼠标点击 File/New 选项,接着屏幕会出现 New 的 对话框。在对话框内有 4 种编辑方式:图形编辑、符号编辑、文本编辑和波形 编辑。VHDL 文件属于文本,那么应该选择文本编辑方式,点击 OK 按钮,屏幕 上将出现一个无名的编辑窗口,则系统进入文本编辑状态。 (b)在编辑窗口中进行编辑输入,输入相应的描述语句。 (c)存盘。 (a 我们编辑的 VHDL 文件扩展名为 vhd;b 保存的文件名必须 和所定义的

7、实体名相同。c 文件存盘的目录不应是根目录或桌面,建议存放在 Max2work 或 Maxplus2 目录,或其子目录。 ) (2) VHDL 程序的编译 (a)若文件没有打开,需首先打开要编译的 VHDL 文件; (b)将目前的文件设置成工程文件;点击 File/Project/Set Project to Current File。 (c)打开编译器;点击主菜单 MAX+plus/Compiler 选项。 (d)编译开始前还应确定源程序的版本。 点击主菜单中的 Interfaces/VHDL Netlist Reader Settings选项,就 可在屏幕上显示 VHDL Netlist

8、Reader Settings(网表阅读器设置)对话框, 有 VHDL 1987 或 VHDL 1993 版本可供我们选择。 (e)开始编译;点击编译对话框中的 Start 按钮,编译即开始。 在编译过程中如果编译器发现源程序语法有错就会自动弹出错误信息窗进 行提示。这时需回到文本编辑器,修改 VHDL 程序中的错误,然后再继续编译 直到全部正确为止。 (3) VHDL 程序的功能仿真 仿真是为了验证我们所编写的 VHDL 程序的功能是否正确。 首先生成仿真波形文件 (a)打开波形编辑器;点击主菜单的 MAX+plus/Waveform Editor 选项, 就可在屏幕上显示波形编辑器窗口。

9、(b)确定仿真持续时间(File/End Time) 。 (c)选进输入输出端口名; (d)编辑输入信号波形;通过波形编辑器左侧的信号设置工具栏可以进行 输入信号的波形编辑。对于输出信号波形,其最终值由仿真结果确定,我们可 以把它设置为缺省值,例如设置为不定值或高阻值。 (d)信号波形编辑完成后,需存盘为仿真使用,文件名采取默认方式即可。打开仿真器;点击主菜单 MAX+plusSimulator 项,此时弹出 Simulator 对话框。点击对话框的 Start 按钮,仿真即开始。在仿真结束后打 开仿真波形文件(点击右下角的 Open SCF 按钮)即可以显示仿真结果。 (4) 芯片的时序分析

10、 仿真结果从波形上来看,很难给出定量的信号延迟关系,这一点时序分析 却能直观地用表来进行显示。 (a)选择要下载的器件型号; (b)需要再编译一次。(c)打开时序仿真器;点击 Timing Analyzer 选项,即可显示 Timing Analyzer 对话框。在对话框弹出时,表中是空白的。 (d)最后点击 Start 按钮后,时序分析器开始启动。时序分析结束后弹出 一个结束提示框,点击确定按钮即可返回时序分析器。此时,表中将显示有关 输入到输出的传输延迟数据。 (5) 设定芯片脚位 方式一: 打开芯片脚位设置器;点击主菜单 MAX+plus/Floorplan Editor,出 现 Flo

11、orplan Editor 对话框; a 若此时在 Unassigned Nodes 列表框中看不到输入输出口名称,点击主菜 单的 Layout 选项,再点击其子菜单 Current Assignment Floorplan,将会出 现输入输出口名称。 b 若窗口下面芯片视图为 Lab View,需转变为 Device View(器件视图) , 通过点击主菜单选项 Layout/device view 实现,则会看到管脚的排列情况。 将实体定义的端口名字和下载芯片的管脚进行具体对应;将 Unassigned Nodes 列表框中的输入输出口名称用鼠标分别拖至芯片的相应脚位,则芯片的 脚位设置完

12、成。被设置的芯片脚位会以不同于黑白的颜色显示出来。 最后再进行一次编译。注意芯片脚位设定后,必须重新编译才能下载。 这时系统将产生可以向 EPF10K10 下载的文件 and2.Sof。 方式二: 打开芯片脚位设置窗口;点击主菜单 Assign/ Pin/Location/Chip,出 现脚位设置对话框; 将实体定义的端口名字和下载芯片的管脚进行具体对应;在 Node Name 框中输入我们定义的实体端口名字,然后在 Pin 列表选项框中输入下载芯片的 管脚序号,再点击对话框右下角的 Add 按钮,将所有端口设置完成以后,点击 Ok 按钮,则实现实体端口和下载芯片的管脚的对应; 最后再进行一次

13、编译。注意芯片脚位设定后,必须重新编译才能下载。 这时系统将产生可以向 EPF10K10 下载的文件 and2.Sof。5实验内容及实验数据记录实验内容及实验数据记录模块一 :分频器 分频器实现的是将高频时钟信号转换成低频时钟信号,clk 信号经分频器 将 50MHz 分为 250Hz 和 1Hz 提供给计数器、控制器和扫描显示电路所需的时钟 计时脉冲。clk3clkout1clkout2divinst8分频器模块(div)VHDL 源程序:library ieee;use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; en

14、tity div is port(clk3:IN std_logic;clkout1,clkout2:OUT std_logic);end div; architecture one of div is begin process(clk3) variable cnt:integer range 0 to 25000000; variable tmp:std_logic; beginif(clk3event and clk3=1)thenif cnt=24999999 thencnt:=0;tmp:=not tmp; else cnt:=cnt+1;end if; end if; clkout

15、1=99999 thencnt:=0;tmp:=not tmp; else cnt:=cnt+1; end if; end if; clkout2124 THEN S:=1;elseS:=S+1;IF 0=“100“)THEN COUNTDAOUTDAOUTDAOUTDAOUTDAOUTDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT45MDOUT15MDOUT15MDOUT15MDOUT15MDOUT15MDOUT15MDOUT15MDO

16、UT15MDOUT15MDOUT15MDOUT15MDOUT15MDOUT15MDOUT15MDOUT15MDOUT15MDOUT15MDOUT02MDOUT02MDOUT02M=“00000000“; END CASE; END PROCESS; END ARCHITECTURE ART; 模块八:译码器(decode3_8)SEL2.0Q7.0decode3_8inst63-8 译码器模块VHDL 源程序: LIBRARY ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; ENTITY decode3_8 ISPORT(SEL:IN std_logic_vector(2 downto 0);Q:OUT std

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号