您的当前位置:首页正文

EDA

2023-07-28 来源:易榕旅网


计数器的设计及EDA

的展望

摘要:EDA是电子设计自动化(Electronic Design Automation)的缩写,

在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。目前EDA主要辅助进行三个方面的设计工作:IC设计、电子电路设计和PCB设计。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。随着微电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化等各个领域工作中,EDA技术的含量以惊人的速度迅速上升,从而使它发展在当今电子技术的前沿。由于在电子系统设计领域中的明显优势,基于大规模可编程器件解决方案的EDA技术及其应用在近年中有了巨大的发展,将电子设计技术再次推向又一崭新的历史阶段。以下论述介绍EDA技术工具的使用及其设计的优势等。本文介绍了EDA的发展及基本特点,通过在数字电子技术中的应用,介绍了VHDL语言设计数字电路的方法以及VHDL语言在数字电路设计中的优点,总结出了EDA技术的优势与发展趋势。

关键词:EDA技术 VHDL

1

一、计数器的介绍:

1、计数器的原理:计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。它主要的指标在于计数器的位数,常见的有3位和4位的。很显然,3位数的计数器最大可以显示到999,4位数的最大可以显示到9999。

2、计数器的作用:

在数字电路技术中应用的最多的时序逻辑电路。计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。但是并无法显示计算结果,一般都是要通过外接LCD或LED屏才能显示。

3、种类: (1)、如果按照计数器中的触发器是否同时翻转分类,可将计数器分为同步计数器和异步计数器两种。

(2)、如果按照计数过程中数字增减分类,又可将计数器分为加法计数器、减法计数器和可逆计数器,随时钟信号不断增加的为加法计数器,不断减少的为减法计数器,可增可减的叫做可逆计数器。

另外还有很多种分类不一一列举,但是最常用的是第一种分类,因为这种分类可以使人一目了然,知道这个计数器到底是什么触发方式,以便于设计者进行电路的设计。

4、计数器的应用:

计数器应用包括通话、短信、数据等类别的记录,并支持用户自主选择清零日期,以及按照类别添加提醒数值,如用户可以选择每月任一一天,或者第一天、最后一天作为记录循环清零日,同时添加通话时长、短信条数、数据流量数量的提醒节点。

计数器有用于工业上的特点有:1、有6位LED数码显示;2、同时有分A和B两路计数输入;3、计数频率可达20KHz;4、还具有带LED报警灯指示;5、同时支持RS485、RS232串行接口,输出、电源、通讯相互之间采用光电隔离互不干扰。

2

二、设计目的

1、 深刻理解VHDL语言元件例化的方法。

硬件描述语言(VHDL)是一种用于进行电子系统硬件设计的计算机高级语言。它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。硬件描述语言是EDA技术的重要组成部分,是EDA设计开发中很重要的软件工具。VHDL即超高速集成电路硬件描述语言,是作为电子设计主流硬件的描述语言。它具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计可靠性,用VHDL进行电子系统设计的一个很大的优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能与工艺有关的因素花费过多的时间和精力 2、掌握计数器的设计原理以及设计方法。

3、 结合以前学过的数码管扫描知识完成计数器显示三位数字。

三、设计原理:

1、计数器的原理:计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数字仪器中对脉冲的计数等等。计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。它主要的指标在于计数器的位数,常见的有3位和4位的。很显然,3位数的计数器最大可以显示到999,4位数的最大可以显示到9999。

3、计数器的作用:

在数字电路技术中应用的最多的时序逻辑电路。计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。但是并无法显示计算结果,一般都是要通过外接LCD或LED屏才能显示。

四、设计内容:

计数器是可以统计时钟脉冲次数的时序器件,为了使计数器可以显示数字的三位,采用级联的形式来设计计数器,如十进制的计数器与六进制的计数器级联即构成了六十进制计数器。使用3个带Carry-in和Carry-out模10的计数器的计数输出分别作为计数器个位、十位、百位的输出,设计模108计数器。本次实验要求设计一个模为 3 位的计数器(例:模108)。各个零部件可以用LPM来定制,而顶层则要使用VHDL语言以元件例化的方法来实现。

1、VHDL语言的部分代码: library ieee;

use ieee.std_logic_1164.all;

3

use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity exp_cnt108 is

port(clk0,clk,clrn,En:in std_logic; b,s,g:out std_logic_vector(3 downto 0); c:out std_logic; cc:out std_logic;

sb,ss,sg:out std_logic;

ga,gb,gc,gd,ge,gf,gg:out std_logic); end exp_cnt108;

architecture rtl of exp_cnt108 is component count4

port(clk:in std_logic;

q:out std_logic_vector(1 downto 0)); end component;

component decoder2_3

port(data:in std_logic_vector(1 downto 0); eq0,eq1,eq2:out std_logic); end component; component mux4_3_1

port( data0x : IN STD_LOGIC_VECTOR (3 DOWNTO 0); data1x : IN STD_LOGIC_VECTOR (3 DOWNTO 0); data2x : IN STD_LOGIC_VECTOR (3 DOWNTO 0); sel : IN STD_LOGIC_VECTOR (1 DOWNTO 0); result : OUT STD_LOGIC_VECTOR (3 DOWNTO 0)); end component; component my7449

port(cout:in std_logic_vector(3 downto 0); a,b,c,d,e,f,g:out std_logic); end component;

component exp_cnt10

port(Clk,clrn,En,cin:in std_logic;

cq:out std_logic_vector(3 downto 0); cout:out std_logic); end component;

signal clr,cin:std_logic;

signal q:std_logic_vector(1 downto 0);

signal coutb,couts,coutg,cout:std_logic_vector(3 downto 0); signal c1,c2,c3: std_logic; signal eq0,eq1,eq2: std_logic;

signal qa,qb,qc,qd,qe,qf,qg: std_logic; begin u0:count4 port map(clk0,q); u1:decoder2_3 port map(q,eq0,eq1,eq2);

4

sb<=eq2; ss<=eq1; sg<=eq0; cin<='1'; u2:exp_cnt10 port map(clk,clrn or clr,En,cin,coutg,c1); u3:exp_cnt10 port map(clk,clrn or clr,En,c1,couts,c2); u4:exp_cnt10 port map(clk,clrn or clr,En,c2 and c1,coutb,c3); b<=coutb; s<=couts; g<=coutg; cc<=c1; c<=c2; clr<=coutb(0) and coutg(3); u5:mux4_3_1 port map(coutg,couts,coutb,q,cout); u6:my7449 port map(cout,qa,qb,qc,qd,qe,qf,qg); ga<=qa; gb<=qb; gc<=qc; gd<=qd; ge<=qe; gf<=qf; gg<=qg; end rtl;

2、 波形仿真:

5

1、(1)Entime:45us

(2)Grid size:100ns (3)clk:clock→period:10ns

2、波形说明:

clrn为0,En为0时,保持; clrn为0,En为1时,计数; clrn为1时,清零; 3、下载验证。 4、管脚锁定:

clk0: 55 clk:125 En:83 clrn:82 sb、ss、sg:135,133,132 qa,qb,qc,qd,qe,qf,qg:136,137,138,140,141,142,143

四、结论与总结

1、设计结论:

(1)由仿真图知,计数到107后从0开始计数。

其中b为输出数据的百位,s为输出数据的十位,g为输出数据的个位,c为模108计数器的进位输出。

(2)下载结果:当按下83后,数码管显示数字从000开始数,数到108后清零重新计数。

6

2、设计总结:在本次的设计过程中,我遇到了一些困难和预料不到的情况,但通过自己的不懈努力,最终克服了困难,解决了问题。通过此次的设计,我们在电路设计和调试各个方面得到了锻炼,能力也有了很大的提高。同时也深刻的体会到:实践是理论运用的最好检验。

五、EDA的设计流程: 1、文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本(ABEL-HDL程序)或图形方式(原理图或状态图)表达出来。 2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。

3、综合。这是将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。综合后HDL综合器可生成ENIF、XNF或VHDL等格式的网表文件,他们从门级开始描述了最基本的门电路结构。

4、行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。(该步骤也可以略去)

5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。该操作完成后,EDA软件将产生针对此项设计的适配报告和JED下载文件等多项结果。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。

6、功能仿真和时序仿真。该不妨真实接近真实器件运行的方针,仿真过程已将器件的硬件特性考虑进去了,因此仿真精度要高的多。(该步骤也可略去) 7、下载。如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片FPGA或CPLD中。 8、硬件仿真与测试。

六、EDA技术的发展趋势

EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。

在教学方面:几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本原理和基本概念、掌握用VHDL 描述系统逻辑的方法、使用EDA工具进行电子电路课程的模拟仿真实验。如实验教学、课程设计、毕业设计、设计竞赛等均可借助CPLD/FPGA器件,使实验设备或设计出的电子系统具有高可靠性,又经济、快速、容易实现、修改便利,同时可大大提高学生的实践动手能力、创新能力和计算机应用能力。

在科研方面:主要利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;将CPLD/FPGA器件的开发应用到仪器设备中,CPLD/FPGA可直接应用于小批量产品的芯片或作为大批量产品的芯片前期开发。传统机电产品的升级换代和技术改造,CPLD/FPGA的应用可提高传统产品的性能,缩小体积,提高技术含量和产品的附加值。作为高等院校有关专业的学生和广大的电子工程师了解和掌握这一先进技术是势在必行这不仅是提高设计效率的需要,更是时代发展的需求, 只有掌握了EDA 技术才有能力参与世界电子工业市场的竞争,才能生存与发展。随着科技的进步,电子产品的更新日新月异,EDA技术作为电子产品开发研

7

制的源动力,已成为现代电子设计的核心。所以发展EDA技术将是电子设计领域和电子产业界的一场重大的技术革命,同时也对电类课程的教学和科研提出了更深更高的要求。

在产品设计与制造方面:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在PCB的制作、电子设备的研制与生产、电路板的焊接、制作过程等有重要作用。可以说EDA技术已经成为电子工业领域不可缺少的技术支持。

进入21世纪后,电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SOC(System-on-Chip)高效低成本设计技术的成熟。随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化传统的固定功能集成块十连线的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。

七、EDA的发展前景

随着微电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化、仪器仪表等领域工作中,EDA技术的含量以惊人的速度上升,从而使它成为当今电子技术发展的前沿之一。

由于在电子系统设计领域中的明显优势,基于大规模可编程器件解决方案的EDA技术及其应用在近年中有了巨大的发展,将电子设计技术再次推向又一崭新的历史阶段。这些新的发展大致包括这样6个方面:①新器件;②新工具软件;③嵌入式系统设计;④DSP系统设计;⑤计算机处理器设计;⑥与ASIC市场的竞争技术。以下将分别予以说明。

1、新器件。由于市场产品的需求和市场竞争的促进,成熟的EDA工具所能支持的,同时标志着最新EDA工具所能支持的,同时标志着最新EDA技术发展成果的新器件不断涌现,其特点主要表现为:大规模、低功耗 、模拟可编程、含多种专用端口和附加功能模块的FPGA。

2、新工具软件。为了适应更大规模FPGA的开发,包括片上系统的DSP的开发,除了第三方EDA公司不断更新的通用EDA工具外,主要PLD供应商也相继推出,并适时升级其EDA开发工具。 3、在FPGA中植入嵌入式系统处理器。

4、基于FPGA的DSP系统设计。现代大容量、高速度的FPGA的出现,克服了上述方案的诸多不足。在这些FPGA中,一般都内嵌有可配置的高速RAM、PLL、LVDS、LVTTL以及硬件乘法累加器等DSP模块。用FPGA来实现数字信号处理可以很好地解决并行性和速度问题,而且其灵活的可配置特性,使得FPGA构成的DSP系统非常易于修改、易于测试及硬件升级。

5、计算机处理器设计。EDA技术与FPGA在通信领域中的成功已是众所周知的事实了,而对于一般的处理器的实现也已司空见惯。如利用硬件描述语言设计嵌入式系统处理器、各类CPU或单片机等,并以软核的形式在FPGA中实现。但

8

利用FPGA实现高性能的处理器,乃至超级计算机处理器的功能,不能不说是一项崭新的尝试。目前,尽管基于EDA技术的计算机处理器的FPGA实现尚未进入全面的商业化开发阶段,但其研究和应用的成果却不得不令人深感FPGA在这一领域中的巨大潜力和广阔的市场。

6、与ASIC市场的竞争技术。由于EDA技术是面向解决电子系统最基本最低层硬件实现问题的技术,因此就其发展趋势的横向看,势必涉及越来越广阔的电子技术及电子设计技术领域。其中包括电子工程、电子信息、通信、航天航空、工业自动化、家电、生物工程等等。而且随着大规模集成电路技术的发展和EDA工具软件功能的不断加强,所涉及的领域还将不断扩大;而从纵向看,EDA技术实现的硬件形式和涉及的理论模型必将走向一个统一的结合体,即单片系统SOC或SOPC。

综上所述,EDA技术是电子设计领域的一场革命,目前正处于高速发展阶段,每年都有新的EDA工具问世。广大电子工程人员掌握这一先进技术,这不仅是提高设计效率的需要,更是我国电子工业在世界市场上生存、竞争与发展的需要。

参考文献:

[1]焦素敏,《EDA 应用技术》[M].北京:清华大学出版社,2005

[2]李平,《电子设计自动化快速入门教程》[M].高等教育出版社,2003

[3]阎石,《数字电子技术基础》[M]. 高等教育出版社,2002

9

因篇幅问题不能全部显示,请点此查看更多更全内容