EDA技术与VHDL语言设计
- 格式:doc
- 大小:266.50 KB
- 文档页数:5
eda技术与vhdl设计答案eda技术与vhdl设计答案【篇一:eda技术与vhdl复习练习题】/p> 一、填空题1、pld的中文含义是:________。
2、asic的中文含义是:________。
3、“与-或”结构的可编程逻辑器件主要由四部分构成:________、________、____________和____________。
4、可编程逻辑器件结构图中一般用“x”表示此编程单元为________。
6、可编程逻辑器件结构图中无任何标记表示此编程单元为________。
7、可编程逻辑器件按规模的大小一般分为________和_________。
8、低密度可编程逻辑器件的主要有________和_________。
9、gal器件________取代全部pal器件。
10、pal器件只能________次编程。
11、gal器件能________次编程。
12、gal器件________取代ttl器件。
13、gal器件采用________擦除。
14、pal和gal器件________在系统编程。
15、pal和gal器件需要使用________编程。
二、选择题1、可编程逻辑器件pld的基本结构形式是_______:a:与——与b:与——或c:或——与d:或——或2、可以多次编程的器件是_______:a:prom b:plac:pal d:gal3、pld器件未编程时_______:a:有逻辑功能 b:没有逻辑功能c:pal器件有逻辑功能d:gal 器件有逻辑功能 4、gal器件可以用擦除:a:普通光 b:紫外线c:红外线 d:电5、gal16v8器件的输出引脚最多有______:a:16b:4 c:8 d:206、pal16v8器件的输入引脚最多有_______:a:16 b:4 c:8 d:207、gal16v8不能取代_________:a:pal16v b:74ls138c:74ls373 d:isplsi1032e-70plcc848、gal16v8的_______不可编程:a:与阵列b:或阵列c:输出逻辑宏单元olmc d:a、b都三、判断题1、gal器件的输出逻辑宏单元olmc不能实现pal器件的所有输出形式。
EDA技术与VHDL_汇总EDA(电子设计自动化)技术与VHDL(可编程硬件描述语言)是在电子设计领域中广泛应用的两种技术。
EDA技术是指利用计算机辅助设计软件来帮助工程师进行电子电路的设计和验证,提高设计效率和降低成本。
而VHDL是一种硬件描述语言,用于描述电子系统的行为和结构,是EDA技术的重要工具之一、本文将针对EDA技术和VHDL进行综述。
EDA技术是电子设计流程中的重要环节,包括电路设计、电路模拟、布局与布线、物理验证等多个方面。
其中,电路设计主要关注电路行为和结构的设计,通过EDA软件可以对电路进行逻辑综合、时序优化等操作,从而生成最终的电路结构。
电路模拟是对设计电路进行仿真和验证的过程,通过EDA软件可以模拟电路的工作状态,检查设计是否符合预期要求。
布局与布线是将逻辑电路转化为物理电路的过程,在电路板上布置元件并进行连线,以满足电路的功能和性能要求。
物理验证则是根据设计规则和约束对布局和布线结果进行验证,确保电路能够正常工作。
VHDL是一种硬件描述语言,用于描述电子系统的行为和结构。
VHDL提供了抽象层次,可以描述从逻辑门到整个系统的各个层次。
使用VHDL,设计者可以对系统进行模块化描述,将整个系统分解为多个模块并进行独立设计。
VHDL还提供了丰富的工具和语法,用于描述电路的结构、时序、数据流等信息。
通过VHDL描述的电路可以通过EDA软件进行综合、仿真、布局与布线等操作。
VHDL还具有良好的可移植性,设计者可以在不同EDA软件和不同平台上进行开发和验证。
EDA技术与VHDL的结合可以提高电子设计的效率和质量。
通过EDA软件,设计者可以利用图形界面进行电路设计,快速搭建和验证电路结构。
在设计过程中,VHDL可以使设计者在高层次上描述电路功能和结构,提高设计抽象和可重用性。
此外,通过EDA软件可以进行电路的仿真和验证,帮助设计者对电路进行性能、时序等方面的优化,减少设计错误的风险。
在布局与布线阶段,EDA软件可以自动完成复杂的布局与布线操作,优化电路的尺寸和信号传输路径,提高电路的可靠性和性能。
1.8.1填空1.EDA的英文全称是Electronic Design Automation2.EDA技术经历了计算机辅助设计CAD阶段、计算机辅助工程设计CAE阶段、现代电子系统设计自动化EDA阶段三个发展阶段3. EDA技术的应用可概括为PCB设计、ASIC设计、CPLD/FPGA设计三个方向4.目前比较流行的主流厂家的EDA软件有Quartus II、ISE、ModelSim、ispLEVER5.常用的设计输入方式有原理图输入、文本输入、状态机输入6.常用的硬件描述语言有VHDL、Verilog7.逻辑综合后生成的网表文件为EDIF8.布局布线主要完成将综合器生成的网表文件转换成所需的下载文件9.时序仿真较功能仿真多考虑了器件的物理模型参数10.常用的第三方EDA工具软件有Synplify/Synplify Pro、Leonardo Spectrum11.2000年推出的Pentium4微处理器芯片的集成度达(4200 )万只晶体管。
12.在EDA发展的(CAD )阶段,人们只能借助计算机对电路进行模拟、预测,以及辅助进行集成电路版图编辑、印刷电路板(PCB)布局布线等工作。
13.在EDA发展的(CAE )阶段,人们可以将计算机作为单点设计工具,并建立各种设计单元库,开始用计算机将很多单点工具集成在一起使用。
14.EDA设计输入主要包括图形输入、HDL文本输入和状态机输入。
15.时序仿真是在设计输入完成之后,选择具体器件并完成布局、布线之后进行的时序关系仿真,因此又称为功能仿真。
16.VHDL的数据对象包括变量、常量和信号,它们是用来存放各种类型数据的容器。
17.图形文件设计结束后一定要通过仿真,检查设计文件是否正确。
18.以EDA方式设计实现的电路设计文件,最终可以编程下载到FPGA 和CPLD芯片中,完成硬件设计和验证。
19.MAX+PLUS的文本文件类型是(后缀名).VHD 。
20.在PC上利用VHDL进行项目设计,不允许在根目录下进行,必须在根目录为设计建立一个工程目录(即文件夹)。
EDA技术与VHDL_汇总EDA(Electronic Design Automation,电子设计自动化)技术是一类软件和工具的总称,用于帮助设计师在集成电路设计过程中进行系统分析、系统设计、电路设计、物理布局、验证等工作。
EDA技术在现代集成电路设计中起着至关重要的作用。
VHDL(VHSIC Hardware Description Language,可编程硬件描述语言)是一种用于描述数字电路和系统的硬件描述语言。
VHDL通过以人类可读的方式描述电路结构和行为,然后使用EDA工具将VHDL代码转换为实际的电路图和布局。
首先,EDA技术提供了各种工具和环境,可以帮助设计者对电路进行分析和模拟,以验证电路的性能和功能。
设计者可以使用EDA工具对电路进行仿真,以便在实际制造之前发现并消除潜在问题。
在这个过程中,VHDL作为一个硬件描述语言,提供了一种方式来描述和验证电路的行为和功能。
其次,EDA技术还可以帮助设计者将VHDL代码转换为物理布局。
设计者可以使用EDA工具进行逻辑合成、布局布线等操作,根据VHDL代码生成实际的电路图。
这些工具可以通过综合技术将高级抽象描述转换为底层的物理结构,从而提高电路设计的效率和准确性。
此外,EDA技术还可以辅助设计者进行电路的优化。
设计者可以使用EDA工具对电路进行优化,并进行不同级别的折中。
例如,可以通过选择不同的元件、更改电路结构或参数来改善电路性能。
这些优化过程需要设计者对VHDL代码进行分析和修改,以达到更好的性能和功耗表现。
最后,EDA技术还可以帮助设计者进行电路的验证。
使用EDA工具可以对已实现的电路进行验证,确保其符合设计要求。
这些工具可以通过测试用例和仿真来验证电路的正确性,并提供分析报告和调试工具,以便设计者快速定位和修复问题。
VHDL作为硬件描述语言,可以提供详细的功能和行为描述,有助于验证过程的进行。
总而言之,EDA技术与VHDL密切相关,通过提供各种工具和环境,帮助设计者完成集成电路设计的各个阶段。
《VHDL语言程序设计》课程教学大纲课程简介课程简介:本课程为软件工程专业嵌入式专业方向的专业课,是开发基于FPGA/CPLD嵌入式系统的必备基础。
主要内容包括FPGA/CPLD目标器件的结构和工作原理、EDA技术和工作流程、VHDL基础知识、VHDL实用方法和设计深入、原理图输入法、LPM宏功能模块实用方法、状态机设计以及EDA优化设计。
目的是为后续课程的学习和嵌入式系统的设计作必须的基础准备。
课程大纲一、课程的性质与任务:本课程是软件工程专业的专业方向课程。
教学任务主要包括使学生了解EDA技术的工作流程,正确使用开发平台,掌握以VHDL为代表的硬件描述语言的基本知识、编程实用方法和工程设计方法,掌握原理图设计法、状态机设计法,能够正确使用IP Core和LPM等宏功能模块。
本课程是软件工程专业嵌入式专业方向的第一门专业方向课,是后续课程的必备基础,具有较重要的地位。
二、课程的目的与基本要求:本课程涉及到的学科基础知识面广,要求软硬件兼备,需要较好的学科基础。
通过本课程的学习,最终达到能够设计基于FPGA/CPLD的ASIC,并能进行EDA优化的目的。
三、面向专业:软件工程四、先修课程:《计算系统基础》五、本课程与其它课程的联系:本课程的先行课程是计算系统基础。
服务的主要后续课程包括基于FPGA的嵌入式软件开发、基于ARM的嵌入式软件开发等。
六、教学内容安排、要求、学时分配及作业:第一章概述(2学时)1.1 EDA技术及其发展(C)1.2 硬件描述语言硬件描述语言种类、自顶向下设计方法、EDA工程设计流程。
(A)1.3 面向FPGA/CPLD的开发流程设计输入、分析综合、布局布线、仿真、下载和硬件测试。
(A)1.4 IP Core 及EDA技术发展趋势。
(C)第二章 FPGA硬件特性与编程技术(8学时)2.1 PLD发展历程及其分类(c)2.2 低密度PLD工作原理PROM、PLA、PAL、GAL。
武汉职业技术学院《EDA技术》课程结业论文论文题目:按键输入电路设计姓名:付昊所在院系:电子信息工程学院班级:电信12304班学号:12012830指导教师:虞沧武汉职业技术学院二〇一四年六月目录第一章EDA技术简介与VHDL语言第二章设计方法与步骤第三章设计程序及说明第四章程序仿真和验证摘要人类文明已进入到高度发达的信息化社会。
信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。
电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异。
实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(EDElectronic Design Automation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。
为保证电子系统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。
目前,在国内电子技术教学和产业界的技术推广中已形成“EDA 热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。
本设计主要利用VHDL硬件描述语言在EDA平台Quartus II上设计一个4×4阵列键盘扫描电路,将行扫描信号输入阵列键盘,读取列信号的值,输出按键编码,从而判断出按键按下的位置。
并且使用Modelsim软件进行模拟仿真,下载到EDA实验箱进行硬件证。
关键词:EDA VHDL语言 4×4阵列键盘扫描第一章EDA技术简介与VHDL语言1.1 EDA技术简介1.1.1 EDA技术含义EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪60年代中期从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA课程设计报告——基于VHDL语言的秒表设计课程名称:EDA技术院系:地球物理及信息工程学院专业班级:电子信息工程08级2班学生姓名:学号:指导老师:完成时间:2011年5月18日秒表设计一. 设计要求利用EDA实验箱,通过VHDL语言进行编程,设计一个简单的秒表,并用EDA实验箱进行实现,具体设计要求如下:(1)有使能、暂停、继续、秒表计数功能;(2)带有异步复位功能;(3)显示分、秒信息,若需要,显示秒表信息。
二. 设计的作用、目的在本次设计中,可以简单的了解EDA技术的应用以及VHDL语言编写的方法。
通过设计一个秒表,可以掌握用VHDL设计多位加法计数器的方法,尤其是调整时钟使得每过一秒就改变一个数,达到设计的要求。
三. 设计的具体实现1.系统概述本次系统设计主要分三个部分,一是通过VHDL语言设计一个八位的加法计数器,来实现秒表的计时功能;二是通过调整时钟使秒表计数为每秒改变一个数;三是加入一些控制按键,实现使能、暂停、继续等功能。
2.程序具体设计秒表显示共有6位,两位显示分,两位显示秒,十分秒和百分秒各一位。
设计时使用一个计数器,随着时钟上升沿的到来循环计数,每计数一次,百分秒位加一,通过百分秒位满十进位来控制十分位的计数,十分位满十进位,依次类推,实现秒表计数。
为实现秒位的计时精确,百秒位必须以0.01秒的时间间隔计数,即时钟的频率是100Hz。
为此,本设计采用3MHz的时钟频率通过分频得到100Hz的时钟频率,再送给控制时钟以得到比较精确的CLK信号。
具体程序设计见附录。
引脚定义如下:其中,时钟信号CLK为3MHz的时钟频率,分频后得到的时钟为CLK2,输出引脚CLK2和输入引脚CLK2在外部相连,实现将分频后的时钟送入。
3.调试应用MAX+plus II软件编译调试实验控制程序, 仿真运行结果如下:(1)给时钟后,实现开始功能:开始键按下(STA=‘1’)后,秒表计数开始。
(2)给时钟后,实现暂停功能:从上图可以看出暂停键按下后(POS=‘1’),输出(CQ)保持不变,直到暂停键再次按下(POS=‘0’),输出才继续计数,从而实现了暂停的功能。
EDA技术与VHDL实验指导书电气中心实验室编制2011-9前言《EDA技术与VHDL实验指导书》是与理论课程《EDA技术与VHDL》配套开出的,是电子信息工程等专业的一门专业选修课程,对电子信息工程等专业的学生具有非常重要的作用。
本实验课与理论课同时进行,与理论课有着较密切的联系。
因此学生在做本实验之前必须具备1.一定的C语言基础;2.电路与电子技术的基础知识;3.计算机辅助设计的基本操作能力;4.理论联系实践的自学能力。
学生学习完本实验课后,应具有1.能熟练使用Quartus II等EDA开发工具软件;2.掌握CPLD/FPGA芯片的基本使用方法,能用现代数字系统的设计方法进行基本的数字系统设计;3.掌握图形编辑和VHDL文本编辑两种设计方法,重点是VHDL文本编辑;4.具备基本的开发能力,为后续学习打下坚实的基础等方面能力。
从70 年代第一片可编程逻辑器件PROM的诞生到现在的CPLD/FPGA,数字系统的设计发生了本质的变化。
基于CPLD/FPGA和EDA(电子设计自动化)工具进行数字系统的设计与开发。
它代表了数字电信领域的最高水平,给数字电路的设计带来了革命性的变化。
从传统的对电路板的设计到现在的基于芯片的设计,使得数字系统设计的效率大大提高,产品更新速度大大加快,设计周期大大变短。
所以本科生学习本课程有着非常重要的意义。
本实验不同于其它实验,其实验手段和实验方法都有重大的变化,要求实验前提交预习报告,检查通过后方可实验,设计与综合实验环节。
本实验是在PC 平台上,用原理图或文本进行输入,然后进行编译,通过之后再进行波形仿真,如有缺陷,对源文件进行修改。
利用ISP技术、采用EDA工具、应用PLD 器件,在PC及EDA开发平台上进行。
实验一组合逻辑电路设计实验学时:3学时实验类型:验证实验要求:必做一、实验目的1.熟练掌握QuartusII开发工具软件;2.掌握门电路VHDL语言程序设计方法;3.掌握选择器VHDL语言程序设计方法;4.掌握加法器VHDL语言程序设计方法;5.熟悉VHDL编程的基本方法;二、实验原理1.二输入与门二输入与门是我们数字电路中的一个基础逻辑门电路,是最基本的逻辑门电路之一,也是最简单的逻辑门之一。
摘要音乐节拍器作为音乐初学者必备的辅助器材可以帮助演奏者在练习期间能将音符表达的更贴切,避免演奏难度及音乐情绪干扰演奏速度影响表演效果因此,节拍器的精度及质量至关重要。
而传统基于机械时钟的节拍器要制作出高质量的成品成本很高,故制作工艺简单,体积小,功能全面,而且时钟稳定,无需维护的电子音节节拍器应运而生。
随着电子技术的发展, 应用系统向着的应用引起电子产品及系统开发的革命性变革。
和其他的电子技术相比,VHDL 语言作为可编程逻辑器件的标准语言描述能力强, 覆盖面广, 抽象能力强, 在实际应用中越来越广泛。
在这个阶段,人们开始追求贯彻整个系统设计的自动化,可以从繁重的设计工作中彻底解脱出来,把精力集中在创造性的方案与概念构思上,从而可以提高设计效率,缩短产品的研制周期。
作为一种工业标准硬件描述语言。
本文为广大的电子爱好者及音乐学习者提供了一份不同于传统音乐节开启的设计方案,利用向着小型化、快速化、大容量、重量轻的方向发展的EDA 技术阐述了完整全面的设计方法及结果,从概念模型设计到详细的系统设计均图文并茂的展示了设计的思路与方式,并附ALTERA电子公司专用仿真设计环境QYARTUS II的波形仿真图及全部源码(VHDL语言),目录引言............................................................ - 1 -1.系统的设计要求................................................ - 1 -2.系统分析...................................................... - 1 -2.1 系统构成................................................ - 1 -2.2 系统实现过程............................................ - 2 -3.具体模块设计.................................................. - 3 -3.1数控分频电路TimeCLK..................................... - 3 -3.2数码管驱动显电路LED8.................................... - 3 -3.3声光输出电路OutputTem................................... - 3 -4.程序设计...................................................... - 4 -4.1数控分频电路TimeCLK源代码.............................. - 4 -4.2数码管驱动显电路LED8源代码............................. - 4 -4.4 顶层文件设计模块........................................ - 2 -5.运行结果与分析................................................ - 2 -5.1数控分频电路TimeCLK..................................... - 2 -5.2数码管驱动显电路LED8.................................... - 2 -5.3声光输出电路OutputTem................................... - 2 -6.结束语........................................................ - 2 -参考文献........................................................ - 3 -引言随着当前科学技术的发展以及人民的思想愈加开放,使用电子产品不再是一种可以谋生的特殊技术,相反技术走进生活成为新时代的口号和发展动向,越来越多的人致力于设计出更巧妙的电子产品以帮助我们更好的生活、工作、学习。
EDA技术与VHDL第五版教学设计前言EDA技术(Electronic Design Automation)是现代电子工程中不可或缺的技术手段。
EDA技术主要是指借助EDA(Electronic Design Automation)软件工具来进行电子系统及芯片的设计、生产和测试等各个环节中所需的CAD技术。
而VHDL(VHSIC Hardware Description Language)则是用来描述数字系统的硬件特性的一种表示语言。
本文将针对EDA技术和VHDL第五版的教学内容进行简要讨论。
EDA技术EDA技术的应用范围非常广泛,包括模拟电路和数码电路的设计、布局、验证和测试等各个环节。
EDA技术的使用可以大大简化电路设计的过程,提高电路设计的效率和准确性。
目前市面上主流的EDA软件有Altium Designer、Protel、PADS、Eagle、OrCAD等。
EDA技术在电子工程教育中的意义非常重要,对于培养学生的电路设计能力和实践能力有着重要作用。
在课堂教学中,可以通过以下几个方面来进行EDA技术的教学:1.EDA软件的基本操作首先,需要对常用的EDA软件进行介绍。
学生需要了解如何打开、创建和保存项目,如何进行电路设计和模拟,如何进行元器件库的管理等。
其中最重要的是掌握软件的快捷键和常用操作。
2.电路设计流程其次,需要讲解电路设计的流程,包括电路分析、元器件选型、电路设计、仿真和测试等各个环节。
通过实践操作,使学生掌握电路设计的基本流程和步骤。
3.实验实践最后,对于EDA技术的实验实践也是非常重要的一环。
学生可以通过设计一些小的实验电路,并进行仿真和测试,来巩固自己的掌握程度。
比如设计一个简单的加法器,然后通过仿真来验证电路的正确性。
VHDL第五版VHDL是一种常用的数字电路设计语言,它可以用来描述数字电路中各种电路的行为与结构。
VHDL第五版是目前最新版的VHDL标准。
学习VHDL第五版对于培养学生的数字电路实践能力具有非常重要的作用。
《EDA技术与VHDL语言设计》
课程设计
题目:交通灯控制器
姓名: *****
院系:电子信息工程系
专业:电子信息工程
班级:电信112班
学号: ******
指导教师: ******
2013年6 月
交通灯控制器
***
(电子信息工程学系指导教师:**)
摘要:传统的交通灯控制器多数由单片机实现,本文介绍基于EDA技术设计交通灯控制器的
一种方案。
EDA技术的一个重要特征是使用硬件描述语言来完成系统的设计文件,这在电子
设计领域已得到设计者的广泛采用。
给出了交通灯控制器的源程序和仿真结果,仿真结果表明
该设计方案可行。
关键词:交通灯控制器;仿真;设计
1.设计原理
1.1设计要求
设计一个十字路口交通控制器,器示意图如图1.1所示,A方向和B方向歌设红(R)、黄(Y)、
绿(G)、和左拐(L)四盏灯,四种灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的形式显示出来。
A方向红、绿、黄、左拐灯亮的时间分别为65s、40s、5s、和15s,B方向红、绿、黄、左拐灯亮的时
间分别为55s、30s、5s、和15s。
1.2功能要求
两个方向各种灯亮的时间能够进行设置和修改,此外假设A方向是主干路,车流大,因此在
表1.2 交通灯控制器的状态
1.3设计思路和原理
根据交通灯控制器要求实现的功能,考虑用两个并行执行的always模块来分别控制A和B两个方向的四盏灯,这两个always模块使用同一个时钟信号,以进行同步。
也就是说,两个always模块的敏感信号是同一个,每个模块控制一个方向的四种灯按如下顺序点亮,并往复循环:绿灯→黄灯→左拐灯→黄灯→红灯。
每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置法设计,这样只需改变计数器的
模,因此每个方向只要一个计数器进行计时即可。
为便于显示灯亮的时间,计数器的输出均采用BCD 码,显示由四个数码管来完成,A方向和B方向各用两个数码管。
2.Verilog HDL程序设计
根据整体设计要求,编写各个功能部分Verilog HDL程序,设置各输入输出变量说明如下:
LAMPA:控制A方向四盏灯的亮灭,其中,LAMPA0~LAMPA3,分别控制A方向的左拐灯、绿灯、黄灯和红灯;
LAMPB:控制B方向四盏灯的亮灭,其中,LAMPB0~LAMPB3,分别控制B方向的左拐灯、绿灯、黄灯和红灯;
ACOUNT:用于A方向灯的时间显示,8位,可驱动两个数码管;
BCOUNT:用于B方向灯的时间显示,8位,可驱动两个数码管。
程序清单如下:
module traffic(CLK,EN,LAMPA,LAMPB,ACOUNT,BCOUNT);
input CLK,EN; //输入同步时钟和使能信号
output[3:0] LAMPA,LAMPB;
output[7:0] ACOUNT,BCOUNT;
reg tempa,tempb;
reg[2:0] counta,countb;
reg[3:0] LAMPA,LAMPB;
reg[7:0] ared,ayellow,agreen,aleft,bred,byellow,bgreen,bleft;
reg[7:0] numa,numb;
always @(EN)
if(!EN)
begin //设置各种灯的计数器的预置数
ared <=8'd30; ayellow <=8'd5; //设置各种灯的计数器的预置数A方向红
agreen <=8'd45; aleft <=8'd15;
bred <=8'd50; byellow <=8'd5; //设置各种灯的计数器的预置数B方向红
bleft <=8'd10; bgreen <=8'd30;
end
assign ACOUNT=numa;
assign BCOUNT=numb;
always @(posedge CLK) //该进程控制A方向的四种灯
begin
if(EN)
begin
if(!tempa)
begin tempa<=1;
case(counta) //控制亮灯的顺序
0:begin numa<=agreen;LAMPA<=2;counta<=1;end
1:begin numa<=ayellow;LAMPA<=4;counta<=2;end
2:begin numa<=aleft;LAMPA<=1;counta<=3;end
3:begin numa<=ayellow;LAMPA<=4;counta<=4;end
4:begin numa<=ared;LAMPA<=8;counta<=0;end
default: LAMPA<=8;
endcase
end
else begin //倒计时
if(numa>1)
if(numa[3:0]==0)
begin numa[3:0]<=4'b1001;numa[7:4]<=numa[7:4]-1;end
else numa[3:0]<=numa[3:0]-1;
if(numa==2) tempa<=0;
end
end
else begin LAMPA<=4'b1000;counta<=0;tempa<=0;end
end
always @(posedge CLK) //该进程控制B方向的四种灯
begin
if(EN)
begin
if(!tempb)
begin tempb<=1;
case (countb) //控制亮灯的顺序
0:begin numb<=bred;LAMPB<=8;countb<=1;end
1:begin numb<=bgreen;LAMPB<=2;countb<=2;end
2:begin numb<=byellow;LAMPB<=4;countb<=3;end
3:begin numb<=bleft;LAMPB<=1;countb<=4;end
4:begin numb<=byellow;LAMPB<=4;countb<=0;end
default LAMPB<=8;
endcase
end
else begin //倒计时
if(numb>1)
if(!numb[3:0])
begin numb[3:0]<=9;numb[7:4]<=numb[7:4]-1;end
else numb[3:0]<=numb[3:0]-1;
if(numb==2) tempb<=0;
end
end
else begin LAMPB<=4'b1000;tempb<=0;countb<=0;end
end
Endmodule
3.仿真
在maxplus2软件下创建工程,新建编辑设计文件,将程序输入,整体编译后,新建波形仿真文件。
设置仿真时间,时钟周期,输入输出端口,进行波形仿真。
具体仿真波形图及说明如下所示:
图1 交通灯控制器仿真波形
4.结束语:
在设计中采用V erilog HDL语言设计交通灯控制系统, 借助其功能强大的语言结构, 简明的代码描述复杂控制逻辑设计, 在提高工作效率的同时达到求解目的, 并可以通过V erilog HDL 语言的综合工
具进行相应硬件电路生成, 具有传统逻辑设计方法所无法比拟的优越性。
使用MAX+PLUS2编写代码并进行时序仿真,发现有问题的地方及时改掉,经过反复的操作终于达到目的。
时序仿真时经常遇到错误,不是没有波形就是没有延迟,或者是波形不能完整出现。
但经过反复修改程序,考虑各个可能出现的问题并解决,尽量与实际实用性接轨,最终基本完成设计要求。
实践证明,在编写一个较复杂的程序时,一开始一定要画流程图,弄清楚各个功能及实现它们的逻辑算法,做到心中有数后在开始下笔写编写程序。
在编写的时候要尤其要注意语言的规范,首先程序要逻辑清晰,简洁明了,避免不必要的嵌套与条用,其次要适当地给程序加上注解文字,提高可读性,以方便之后的程序出错时进行查找,最后充分利用仿真软件提供的各项编译工具与报错消息,按图索骥,有方向的完成程序调试。
通过这次课程设计,熟悉了简单EDA设计的整个流程,加深了对Verilog HDL硬件描述语言的理解,提高了动手能力,并且锻炼了自己的耐心,收获颇丰,我会把在本次课程设计中学到的东西应用到今后的工作学习中。
参考资料
[1] 俞定玖, 刘湘慧. GSM 数字蜂窝移动交换系统测试[J ]. 电信科学, 2000
[2] 张明. V erilog HDL 实用教程[M ]. 成都: 电子科技大学出版社, 1999
[3] 康华光. 电子技术基础(数字部分) [M ]. 北京: 高等教育出版社, 1988
[4]EDA技术与Verilog设计王金明、冷自强编著科学出版社。