基于EDA技术的电子时钟系统设计ElectronicclocksystemdesignbasedonEDAtechnology(刘石磊0701170124)摘要:介绍EDA技术的特点以及设计流程,强调EDA仿真技术在现代电子系统的重要地位及作用。以MAX+PLUSII为平台,采用自顶向下分层次、模块化的设计方法,设计了一个可以设置初始时间和清零的电子时钟控制电路,从中可体现出数字系统的硬件设计向软件化方向发展的新思路。关键词:EDA技术;设计;AHDL语言Abstract:ThisarticleintroducesthecharacteristicsoftheEDAtechnique,itsdesignflow,andemphasizestheimportantstatusandactionsofEDAsimulationtechnologyinthemodernElectronicSystem.Inthisarticle,Iadoptthetop-downhierarchical,modulardesignmethodstodevelopasetthetimeandresetthetimebytakingMAX+PLUSIIdevelopmentsystem,throughwhichembodiesanewthoughtofdevelopmentfromdigitalsystemShardwaredesigntosoftwaredesign.Keywords:EDAtechnique;design;AHDLlanguage引言随着电子设计自动化(EDA)的发展,电子系统的设计技术和设计工具发生了深刻的变化。利用硬件描述语言对数字系统的硬件电路进行描述是EDA的关键技术之一。AHDL语言是目前主流的硬件描述语言之一,它具有很强的电路描述和建模能力,且有与具体硬件电路无关和与设计平台无关的特性,在语言易读性和层次化结构设计方面表现出强大的生命力和应用潜力。1EDA技术EDA(电子线路设计座自动化)是以计算机为工作平台、以硬件描述语言(AHDL)为设计语言、以可编程器件(CPLD/FPGA)为实验载体、以ASIC/SOC芯片为目标器件、进行必要的元件建模和系统仿真的电子产品自动化设计过程。EDA源于计算机辅助设计,计算机辅助制造、计算机辅助测试和计算机辅助工程。利用EDA工具,电子设计师从概念、算法、协议开始设计电子系统,从电路设计,性能分析直到PCB版图生成的全过程均可在计算机上自动完成。EDA代表了当今电子设计技术的最新发展方向,其基本特征是设计人员以计算机为工具,按照自顶向下的设计方法,对整个系统进行方案设计和功能划分,由硬件描述语言完成系统行为级设计,利用先进的开发工具自动完成逻辑编译、化简、分割、综合、优化、布局布线、仿真及特定目标芯片的适配编译和编程下载,这被称为数字逻辑电路的高层次设计方法。2EDA技术的主要特征作为现代电子系统设计的主导技术,EDA具有几个明显特征:1.用软件设计的方法来设计硬件硬件系统的转换是由有关的开发软件自动完成的,设计输入可以是原理图或AHDL语言,通过软件设计方式的测试,实现对特定功能硬件电路的设计,而硬件设计的修改工作也如同修改软件程序一样快捷方便,设计的整个过程几乎不涉及任何硬件,可操作性、产品互换性强。2.基于芯片的设计方法EDA设计方法又称为基于芯片的设计方法,集成化程度更高,可实现片上系统集成,进行更加复杂的电路芯片化设计和专用集成电路设计,使产品体积小、功耗低、可靠性高;可在系统编程或现场编程,使器件编程、重构、修改简单便利,可实现在线升级;可进行各种仿真,开发周期短,设计成本低,设计灵活性高。3.自动化程度高EDA技术根据设计输入文件,将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成,自动生成目标系统,使设计人员不必学习许多深入的专业知识,也可免除许多推导运算即可获得优化的设计成果,设计自动化程度高,减轻了设计人员的工作量,开发效率高。4.自动进行产品直面设计EDA技术根据设计输入文件(HDL或电路原理图),自动地进行逻辑编译、化简、综合、仿真、优化、布局、布线、适配以及下载编程以生成目标系统,即将电子产品从电路功能仿真、性能分析、优化设计到结果测试的全过程在计算机上自动处理完成。3EDA技术的设计流程EDA技术是将传统的“电路设计——硬件搭试———调试焊接”模式变为“功能设计———软件模拟———编程下载”方式,设计人员只需一台微机和相应的开发工具即可研制出各种功能电路。EDA技术将电子产品设计从软件编译、逻辑化简、逻辑综合、仿真优化、布局布线、逻辑适配、逻辑影射、编程下载、生成目标系统的全过程在计算机及其开发平台上自动处理完成。具体流程如下所示:设计目标◆输入◆逻辑编译◆综合◆器件适配◆功能仿真◆编程下载◆目标系统4电子系统设计与仿真下面以Alter公司的可编程器件的开发工具MAX+PLUSII为平台,采用层次化设计方法,设计一个带设置初始时间和清零的时钟控制电路,走时显示原理图见图1,校时清零原理图见图2。图1.走时显示原理图实验板上晶振发出的信号1MHz105分频10分频秒个位计数器秒十位计数器分个位计数器分十位计数器时个位计数器进位时钟进位进位进位进位五进制计数器3线8线译码时钟进位地址时钟进位秒个位译码显示秒十位译码显示分十位译码显示分个位译码显示时个位译码显示循环选通图2.校时清零原理图4.1各功能模块的设计(1)分频电路的设计74162是模十的计数器,可对信号进行十分频,信号从74162的时钟端输入,从74162的进位端输出的信号就是输入信号的经十分频后的信号,因此N个74162按上述方式级联即实现了对输入信号的10N的分频。由此制成一千分频和一百分频电路。因此1MHz的信号经过1000000分频得到1Hz的信号,1MHz的实验板上晶振发出的信号1MHz106分频秒个位计数器秒十位计数器分个位计数器分十位计数器时个位计数器进位时钟进位进位进位进位分校时电路选通时校时电路选通清零电路同步电路清零电路各位计数器时钟时钟时钟清零时钟信号经过100000分频得到1Hz的信号,1MHz的信号经过1000分频得到100Hz的信号,因此分频电路图3所示。图3分频电路原理图分频电路完成电路对高频信号的分频,应作为一个功能化模块进行封装,它实现了将1MHz的信号,转换为1Hz和100Hz的信号的功能,封装图如图4所示。图4分频电路封装图(2)秒位计时电路的设计实验板上的晶振发出1MHz的信号,此信号经1000000分频得到1Hz的信号,这个信号可以触发秒的个位计数,秒的个位可用一个74162计数器来计时。秒个位计数器的进位输出信号可以触发秒十位计数,秒的十位应该是一个六进制计数器,用AHDL语言直接编写制成模六的计数器。其程序如下:SUBDESIGNll_6jishuqi(load,d[3..0],ent,enp,clrn,clk:INPUT;q[3..0],co:OUTPUT;)VARIABLEcou[3..0]:dff;BEGINcou[].clk=clk;IFclrn==0THENcou[]=0;ELSIFload==0THENcou[]=d[];ELSIFent&enpTHENifcou[]==5thencou[]=0;elsecou[]=cou[]+1;endif;ELSEcou[]=cou[];ENDIF;q[]=cou[];co=q3&q0&ent;END;封装后如图5所示。图5六进制计数器原理图(3)分位计时电路的设计分个位的计数器由74162组成,它由秒十位的进位信号触发计数,而分十位也是由六进制计数器构成的,原理同上述秒十位计数器,它由秒个位计数器的进位信号触发计数,秒十位计数器本身的进位信号触发时个位计数器计数,原理图和级联方式与上述秒位计时电路类似,这里不再赘述。(4)时位计时电路的设计时个位的计数器由74162组成,它由分十位的进位信号触发计数,原理图和级联方式与上述秒位计时电路类似,这里不再赘述。(5)计时电路的整体设计计时电路由秒计时,分计时和实际是电路按上述方法级联起来,实现电子钟的走时计数功能,计数器所计的数值经过译码显示电路,驱动LED数码管显示正常的数字,它的输入信号为1Hz的信号,输出为各位上数值的BCD码。清零电路也集成在这里,电路图如图6所示。(6)LED动态扫描显示电路设计①显示驱动电路设计图7显示译码电路原理图6计时电路原理图及其封装图如上图所示,可将BCD码转换为数字显示码,有四个输入引脚,此七个输出引脚分别对应到七段译码器的a,b,c,d,e,f,g这七段LED,实验班用的LED是共阴极的,因此七段译码器的真值表如下图所示,使用AHDL语言进行设计,用真值表语句设计七段显示译码驱动电路,编译,查错,链接,用波形仿真,分别输入0—9的BCD码,观察对应的输出是否驱动相应的码段发光,逐个分析没位数字是否正确,若全部正确,则创建七段显示译码驱动电路的符号文件:产生lulu_7seg_encode文件,以便在设计总体电路时,直接插入七段译码电路。将上述每一位计数器输出的四位BCD码接到七段译码器的输入端,七段译码器的输出即可驱动七段数码显示管正常工作。七段译码程序如下所示:SUBDESIGNlulu_7seg_encode(D[3..0]:INPUT;S[6..0]:OUTPUT;)BEGINTABLED[3..0]=S0,S1,S2,S3,S4,S5,S6;H0=1,1,1,1,1,1,0;H1=0,1,1,0,0,0,0;H2=1,1,0,1,1,0,1;H3=1,1,1,1,0,0,1;H4=0,1,1,0,0,1,1;H5=1,0,1,1,0,1,1;H6=1,0,1,1,1,1,1;H7=1,1,1,0,0,0,0;H8=1,1,1,1,1,1,1;H9=1,1,1,1,0,1,1;ENDTABLE;END;封装后如图8所示。图8显示译码电路封装图②动态循环选通电路设计模五的计数器由高频时钟信号驱动计数,高速循环输出“0”“1”“2”“3”“4”这五个地址信号,这计数器的输出信号作为自行设计的三线八线译码器的地址信号输入,每一个地址信号选通一个输出端口,使它输出一个高电平的脉冲,用这个高电平脉冲和与门,可同时选通相应位的LED和同一位的七段译码器的输出信号,在同一时刻,其他位的LED以及七段译码器的输出是处于屏蔽状态的,所以在某一时刻,其实只有一个LED数码管在发光,由于由于LED闪烁的频率远高人眼能分辨的频率,所以人眼看上去是所有位的LED同时在显示。模五计数器可用AHDL语言编写得到,由于与模六相同,这里不再赘述。模五的计数器的时钟端接1MHz的信号,充分提高各位LED数码管显示的闪烁频率,实验证明也可以提高每位LED灯的亮度,使能端ENT可在芯片扩展时使用,方便在以后编别的程序时使用。将模5计数器的各位预置初值输入端都接地,置数端以后可以作为本芯片清零的输入端,在本芯这样连接,若用一个输入端接到清零端了,会出错。三线八线译码器,将A2A1A0看做一个三位二进制数,它可表示某一位十进制数,这一位端口就输出高电平。通过下面原理图的非门以及四输入与门即可实现上述功能,完成了二进制地址译码选通的功能。图9三线八线译码器原理图利用上述三线八线译码器的“Y0”到“Y4”输出端,和与门、或门可实现在某一时刻只有一个数码LED在发光,而其他四个LED都处于关断状态,模五计数器高速循环输出“0”“1”“2”“3”“4”,因此“Y0”到“Y4”高速循环输出高电平脉冲,在三线八线译码器一位输出高电平脉冲时,其余四个都是低电平输出,这就实现了五个数码管动态循环扫描输出的功能。将上述两个电路级联,就得到了动态扫描电路,动态扫描电路高速循环导通每位数码LED,同时选通驱动该为LED显示数码的七段译码器的输出信号,动态扫描电路原理图如图10所示。图10动态扫描原理图及其封装图