EDA课程设计.docx
- 文档编号:28503936
- 上传时间:2023-07-16
- 格式:DOCX
- 页数:18
- 大小:242.34KB
EDA课程设计.docx
《EDA课程设计.docx》由会员分享,可在线阅读,更多相关《EDA课程设计.docx(18页珍藏版)》请在冰豆网上搜索。
EDA课程设计
第一章绪论3
1.1EDA技术的概念3
1.2EDA技术的特征4
1.3硬件描述语言4
1.4EDA技术发展趋势5
1.6数字系统设计基础6
1.6.1数字系统设计模型6
1.6.2数字系统的设计方法7
1.6.3数字系统的设计步骤8
第二章:
交通灯控制系统简介10
2.1交通灯控制系统介绍10
2.2交通灯控制系统设计10
2.4交通灯控制器状态控制表11
2.5设计流程图11
第三章交通灯控制系统的设计12
3.1交通灯控制器功能描述及设计方法12
3.2.1程序控制部分的设计13
3.2.2程序显示部分的设计14
3.2.3分频器部分的设计15
3.3芯片管脚设定16
3.4硬件实现及调试结果16
3.4.1硬件测试结构示意16
3.4.2软件仿真结果17
第四章总结19
第一章绪论
1.1EDA技术的概念
EDA是电子设计自动化(E1echonics Des5p AM·toM60n)的缩写。
由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义。
但从EDA技术的几个主要方面的内容来看,可以理解为:
EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。
可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。
完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片。
EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。
大致可以分为三个发展阶段。
20世纪70年代的CAD(计算机辅助设计)阶段:
这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。
20世纪80年代的QtE(计算机辅助工程设计)阶段:
这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计而能在产品制作之前预知产品的功能与性能。
20吐纪如年代是EDA(电子设计自动化)阶段:
这一阶段的主要特征是以高级描述语言,系统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成。
EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。
该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。
在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图:
在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。
特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与制造。
有专家认为,21世纪将是四A技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。
1.2EDA技术的特征
EDA代表了当今电子设计技术的最新发展方向,利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在汁算机上自动处理完成。
设计者采用的设计方法是一种高层次的”自顶向下”的全新设计方法,这种设汁方法首先从系统设计人手,在顶层进行功能方框图的划分和结构设计。
在方框图一级进行仿真、纠错.并用硬件描述语言对高层次的系统行为进行描述,在系统一级进行驶证。
然后,用综合优化工具生成具体门电路的网络表,其对应的物理实现级可以是印刷电路板或专用集成电路(ASIC)。
设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件来完成对系统硬件功能的实现。
由于设计的主要仿真和调试过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又减少了逻辑功能仿真的工作量,提高了设计的一次性成功率。
由于现代电子产品的复杂度和集成度的日益提高,一般分离的中小规模集成电路组合已不能满足要求,电路设计逐步地从中小规模芯片转为大规模、超大规模芯片,具有高速度、高集成度、低功耗的可编程朋IC器件已蓬勃发展起来。
1.3硬件描述语言
硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。
硬件描述语言可以在三个层次上进行电路描述,其层次由高到低分为行为级、R,几级和门电路级。
常用硬件描述语言有WDL、Velllq和AHDL语言。
WDL语言是一种高级描述语言,适用于行为级和R,几级的描述;Vedlq语言和ABEL语言属于一种较低级的描述语言,适用于R,几级和门电路级的描述。
现在WDL和Velllq作为工业标准硬件描述语言,已得到众多EDA公司的支持,在电子工程领域,它们已成为事实上的通用硬件描述语言,承担几乎全部的数字系统的设计任务。
应用Vf进行电子系统设计有以下优点:
(1)与其他硬件描述语言相比,WDL具有更强的行为描述能力,强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
(2)VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期就能检查设计系统的功能可行性,并可以随时对系统进行仿真。
(3)Vf语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和对已有设计的再利用功能。
(4)用Vf完成的设计,可以利用EDA工具进行逻辑综合和优化,并可根据不同的目标芯片自动把Vf描述设计转变成门级网表,这种设计方式极大地减少了电路设计的时间及可能发生的错误,从而降低了开发成本。
(5)Vf0L对设计的描述具有相对独立性,可以在设计者不僵硬件结构的情况下,也不必管最终设计的目标器件是什么,而进行独立的设计。
(6)由于VI具有类属描述语句和子程序调用等功能,所以对于已完成的设计,可以在不改变源程序的情况厂,只需改变类属参量或函数,就能很容易地改变及计的规模和结构。
1.4EDA技术发展趋势
EDA技术在进入21世纪后,由于更大规模的FPGA和凹m器件的不断推出,在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断更新、增加,使电子EDA技术得到了更大的发展。
电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:
使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SoC高效低成本设计技术的成熟。
随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。
可以说电子EDA技术是电子设计领域的一场革命。
传统的“固定功能集成块十连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。
作为高等院校有关专业的学生和广大的电子工程师了解和攀握这一先进技术是势在必行,这不仅是提高设计效率的需要,更是时代发展的需求,只有攀握了EDA技术才有能力参与世界电子工业市场的竞争,才能生存与发展。
随着科技的进步,电子产品的更新日新月异,EDA技术作为电子产品开发研制的源动力,已成为现代电子设计的核心。
所以发展EDA技术将是电子设计领域和电子产业界的一场重大的技术革命,同时也对电类课程的教学和科研提出了更深更高的要求。
特别是EDA技术在我国尚未普及,掌握和普及这一全新的技术,将对我国电子技术的发展具有深远的意义。
1.5EDA技术的应用
电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。
在教学方面:
几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。
主要是让学生了解EDA的基本原理和基本概念、鳞握用佃L描述系统逻辑的方法、使用扔A工具进行电子电路课程的模拟仿真实验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。
具有代表性的是全国每两年举办一次大学生电子设计竞赛活动。
在科研方面:
主要利用电路仿真工具(EwB或PSPICE、VLOL等)进行电路设计与仿真;利用虚拟仪器进行产品调试;将O)LI)/FPGA器件的开发应用到仪器设备中。
例如在CDMA无线通信系统中,所有移动手机和无线基站都工作在相同的频谱,为区别不同的呼叫,每个手机有一个唯一的码序列,CDMA基站必须能判别这些不同观点的码序列才能分辨出不同的传呼进程;这一判别是通过匹配滤波器的输出显示在输人数据流中探调到特定的码序列;FPGA能提供良好的滤波器设计,而且能完成DSP高级数据处理功能,因而FPGA在现代通信领域方面获得广泛应用。
在产品设计与制造方面:
从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在P哪的制作、电子设备的研制与生产、电路板的焊接、朋比的制作过程等有重要作用。
可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持。
1.6数字系统设计基础
1.6.1数字系统设计模型
数字系统指的是交互式的、以离散形式表示的,具有存储、传输、信息处理能力的逻辑子系统的集合。
用于描述数字系统的模型有多种,各种模型描述数字系统的侧重点不同。
图1.6.1介绍了一种普遍采用的模型。
这种模型根据数字系
统的定义,将整个系统划分为两个模块或两个子系统:
数据处理子系统和控制子系统。
图6.1.1数字系统的设计模型
数据处理子系统主要由存储器、运算器、数据选择器等功能电路组成,主要完成数据的采集、存储、运算和传输。
据处理子系统与外界进行数据交换,在控制子系统(或称控制器)发出的控制信号作用下,数据处理子系统将进行数据的存储和运算等操作。
控制子系统是执行数字系统算法的核心,具有记忆功能,因此控制子系统是时序系统。
控制子系统由组合逻辑电路和触发器组成,与数据处理子系统共用时钟。
采用该模型的优点:
把数字系统划分为控制子系统和数据处理子系统两个主要部分,使设计者面对的电路规模减小,二者可以分别设计;由于数字系统中控制子系统的逻辑关系比较复杂,将其独立划分出来后,可突出设计重点和分散设计难点;当数字系统划分为控制子系统和数据处理子系统后,逻辑分工清楚,各自的任务。
1.6.2数字系统的设计方法
传统方法:
自下而上(Bottom-Up)的设计方法
缺点:
1、设计过程依赖现有的通用元器件、手工
及经验;
2、设计后期的仿真和调试
3、自下而上思想的局限性
4、设计周期长、灵活性差、效率低
自顶向下的设计方法
将数字系统的整体逐步分解为各个子系统和模块,若子系统规模较大,则还需将子系统进一步分解为更小的子系统和模快,层层分解,直至整个系统中各个子系统关系合理,并便于逻辑电路级的设计和实现为止。
自上而下设计中可逐层描述,逐层仿真,保证满足系统指标。
优点:
自顶向下设计方法是一种模块化设计方法。
对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯;适合多个设计者同时进行设计。
随着技术的不断进步,许多设计由一个设计者已无法完成,由多个设计者分工协作完成一项设计的情况越来越多;针对具体的设计,实施自顶向下的设计方法的形式会有所不同,但均需遵循以下两条原则:
逐层分解功能和分层次进行设计。
同时,应在各个设计层次上,考虑相应的仿真验证问题。
1.6.3数字系统的设计步骤
一、系统任务分析
数字系统设计中的第一步是明确系统的任务。
在设计任务书中,可用各种方式提出对整个数字系统的逻辑要求,常用的方式有自然语言、逻辑流程图、时序图或几种方法的结合。
当系统较大或逻辑关系较复杂时,系统任务(逻辑要求)逻辑的表述和理解都不是一件容易的工作。
所以,分析系统的任务必须细致、全面,不能有理解上的偏差和疏漏。
二、确定逻辑算法
实现系统逻辑运算的方法称为逻辑算法,也简称为算法。
一个数字系统的逻辑运算往往有多种算法,设计者的任务不但是要找出各种算法,还必须比较优劣,取长补短,从中确定最合理的一种。
数字系统的算法是逻辑设计的基础,算法不同,则系统的结构也不同,算法的合理与否直接影响系统结构的合理性。
确定算法是数字系统设计中最具创造性的一环,也是最难的一步。
三、建立系统及子系统模型
当算法明确后,应根据算法构造系统的硬件框架(也称为系统框图),将系统划分为若干个部分,各部分分别承担算法中不同的逻辑操作功能。
如果某一部分的规模仍嫌大,则需进一步划分。
划分后的各个部分应逻辑功能清楚,规模大小合适,便于进行电路级的设计。
四、系统(或模块)逻辑描述
当系统中各个子系统(指最低层子系统)和模块的逻辑功能和结构确定后,则需采用比较规范的形式来描述系统的逻辑功能。
设计方案的描述方法可以有多种,常用的有方框图、流程图和描述语言等。
对系统的逻辑描述可先采用较粗略的逻辑流程图,再将逻辑流程图逐步细化为详细逻辑流程图,最后将详细逻辑流程图表示成与硬件有对应关系的形式,为下一步的电路级设计提供依据。
五、逻辑电路级设计及系统仿真
电路级设计是指选择合理的器件和连接关系以实现系统逻辑要求。
电路级设计的结果常采用两种方式来表达:
电路图方式和硬件描述语言方式。
EDA软件允许以这两种方式输入,以便作后续的处理。
六、系统的物理实现
物理实现是指用实际的器件实现数字系统的设计,用仪表测量设计的电路是否符合设计要求。
现在的数字系统往往采用大规模和超大规模集成电路,由于器件集成度高、导线密集,故一般在电路设计完成后即设计印刷电路板,在印刷电路板上组装电路进行测试。
需要注意的是,印刷电路板本身的物理特性也会影响电路的逻辑关系。
第二章:
交通灯控制系统简介
2.1交通灯控制系统介绍
交通灯控制系统主要是城市十字交叉路口红绿灯的控制。
在现在大城市中,十字交通路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红黄绿等的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红黄绿灯的转换进行管理,本系统就是基于这个目的而开发的。
2.2交通灯控制系统设计
城市路口交通信号控制系统大体分为三种类型:
定周期的信号机、多时段且具有无线电缆协调功能的微电脑型信号机以及联网式自适应多相位智能型信号机。
具体采用哪种类型,应根据应用场合及特点加以确定。
其中第一种类型以其成本低,设计简单,安装及维护方便等特点得到广泛应用。
2.3交通灯控制系统的基本组成模块
交通灯控制器原理框图如2..3所示,,主要包括置数器模块、定时计数器模块、主控制器模块和译码器模块。
置数器模块将交通灯的点亮时间预置到置数电路中。
计数器模块以秒为单位倒计时,当计数值减为零时,主控电路改变输出状态,电路进入下一个状态的倒计时。
核心部分是主控制模块。
图2.3
2.4交通灯控制器状态控制表
2.5设计流程图
第三章交通灯控制系统的设计
3.1交通灯控制器功能描述及设计方法
通过两组交通灯来模拟控制东西、南北两条通道上的车辆通行,所有功能在试验操作平台上进行模拟通过,根据原理其主要功能如下:
3.2设计要求
1.能显示十字路口东西、南北两个方向的红、黄、绿灯的指示状态,用两组红、黄、绿三色灯作为两个方向的红、黄、绿灯;
2.南北向为主干道,每次通行时间为30S,东西向为支干道,每次通行时间为20S;
3.能实现正常的倒计时功能,用两组数码管作为东西、南北向的倒计时显示。
其中,黄灯:
5S。
4.能实现特殊状态的功能。
按下SP键后,能实现以下特殊功能:
(1)显示倒计时的两组数码管闪烁;
(2)计数器停止计数并保持在原来的状态;
(3)东西、南北路口均显示红灯状态;
(4)特殊状态解除后能继续计数;
5.能实现全清零功能。
按下reset键后,系统实现全清零,计数器由初状态计数,对应状态的指示灯亮;
6.用VHDL语言设计上述功能的交通灯控制器,并用层次化方法设计该电路;
7.仿真、验证设计的正确性。
3.2.1程序控制部分的设计
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityledcontrolis
port(reset,clk,urgen:
instd_logic;
state:
outstd_logic_vector(1downto0);
sub,set1,set2:
outstd_logic);
endledcontrol;
architectureaofledcontrolis
signalcount:
std_logic_vector(6downto0);
signalsubtemp:
std_logic;
begin
sub<=subtempand(notclk);
statelabel:
process(reset,clk)
begin
ifreset='1'then
count<="0000000";
state<="00";
elsifclk'eventandclk='1'then
ifurgen='0'thencount<=count+1;subtemp<='1';elsesubtemp<='0';
endif;
ifcount=0thenstate<="00";set1<='1';set2<='1';
elsifcount=25thenstate<="01";set1<='1';
elsifcount=30thenstate<="10";set1<='1';set2<='1';
elsifcount=45thenstate<="11";set2<='1';
elsifcount=50thencount<="0000000";elseset1<='0';set2<='0';
endif;
endif;
endprocessstatelabel;
enda;
3.2.2程序显示部分的设计
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entityledshowis
port(clk,urgen:
instd_logic;
state:
instd_logic_vector(1downto0);
sub,set1,set2:
instd_logic;
r1,g1,y1,r2,g2,y2:
outstd_logic;
led1,led2:
outstd_logic_vector(7downto0));
endledshow;
architectureaofledshowis
signalcount1,count2:
std_logic_vector(7downto0);
signalsetstate1,setstate2:
std_logic_vector(7downto0);
signaltg1,tg2,tr1,tr2,ty1,ty2:
std_logic;
begin
led1<="11111111"whenurgen='1'andclk='0'elsecount1;
led2<="11111111"whenurgen='1'andclk='0'elsecount2;
tg1<='1'whenstate="00"andurgen='0'else'0';
ty1<='1'whenstate="01"andurgen='0'else'0';
tr1<='1'whenstate
(1)='1'orurgen='1'else'0';
tg2<='1'whenstate="10"andurgen='0'else'0';
ty2<='1'whenstate="11"andurgen='0'else'0';
tr2<='1'whenstate
(1)='0'orurgen='1'else'0';
setstate1<="00100101"whenstate="00"else
"00000101"whenstate="01"else
"00100000";
setstate2<="00010101"whenstate="10"else
"00000101"whenstate="11"else
"00110000";
label2:
process(sub)
begin
ifsub'eventandsub='1'then
ifset2='1'thencount2<=setstate2;
elsifcount2(3downto0)="0000"thencount2<=count2-7;
elsecount2<=count2-1;endif;
g2<=tg2;r2<=tr2;y2<=ty2;
endif;
endprocesslabel2;
label1:
process(sub)
begin
ifsub'eventandsub='1'then
ifset1='1'then
count1<=setstate1;
elsifcount1(3downto0)="0000"thencount1<=count1-7;
elsecount1<=count1-1;endif;
g1<=tg1;r1<=tr1;y1<=ty1;
endif;
endprocesslabel1;
enda;
3.2.3分频器部分的设计
分频电路模块的功能是将CLK-IN端口输入的时钟信号分频后送给CLK-OUT端口;当RESET端口输入信号有效(高电平)时,CLK-OUT端口输出信号清零。
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityfenis
port(clkin:
instd_logic;
clkout:
outstd_logic);
endfen;
architectureaoffenis
signaloutq:
std_logic:
='0';
signalcountq:
std_logic_vector(9downto0):
="0000000000";
begin
process(clkin)
begin
ifclkin'eventandclkin='1'then
ifcountq/=499then
countq<=countq+1;
else
outq<=notoutq;
countq<=(others=>'0');
endif;
endif;
endp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计