1、自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。本文简单介绍EDA技术的发展史、说明Quartus的使用过程,阐述了数字钟的设计与实现的相关过程。关键词: EDA(电子设计自动化);VHDL(硬件描述语言);数字钟;Quartus
2、目录第1章 概 述 1 1.1 EDA的概念 11.1.1 EDA技术及应用 21.1.2 EDA技术发展趋势 2 1.2 EDA的工作平台 31.2.1 EDA硬件工作平台 31.2.2 EDA 的软件工作平台 3第2章 数字钟原理图设计 4 2.1 数字钟原理流程图: 4 2.2 数字钟原理图: 5第3章 数字钟程序设计 6 3.1 数字钟详细分析 63.1.2实验原理 6 3.2 数字钟的设计过程 63.2.1设计规划 63.2.2设计说明 7 3.3 VHDL设计 73.3.1 数字钟源程序(VHDL语言编译) 7结 论 13参考文献 14第1章 概 述1.1 EDA的概念EDA是电子
3、设计自动化(Electronic Design Automation)的缩写。由于它是一门刚刚发展起来的新技术,涉及面广,内容丰富,理解各异,所以目前尚无一个确切的定义1。但从EDA技术的几个主要方面的内容来看,可以理解为:EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统的一门新技术。可以实现逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化,逻辑布局布线、逻辑仿真。完成对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成
4、集成电子系统或专用集成芯片2。EDA技术是伴随着计算机、集成电路、电子系统的设计发展起来的,至今已有30多年的历程。大致可以分为三个发展阶段。20世纪70年代的CAD(计算机辅助设计)阶段:这一阶段的主要特征是利用计算机辅助进行电路原理图编辑,PCB布同布线,使得设计师从传统高度重复繁杂的绘图劳动中解脱出来。20世纪80年代的QAE(计算机辅助工程设计)阶段:这一阶段的主要特征是以逻辑摸拟、定时分析、故障仿真、自动布局布线为核心,重点解决电路设计的功能检测等问题,使设计能在产品制作之前预知产品的功能与性能3。20世纪90年代是EDA(电子设计自动化)阶段:这一阶段的主要特征是以高级描述语言,系
5、统级仿真和综合技术为特点,采用“自顶向下”的设计理念,将设计前期的许多高层次设计由EDA工具来完成4。EDA是电子技术设计自动化,也就是能够帮助人们设计电子电路或系统的软件工具。该工具可以在电子产品的各个设计阶段发挥作用,使设计更复杂的电路和系统成为可能。在原理图设计阶段,可以使用EDA中的仿真工具论证设计的正确性;在芯片设计阶段,可以使用EDA中的芯片设计工具设计制作芯片的版图;在电路板设计阶段,可以使用EDA中电路板设计工具设计多层电路板。特别是支持硬件描述语言的EDA工具的出现,使复杂数字系统设计自动化成为可能,只要用硬件描述语言将数字系统的行为描述正确,就可以进行该数字系统的芯片设计与
6、制造5。21世纪将是EDA技术的高速发展期,EDA技术将是对21世纪产生重大影响的十大技术之一。 硬件描述语言:硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。常用硬件描述语言有HDL、Verilog和VHDL语言6。1.1.1 EDA技术及应用电子EDA技术发展迅猛,逐渐在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面:几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本原理和基本概念、硬件描述系统逻辑的方法、使用EDA工具进行电子电路课程的模拟仿真实
7、验并在作毕业设计时从事简单电子系统的设计,为今后工作打下基础。具有代表性的是全国每两年举办一次的大学生电子设计竞赛活动。在科研方面:主要利用电路仿真工具进行电路设计与仿真;利用虚拟仪器进行产品调试;将FPGA器件的开发应用到仪器设备中。在产品设计与制造方面:从高性能的微处理器、数字信号处理器一直到彩电、音响和电子玩具电路等,EDA技术不单是应用于前期的计算机模拟仿真、产品调试,而且也在后期的制作、电子设备的研制与生产、电路板的焊接、器件的制作过程等有重要作用。可以说电子EDA技术已经成为电子工业领域不可缺少的技术支持7。1.1.2 EDA技术发展趋势 EDA技术在进入21世纪后,由于更大规模的
8、FPGA器件的不断推出,在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断更新、增加,使电子EDA技术得到了更大的发展。电子技术全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;软硬件IP核在电子行业的产业领域、技术领域和设计应用领域得到进一步确认;SoC高效低成本设计技术的成熟。随着半导体技术、集成技术和计算机技术的迅猛发展,电子系统的设计方法和设计手段都发生了很大的变化。可以说电子EDA技术是电子
9、设计领域的一场革命。传统的“固定功能集成块十连线”的设计方法正逐步地退出历史舞台,而基于芯片的设计方法正成为现代电子系统设计的主流。作为高等院校有关专业的学生和广大的电子工程师了解和掌握这一先进技术是势在必行,这不仅是提高设计效率的需要,更是时代发展的需求,只有掌握了EDA技术才有能力参与世界电子工业市场的竞争,才能生存与发展。随着科技的进步,电子产品的更新日新月异,EDA技术作为电子产品开发研制的源动力,已成为现代电子设计的核心。所以发展EDA技术将是电子设计领域和电子产业界的一场重大的技术革命,同时也对电类课程的教学和科研提出了更深更高的要求。特别是EDA技术在我国尚未普及,掌握和普及这一
10、全新的技术,将对我国电子技术的发展具有深远的意义。1.2 EDA的工作平台1.2.1 EDA硬件工作平台1.计算机2.EDA实验开发系统:EL教学实验箱。1.2.2 EDA 的软件工作平台PLD(Programmable Logic Device)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。目前主要有两大类型:CPLD(Complex PLD)和FPGA(Field Programmable Gate Array)。它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。生产PLD的厂家很多,
11、但最有代表性的PLD厂家为Altera、Xilinx和Lattice 公司。我们采用了Quartus软件作为开发工具。第2章 数字钟原理图设计2.1 数字钟原理流程图:图2-1 数字钟流程图2.2 数字钟原理图:第3章 数字钟程序设计3.1 数字钟详细分析3.1.1数字钟原理: 数字钟由分频器、计数器、译码显示、报时等电路组成。数字钟的主体是计数器,它记录并显示接收到的秒脉冲个数,其中秒和分为模60计数器,小时是模24计数器,分别产生3位BCD码。BCD码经译码,驱动后接数码管显示电路。秒模60计数器的进位作为分模60计数器的时钟,分模60计数器的进位作为模24计数器的时钟。分频器将输入的频率
12、分为设计所需的两个时钟。为了实现手动调整时间,在外部增加了S2(调整分钟),S1(调整小时)按键,当这两个按键为高电平时,电路正常计时,当为低电平时,分别调整分钟和小时。同时在外部还增加了一个复位按键Rst和扬声器SPK(整点报时)。3.1.2实验原理在同一EPLD芯片EPF10K10上集成了如下电路模块: 1时钟计数: 秒60进制BCD码计数; 分60进制BCDD码计数; 时24进制BCDD码计数;同时整个计数器有清零,调分,调时功能。在接近整数时间能提供报时信号。2具有驱动8位八段共阴扫描数码管的片选驱动信号输出和八段字形译码输 出。编码和扫描可参照“实验四”。3扬生器在整点时有报时驱动信
13、号产生。4. LED灯按个人口味在整点时有花样显示信号产生。3.2 数字钟的设计过程3.2.1设计规划 基于硬件描述语言(VHDL),利用EL教学实验箱及Quartus软件设计数字钟,实现实验要求的时钟计数功能,清零、调节分钟和小时功能,扬声器整点报时功能,8位八段共阴扫描数码管显示和LED花样显示。3.2.2设计说明本章节主要介绍用VHDL语言来描述数字钟,使用的是整体程序法,所有功能集成在同一程序中。3.3 VHDL设计3.3.1 数字钟源程序(VHDL语言编译)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arit
14、h.all;use ieee.std_logic_unsigned.all;-entity daclk is port( Clk : in std_logic; -时钟输入 Rst : -复位输入 S1,S2 : -时间调节输入 SPK : out std_logic; -扬声器输出 Display : out std_logic_vector(7 downto 0); -八段码管显示输出 SEG_SEL : buffer std_logic_vector(2 downto 0) ; -八段码管扫描驱动 lam :out std_logic_vector(2 downto 0) );end d
15、aclk;-architecture behave of daclk is signal Disp_Temp : integer range 0 to 15; signal Disp_Decode : std_logic_vector(7 downto 0); signal SEC1,SEC10 : integer range 0 to 9; signal MIN1,MIN10 : signal HOUR1,HOUR10 : signal Clk_Count1 : std_logic_vector(13 downto 0); signal Clk1Hz : std_logic; signal
16、Music_Count : std_logic_vector(2 downto 0); signal count : std_logic_vector(1 downto 0); signal lamp :std_logic_vector(2 downto 0); begin process(Clk) -产生1Hz 时钟的分频计数器 if(Clkevent and Clk=1) then if(Clk_Count110000) then Clk_Count1=Clk_Count1+1; else =00000000000001; end if; end process; Clk1Hz=Clk_C
17、ount1(13); process(Clk1Hz,Rst) if(Rst=0) then -系统复位 SEC1=0; SEC10 MIN1 MIN10 HOUR1 HOUR10 elsif(Clk1Hzevent and Clk1Hz= if(S1=) then -调节小时 if(HOUR1=9) then HOUR1 HOUR10=HOUR10+1; elsif(HOUR10=2 and HOUR1=3) then else =HOUR1+1; end if; elsif(S2=) then -调节分钟 if(MIN1=9) then MIN1 if(MIN10=5) then =MIN1
18、0+1;=MIN1+1; elsif(SEC1=9) then if(SEC10=5) then SEC10 if(MIN1=9) then if(MIN10=5) then MIN10 if(HOUR1=9) then HOUR1 HOUR10 elsif(HOUR10=2 and HOUR1=3) then else HOUR1 end if; MIN10 end if;=SEC10+1; SEC1=SEC1+1; end process; process(Clk) -整点报时 begin if(Clk Music_Count=Music_Count+1; if(MIN10=5 and M
19、IN1=9 and SEC10=5) then if(SEC1 MOD 2)=0) then SPK=Music_Count(2);= elsif(MIN10=0 and MIN1=0 and SEC10=0 and SEC1=0) then =Music_Count(1); process(clk1Hz) -LED灯 begin lam=lamp; if (rising_edge(clk1Hz) then count = count + 1; if (count = 10) then if (count =00 lamp 001 ; elsif (count = 01 lampDisp_Te
20、mp=HOUR10;110=HOUR1;101=10;=MIN10;011=MIN1;=SEC10;000=SEC1; end case; process(Clk) -扫描累加 SEG_SEL=SEG_SEL+1; DisplayDisp_Decode00000110 when 2=01011011 when 3=01001111 when 4=01100110 when 5=01101101 when 6=01111101 when 7=00000111 when 8=01111111 when 9=01101111 when 10=01000000 when others=00000000
21、end behave;3.3.2 实验连线:输入接口:1.清零,调小时,调分钟信号Rst,S1,S2的引脚分别连接按键开关。2.计数时钟信号CLK引脚同32HZ(或更高)时钟源相连。 输出接口:1.扫描显示的驱动信号管脚SEG_SEL1,SEG_SEL2,SEG_SEL3接实验箱上的SEL0SEL2,Display(7 downto 0)分别接八位数码管显示模块的AG。2.扬声器驱动信号的管脚SPK同扬声器驱动接口SPEAKER IN相连。3.到时花样LED灯显示的信号管脚LAMP0LAMP2同3个LED灯相连。4.到时LED灯闪烁提示的ENHOUR接LED灯。结 论 通过此次课程设计,让我对EDA这门技术有了更深的体会,并更好的学会了使用Quartus软件进行硬件设计。 此次课程设计时基于VHDL语言进行的数字钟设计,在课程设计时,我逐渐掌握了VHDL语言的语句及语法等的使用。但在学习过程中,也遇到了很多困难,由于刚刚学习EDA不久,所以很多细节内容都不是很了解,尤其时VHDL语言的运用。我先上网找了一些资料和程序,一点点的看,慢慢摸索着学习写语句。最后在老师和同学的帮助下,终于完成了数字钟的设计。以后我会利用更多时间来学习EDA技术。EDA技术有着非
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1