基于FPGA直流电机的PWM控制 - 毕业设计

更新时间:2024-05-01 21:19:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于FPGA直流电机的PWM控制

Based on FPGA direct current machine's PWM

control rotational

摘 要

EDA技术是用于电子产品设计中比较先进的技术,可以代替设计者完成电子系统设计中的大部分工作,而且可以直接从程序中修改错误及系统功能而不需要硬件电路的支持,既缩短了研发周期,又大大节约了成本,受到了电子工程师的青睐。

实现直流电机转速的控制方法很多,可以用可编程序控制器PLC、单片机等方案来实现。但是这些控制方法的功能修改及调试都需要硬件电路的支持,在一定程度上增加了功能修改及系统调试的困难。因此,在设计中采用EDA技术,应用目前广泛应用的VHDL硬件电路描述语言,实现直流电机转向的控制设计,利用QuartusⅡ集成开发环境进行综合、仿真。

关键词:电子系统、硬件电路、直流电机、转向

0

ABSTRACT

EDA the technology is uses in the electronic products design the quite advanced technology, may replace the designer to complete in the electronic system design the majority of work, moreover may revise wrong and the system function directly from the procedure, but does not need hardware circuit's support, both reduced the research and development cycle, and saved the cost greatly, has received the electronic engineer's favor.

Realizes the direct current machine rotational speed control method to be many, may use programmable plans and so on controller PLC, monolithic integrated circuit to realize. But these control method's function revision and the debugging needed hardware circuit's support, to increase the function revision and the system debugging difficulty to a certain extent. Therefore, uses the EDA technology in the design, the application present widespread application VHDL hardware circuit description language, realizes control design which the direct current machine changes, uses QuartusⅡThe integrated development environment carries on the synthesis, the simulation.

Key word:EDA、VHDL、QuartusⅡ、the direct current machine、realizes

control

1

目 录

前 言 .................................................................................. 3 第一章 PWM技术 .............................................................. 4 第二章 EDA简要介绍 ........................................................ 6

§2.1 EDA技术的发展历程 ............................................. 6 §2.2 EDA技术的主要内容 ............................................. 8 §2.3 EDA技术的发展趋势 ............................................. 9 第三章 硬件描述语言 VHDL ........................................... 11

§3.1 VHDL语言概况 ................................................... 11 §3.2 VHDL硬件程序结构 ............................................ 13 §3.3 VHDL语言的特点................................................ 16 第四章 QuartusII开发系统 ............................................. 17

§4.1 QuartusII设计流程: ........................................... 17 §4.2 QuartusII的设计特点 ........................................... 20 第五章 本设计中所用到的各基本原件的程序及仿真波形.......................................................................................... 22

§5.1 八位计数器 ......................................................... 22 §5.2 A_D转换器 .......................................................... 23 §5.3 比较器................................................................. 25 §5.5 元件组合完成电机方向转换的仿真 ..................... 28 结 论 ................................................................................ 31 参考文献 .............................................. 错误!未定义书签。 致 谢 ................................................... 错误!未定义书签。 外文资料译文 ....................................... 错误!未定义书签。

2

前 言

社会信息化和互联网正对人类经济和社会生活产生革命性的影响,而半导体产业则是互联网和信息化的基础与核心。当前我国特别需要加强基础性、关键性的高新技术领域的创新,加速技术产业,尤其是具有战略意义的新兴产业的发展和应用。半导体产业就是这样一个具有基础性、关键性的高新科技产业。自进入21世纪后,信息产业已成为世界经济中规模最大、发展最为迅猛的产业。因此对微电子信息技术和以微电子技术为基础的VLSI(超大规模集成电路设计)技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中最为重要的和最有活力的高科技领域之一,而集成电路(IC)技术在微电子领域占及其重要的地位。EDA(electronics design automation)即电子设计自动化技术,是一种以计算机为基础的工作平台;是利用电子技术、计算机技术、智能化技术等多种应用学科的最新成果,开发成的一套电子CAD(技术及辅助设计)软件;是一种帮助电子设计工程师从事电子元件产品和系统设计的综合技术。脉冲宽度调制(PWM)是英文“Pulse Width Modulation”的缩写,简称脉宽调制。他是利用微处理器的数字书出来对模拟电路进行控制的一种非常有效的技术。用FPGA产生PWM波形,只需FPGA内部资源就可实现用数字比较器代替模拟比较器,与模拟控制相比省去了外接D/A转换器和模拟比较器。FPGA外部连线很少,电路更加简单,便于控制。PWM是从处理器到被控系统信号都是数字形式的,无需进行数模转换,让信号保持为数字形式可将噪声影响降到最小。又由于PWM脉宽调制采用了桥式驱动电路,开关管始终处于戒指和饱和两种状态,因此具有功耗小,效率高的优点。

3

第一章 PWM技术

脉宽调制(PWM)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

简而言之,PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。

PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。

对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。 PWM控制技术一直是变频技术的核心技术之一。1964年A.Schonung和H.stemmler首先提出把这项通讯技术应用到交流传动中,从此为交流传动的推广应用开辟了新的局面。

从最初采用模拟电路完成三角调制波和参考正弦波比较,产生正弦脉宽调制SPWM信号以控制功率器件的开关开始,到目前采用全数字化方案,完成优化的实时在线的PWM信号输出,可以说直到目前为止,PWM在各种应用场合仍在主导地位,并一直是人们研究的热点。 由于PWM可以同时实现变频变压反抑制谐波的特点。由此在交流传

4

动及至其它能量变换系统中得到广泛应用。PWM控制技术大致可以为为三类,正弦PWM(包括电压,电流或磁通的正弦为目标的各种PWM方案,多重PWM也应归于此类),优化PWM及随机PWM。正弦PWM已为人们所熟知,而旨在改善输出电压、电流波形,降低电源系统谐波的多重PWM技术在大功率变频器中有其独特的优势;而优化PWM所追求的则是实现电流谐波畸变率(THD)最小,电压利用率最高,效率最优,及转矩脉动最小以及其它特定优化目标。 在70年代开始至80年代初,由于当时大功率晶体管主要为双极性达林顿三极管,载波频率一般最高不超过5kHz,电机绕组的电磁噪音及谐波引起的振动引起人们的关注。为求得改善,随机PWM方法应运而生。其原理是随机改变开关频率使电机电磁噪音近似为限带白噪音(在线性频率坐标系中,各频率能量分布是均匀的),尽管噪音的总分贝数未变,但以固定开关频率为特征的有色噪音强度大大削弱。正因为如此,即使在IGBT已被广泛应用的今天,对于载波频率必须限制在较低频率的场合,随机PWM仍然有其特殊的价值(DTC控制即为一例);别一方面则告诉人们消除机械和电磁噪音的最佳方法不是盲目地提高工作频率,因为随机PWM技术提供了一个分析、解决问题的全新思路。

5

第二章 EDA简要介绍

20世纪后半期,随着集成电路和计算机的不断发展,电子技术面临着严峻的挑战。由于电子技术发展周期不断缩短,专用集成电路(ASIC)的设计面临着难度不断提高志设计周期不断缩短的矛盾。为了解决这个问题,必须采用新的设计方法和使用高层次的设计工具。在此情况下,EDA(Electronic Design Automation,电子设计自动化)技术应运而生。

§2.1 EDA技术的发展历程

EDA技术就是以计算机为工作平台,以EDA软件工具为开发环境,以硬件描述语言为设计语言,以可编程器件为实验载体,以ASIC、SOC芯片为目标器件,以数字逻辑系统设计为应用方向的电子产品自动化设计过程。

随着现代半导体的精密加工技术发展到深来微米(0。18um-0.35um)阶段,基于大规模或超大规模集成电路技术的定制或半定制ASIC 器件大量涌现并获得广泛的应用研究,使整个电子技术与产品的面貌发生了深刻的变化,极大地推动了社会进程。而支撑这一发展进程的主要基础之一就是EDA技术。

EDA技术在硬件方面融合了大规模集成电路制造技术,IC版图设计技术、ASIC测试和封装技术、CPLD/FPGA技术等;在计算机辅助工程方面融合了计算机辅助设计CAD、计算机辅助制造CAM、计算机辅助测试CAT技术及多种计算机语言的设计概念,而在现代电子学方面则融合了更多的内容,如数字电路设计理论、数字信号处理技术、系统建模和优化技术等。因此EDA技术为现代数字系统理论和设计的表达与应用提供了可能性,它已不是某一学科的分支,而是一门综合性学科。EDA技术打破了计算机软件与硬件间的壁垒,是计算机软件技术与硬件实现、设计效率和产品性能的合二为一,它代

6

表了数字电子设计技术和应用技术的发展方向。

EDA技术伴随着计算机、集成电路、电子系统设计的发展经历了3个阶段。

(1)CAD(Computer Aided Design)阶段

20世纪70年代发展起来的CAD阶段是EDA技术发展的早期阶段,这一阶段集成电路制作方面,MOS工艺得到广泛应用,可编程逻辑技术及其器件已经问世,计算机作为一种运算工具已在科研领域得到广泛应用,人们借助于计算机进行电路图的输入、存储及PCB版图设计,从而摆脱了用手工进行电子设计时的大量繁琐、重复、单调的计算机与绘图工作,并逐步利用计算机进行电子系统的设计、分析与仿真。

(2)电子设计CAE(Computer Aided Engineering)阶段

CAE即计算机辅助工程是在20世纪80年代开始应用,在CAD工具逐步完善的基础上发展起来的。此时集成电路设计进入了CMOS(互补场效应管)的时代,复杂可编程逻辑器件已经进入商业应用领域,相应的辅助设计软件也已经投入使用。

在此阶段,人们已将各种电子线路设计工具如电路图输入、编译于廉洁、逻辑模拟、仿真分析、版图自动生成及各种单元库都集成在一个CAE系统中,以实现电子系统或芯片从原理图输入到版图设计输出的全称设计自动化。利用现代的CAE系统,设计人员在进行系统设计的时候,已可以把反映系统互联线路对系统性能的影响因素,一并考虑进去,使电子系统的设计与开发工作更贴近产品实际,更加自动化、更加方便和稳定可靠,大大提高了工作的效率。 (3)EDA阶段

20世纪90年代后期,出现了以硬件描述语言、系统级仿真和综合技术为特征的EDA技术。随着硬件描述语言的HDL的标准得到进一步的确立,计算机辅助工程、辅助分析、辅助设计在惦记技术领域获得更加广泛的应用,与此同时电子技术在通信、计算机及家用点产品生产中的市场和技术需求,极大推动了全新的电子自动化技术的应用和发展。特别是集成电路设计工艺步入了深亚微米阶段,百万门以上的大规模可变成逻辑器件的陆续面世,以及基于计算机技术的面向

7

用户的低成本大规模ASIC设计技术的应用,促进EDA技术的形成。在这一阶段,电路设计者只需要完成对系统功能的描述,就可以由计算机软件进行系列处理,最后得到设计结果,并且修改设计方案如同修改软件一样方便,利用EDA工具可以极大地提高设计效率。

这时的EDA工具不仅具有电子系统设计的能力,而且能提供独立于工艺和厂家的系统设计能力,具有高级抽象的设计构思手段。因此,可以说20世纪90年代的EDA技术是电子电路设计的革命。

§2.2 EDA技术的主要内容

EDA技术是以大规模可变成逻辑器件为实际载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关 的软件开发,自动完成用软件的方法设计电子系统到硬件系统的逻辑编译、逻辑简化、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成电子系统或专用集成芯片的一门新技术。

EDA技术涉及面广,内容丰富,从教学和实用的角度看,主要有以下4方面的内容:①大规模可编程逻辑器件;② 硬件描述语言;③ 软件开发工具;④ 实验开发系统。其中大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体;硬件描述语言是利用EDA技术进行电子系统设计的表达主要手段;软件开发工具是利用EDA技术进行电子系统设计的智能化、自动化设计工具;实验开发系统是利用EDA技术进行电子系统设计的下载工具及硬件验证工具。

利用EDA技术进行数字逻辑技术设计,具有以下几个特点: ⑴全程自动化:用软件方式设计的系统到硬件系统的转换,是由有关的开发软件自动完成的。

⑵工具集成化:具有开放式的设计环境,这种环境也称为框架结构(Framework),他在EDA系统中负责协调设计过程和管理设计数据,实现数据与工具双向流动。他的优点是可以将不同公司的软件工具集成到一个统一的计算机平台上,使之成为一个完整的EDA系统。

8

⑶操作智能化:使设计人员不必要学习过多的深入的专业知识,也可免除许多推导运算即可获得优化的设计结果。

⑷执行并行化:由于多种工具采用了同意的数据库,使得一个软件的执行结果马上可以被另一个软件使用,使得原来要串行的设计步骤变成了并行过程,也称为“同时工程(Concurrent Engineering)”。

⑸成果规范化:都采用VHDL(超高速集成电路硬件描述语言),他是EDA系统的一种输入模式,可以支持从数字系统到门级的多层次的硬件描述。

§2.3 EDA技术的发展趋势

EDA技术在进入21世纪后得到了更大的发展,表现在下面几个方面:

(1)使电子设计成果以自主知识产权的方式明确表达和确认成为可能。

(2)使仿真和设计两方面支持标准硬件描述语言、功能强大的EDA软件不断推出。

(3)电子技术全方位纳入EDA领域,除了日益成熟的数字技术外,传统的电路系统设计建模理念发生了重大变化;软件无线技术的崛起,模拟电路系统硬件描述语言的表达和设计的标准化,系统可编程模拟期间的出现,数字信号处理和图像处理的全硬件实现方案的普遍接受,软、硬件技术的进一步融合等。

(4)EDA使得电子领域各学科的界限更加模糊,更加互为包容:模拟与数字、软件与硬件、系统与器件、专用集成电路ASIC和FPGA(Field Programmable Gate Array)、行为与结构等的界限更加模糊,更加互为包容。

(5)更大规模的FPGA和CPLD(Complex Programmable Logic Device)器件的不断推出。

(6).基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块。

(7)软件IP核在电子行业的产业领域、技术领域、和设计应用领

9

域得到进一步确认。

(8)单片电子系统SOC(System On Chip)高效、低成本设计技术的成熟。

总之,随着系统开发对EDA技术的目的器件的各种性能要求的提高,ASIC和 FPGA将更大程度的、相互融合。这是因为虽然标准逻辑器件ASIC芯片尺寸大小、功能强大、耗电小,但设计复杂,并且有大批量生产需求;可编程逻辑器件开发费用低廉,能在现场进行编程,但体积大、功能有限,而且功耗较大。因此,FPGA和ASIC相互融合,取长补短。由于一些ASIC制造商提供具有可编程逻辑的标准单元,可编程器件制造商重新对标准单元发生兴趣,而有些公司采取两头并进的方法,从而使市场开始发生变化,在FPGA和ASIC之间正在诞生一种“杂交”产品,以满足成本和上市速度的要求,例如将可编程逻辑器件嵌入标准单元。

现今也在进行将ASIC嵌入可编程逻辑单元的工作。目前,许多PLD公司开始为ASIC提供FPGA内核,PLD厂商与ASIC制造商结盟,为SOC设计提供嵌入式FPGA模块,使未来的ASIC供应商有机会更快进入市场,利用嵌入式内核获得更长的市场生命期。传统ASIC和FPGA之间的界限正在变得模糊。

10

第三章 硬件描述语言 VHDL

硬件描述语言是电子系统硬件行为描述、结构描述、数据描述的语言。目前利用硬件描述语言可以进行数字电子系统的设计。随着研究的深入,利用硬件描述语言进行模拟电子系统设计或混合电子系统设计,也在探索中。

§3.1 VHDL语言概况

VHDL(Very High Speed Integrated Circuit Hardware Descripition Language)即超高速集成电路硬件描述语言,美国国防部在20世纪80年代后期开发了VHDL语言。VHDL工作小组于1981年6月成立,提出了一个满足电子设计各种要求的能够作为工业标准的HDL。1983年第3季度,由IBM公司、TI公司、Intermetrics公司签约,组成开发小组,工作任务式提出语言版本和软件开发环境。1986年IEEE标准化组织开始工作,讨论VHDL标准语言,历时一年有余,1987年

12

月通过标准审查,并宣布实施,即

IEEE STD

1076——1987[LRM87]。1993年VHDL重新修订,形成新的标准,即IEEE STD 1076——1993[LRM93]。

此语言设计技术齐全、方法灵活、可与制作工艺无关、编程易于共享,所以成为硬件描述语言的主流,成为标硬件描述语言。将VHDL程序写入可编程芯片中,做成ASIC芯片,因其开发周期短,更改方便,所以将在大范围内取代单片控制电路,成为未来数字电路设计的主流。由于半导体编程技术的快速进步,VHDL所能提供的高阶电路描述语言方式,是复杂的电路可以通过VHDL编辑器的电路方式,轻易而快速的达到设计的规格。VHDL电路描述语言所能涵盖的范围相当广,能适用于不同阶层的设计工程师的需求。从ASIC的设计到PCB系统的设计,VHDL电路描述语言都能派上用场,所以VHDL电路设计毫无疑问的成为硬件设计工程师的必备工具。目前,VHDL

11

语言也成为FPGA/CPLD编程最常用的工具。

VHDL作为EDA的重要组成部分,提供了借助计算机进行数字系统设计的一种很好的手段。用VHDL进行设计有许多优点,VHDL的硬件描述能力很强,可以用于从门级、电路级直至系统级的描述、仿真、综合和调试。利用VHDL丰富的仿真语句和库函数,对大系统的早期设计,可在远离门级的高层次上进行模拟,以利用设计者确定整个设计结构和功能的可行性。VHDL强大的行为描述能力和程序结构,使其具有支持对大规模设计进行分解,以及对已有的设计进行再利用的功能。运用VHDL设计系统硬件具有相对独立性,设计式4没有嵌入与工艺有关的信息,对硬件的描述与具体的工艺技术和硬件结构无关。当门级或门级以上的描述通过仿真检验后,再用相应的工具将设计映射成不同的工艺,这使硬件实现的目标器件有很宽的选择范围,并且修改电路与修改工艺(或选择器件)相互之间不会产生不良影响。VHDL标准、规范,语法较为严格,采用VHDL的设计不必改变源程序,只需改变类属参数或函数,就可以改变设计的规模和结构。当然,VHDL也存在某些不足,如电路采用高级而简明的文本文件方式进行描述的同时,放弃了对电路门级实现定义的控制;由于综合工具进行逻辑综合的实现效果有时不太理想;工具的不同也导致了综合质量的差异。

由于VHDL是一种硬件描述语言,设计者需要较多的了解数字电路与逻辑设计方面的电路知识;而更为重要的是必须以一种并行语言的思路去理解和应用VHDL。VHDL描述的是实际的电路系统。电路系统内各功能模块的工作状态可以相互独立、互补相关,也可以互为结果;也就是说,任一时刻,电路系统中可有许多相关的和不相关的事件同时发生,为适应实际电路系统的工作方式,VHDL以顺序和并行的多种语句方式对同一时刻电路中所有可能发生的事件进行描述。可以认为,VHDL是一种并行语言。当然。VHDL仍旧保留着计算机语言的基本特征。用VHDL进行的设计描述只是综合器赖以构建硬件电路结构的依据,不可能代替硬件电路真实的行为方式。如用VHDL的顺序语句可以描述多路选择器、译码器等以并行工作为特征的电路,但实际电路并不按照逐个顺序判断的工作方式进行。因而,

12

尽可能了解软件语言与硬件结构间的联系,了解软件描述背后的硬件工具行为和硬件结构方式,将有助于实现高质量的VHDL设计。

总之,VHDL是EDA技术最重要的应用工具。离开硬件描述语言的支持,EDA技术将无法应用。1995年我国国家技术监督局制定的《CAD通用技术规范》推荐将VHDL作为我国电子设计自动化硬件描述语言的国家标准。目前,VHDL已经成为世界上各家EDA工具和集成电路厂商普遍认同和共同推广的硬件描述语言。掌握VHDL,利用VHDL设计电子电路,是当前进行技术竞争的一项基本技能和强有力工具。

§3.2 VHDL硬件程序结构

一个完整的VHDL语言程序一般包括五部分: (1)实体(ENTITY)部分

实体的功能是对这个实际的实体与外部电路进行借口描述,其说明部分规定了设计单元的输入输出接口或引脚,它是设计实体对外的一个通信界面。设计实体可以拥有一个或多个结构体,它描述实体的逻辑结构和逻辑功能。

实体语句结构: ENTITY 实体名 IS [GENERIC (类属表);] [PORT (端口表);] END ENTITY 实体名;

实体名就是这个设计实体的名称,注意在plusII中要求文件名必须与实体名一致。

GENERIC

类属说明语句用于设计实体和其外部环境通信的参

数,传递静态的信息。它的一般书写格式如下:

GENERIC ({常数名:数据类型[:设定值]

常数名:数据类型[:设定值]});

其中的常数名是由设计者确定的类属常数名,数据类型通常取INTEGER或TIME等类型,设定值就是常数名所代表的数值。

13

PORT端口说明语句是对一个设计实体界面的说明。它的一般书写格式如下:

PORT(端口名;端口模式 数据类型; {端口名;端口模式 数据类型});

其中的端口名是指设计者为实体的每一个对外通道所取的名字,端口模式是指这些通道上的数据流动方式,如输入输出等。数据类型是指端口上流动的数据的表达式或取值类型。

(2)结构体(ARCHITECTURE)部分

结构体用来描述系统内部的结构与行为,即描述设计实体的内部结构和外部外部设计实体端口之间的逻辑关系。

结构体的语句结构:

ARCHITECTURE结构体名OF实体名IS [说明语句] BEGIN

[功能描述语句]

END ARCHITECTURE结构实体名;

上面的实体名是指所设计实体的名字,结构体名可以由设计者自己选择,但对于多个结构体取名不可重复。结构体说明语句是对结构体的功能描述语句中将要用到的信号(SIGNAL)、数据类型(TYRE)、常数(CONXTANT)、元件(COMPONNENT)、函数(FUNCTION)和过程(PROCEDURE)等加以说明的语句。对于一个结构体说明语句如希望用于其他的实体或结构体中,则需要将其作为程序包来处理。功能描述语句是包括块语句、进程语句、信号赋值语句、子程序调用语句、元件例化语句五种不同类型的语句。

(3)配置(CONFIGURATION)部分

这是属性选项,主要用来描述实体与结构体、层与层之间的连接关系,例如高层设计需要将底层实体作为文件加以利用,就要用到配置说明。

配置语句的一般格式如下:

CONFIGURATION配置名OF 实体名IS 配置说明

14

END 配置名;

(4)程序包(PACKAGE)

这也是一种属性选项,用来存放各种模块模块都能共享的数据类型、常数、程序等等。

(5)库(LIBRARY)

用来存放已经编译的实体、结构体、包集合和配置,可以由用户生成或者由ASIC芯片制造商提供,这样设计时可以调用库中资源。

库的语句结构: LIBRARY库名;

这一语句即相当于为其后的设计实体打开了以此为库名命名的库,以便设计实体可以利用其中的程序包。库的种类如下:

①IEEE库:IEEE库是VHDL设计中最常见的库,它包含IEEE标准的程序包。IEEE

库中的标准程序包主要包括

STD—LOGIC—1164、NUMERIC—BIT和NUMERIC—STD等程序包,其中STD—LOGIC—1164是最重要和最常用的程序包,大部分基于数字许同设计的程序包都是以此程序包中设定的标准为基础。一些工业标准程序包也都并入IEEE库,在这些程序包中最常用的是SYNOPSYS公司的STD—LOGIC—1ARITH、STD—LOGIC—SIGNED和STD—LOGIC—UNSIGNED程序包。对于在一般基于大规模可编程逻辑器件的数字系统设计,IEEE

库中的

4

个程序包

STD—LOGIC—1164、STD—LOGIC—1ARIT、STD—LOGIC—SIGNED和STD—LOGIC—UNSIGNED已经足够使用。另外,在IEEE库中符合

IEEE

标准的程序包并非符合

VHDL

语言标准,如

STD—LOGIC—1164程序包。因此在使用VHDL设计实体的前面必须显示表达出来。

②STD库:VHDL语言标准定义了两个标准程序包,即STANDARD和TEXTIO程序包,它们都被收在STD库中。只要在VHDL环境中应用,可以随时调用这两个程序包中所有的内容,即在编译和综合过程中,VHDL的每一项都自动的将其包含进去了。因此在应用中不必如IEEE库那样以显示表达出来。

③WORK库:它是用户的VHDL设计的现行工作库,用于存放用

15

户设计和定义的一些设计单元和程序包,所以自动满足VHDL语言标准,在实际调用过程中一般并不需要VITAL库中程序包。

§3.3 VHDL语言的特点

VHDL语言是对逻辑电路进行描述的高级语言。他与其他高级语言相比既有相同之处也有其自身特点:

(1)VHDL是工业标准的文本格式语言

VHDL已成为一种工业标准。设计者、EDA工具的供应商以及芯片生产厂家,都要遵循这一标准。 该语言是一种文本格式的语言, ASIC的设计者在设计电路时,就像编写其他高级语言一样,用文字来表达所要设计的电路,这样能比较直观地表达设计者的设计思想,并且易于修改。

(2)VHDL语言能同时支持仿真和综合

VHDL语言是一种能够支持系统仿真的语言。事实上,ASIC成功的关键在于生产前的设计,而保证设计正确性的主要手段就是系统仿真。目前在大部分的EDA工具中,都有支持VHDL语言级仿真的工具。这样。设计者在ASIC生产前就能够知道设计的正确与否、系统的性能如何等关键问题。

(3)VHDL是一种并发执行的语言

我们知道几乎所有的高级语言的执行都是顺序的,而VHDL语言在仿真过程中的执行式并行的。这种特征符合实际逻辑电路的工作过程。

(4)VHDL的描述与工艺无关

设计者在利用VHDL描述电路时并不需要关心电路最终将在哪种工艺上实现,EDA工具可以将VHDL源代码映射道不同的工艺库上,提高了设计的可重用性。

(5)支持多种风格的描述方法

VHDL不仅支持行为级的描述。而且支持数据流及结构描述。

16

第四章 QuartusII开发系统

QuartusII是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大的可编程逻辑器件供应商之一。QuartusII在21世纪初推出,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。

§4.1 QuartusII设计流程:

1.创建工程准备工作

任何一项设计都是一项工程(Project),都要首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。此文件夹将被EDA软件默认为工作库(Work Library)。一般地,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。

建立文件夹后就可以将设计文件通过QuartusII的文本编辑器编辑并存盘,步骤如下:

(1)新建一个文件夹。打开QuartusII软件,选择File→New Project Wirard… 出现下面如图1的菜单,

图4-1 新建工程 图4-2选择文件路径

单击“NEXT”按钮,在菜单中点击“What is the working…”后面的

17

“…”选择桌面中的”我的地盘“文件夹输入要编辑文件名”YUMEN”,出现如上面图2的菜单,逐次单击“NEXT”,最后出现如图3菜单单击”Finish”按钮。

图4-3 完成工程建立

(2)输入源程序。打开QuartusII,选择File→New命令。在New窗口中的Device Design Files选项卡中选择编译文件的语言类型,这里选VHDL File选项,然后在VHDL文本编译窗口中输入一个程序。

单击保存按钮弹出如下菜单单击保存。(示意图如下图4)

图 4-4 保存文件

(3)程序运行。单击右上方的运行按钮“”,检验程序是否有

无,程序没问题的话会出现如下图5界面,点击“确定”。

18

图 4-5 检查出错地方

(4)时序仿真。再选择File→New在弹出的窗口中选择Other File中的 Vector Waveform File,示意图如下图6。点击“OK”就出现波形编辑器界面。

图 4-6选择波形文件 图 4-7选择引脚

双击Name,弹出上面图7菜单,点击Node Finder 按钮弹出如图8的菜单,点击“

”按钮,再点击“

”按钮即可在编辑器中产生所要

”和

的输入输出信号,然后给定输入信号如图9,在单击保存按钮“运行按钮“

”就可产生仿真波形如图10。

19

图4-8导入所有引脚

图 4-9 给定波形激励信号

图 4-10 波形仿真结果

§4.2 QuartusII的设计特点

(1) 最易使用的CPLD设计软件

20

QuartusII提供了易用和全面的设计环境,能够从开始到结束完成整个CPLD设计项目。

(2) QuartusII给MAX+plusII用户带来的优势

QuartusII软件是性能最高,最易于使用的CPLD设计软件。它提供了一个内置的MAX+plusII外观选项,用户无需学习一个新的用户界面,能够获得所有QuartusII软件的性能和高级功能所带来的优势。(3) 系统设计技术

Altera的QuartusII软件是第一个支持基于知识产权(IP)系统的设计软件,他包括完整、自动的定义和实施,不需要底层的硬件描述语言(HDL)或原理图。设计人员可以利用这种特性在几分钟内将他们的构想变成正常运行的系统。

21

第五章 本设计中所用到的各基本原件的程序及仿真

波形

§5.1 八位计数器

jishu8clkaaaa[7..0]inst

图5-1 八位计数器生成电路符号

Clk为输入信号,可以输入一时钟信号,aaaa[7..0]为输出信号,给定输入信号后可以输出一个八位信号。

⑴程序: library ieee;

use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity jishu8 is port(clk:in std_logic;

aaaa:out std_logic_vector(7 downto 0));

end jishu8;

architecture behav of jishu8 is

signal cqi:std_logic_vector(7 downto 0); begin process(clk) begin

if clk'event and clk='1' then cqi<=cqi+1; end if;

22

end process;

aaaa<=cqi(7 downto 0); end behav;

⑵仿真波形及产生:

图5-2 八位计数器波形仿真结果

§5.2 A_D转换器

此A-D转换器采用ADC0809其中D 为输入信号,clk为状态机工作时钟,eoc为转换状态指示,ale为八路模拟信号通道地址锁存信号,start为开始转换信号,oe为数据输出三态控制信号,lock0为观察数据锁存时钟,adda为信号通道最低位控制信号,Q为八位数据输出信号。

ADCD[7..0]CLKEOCALESTARTOELOCK0ADDAQ[7..0]inst2 图5-3 A-D转换器电路符号

23

⑴程序: LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADC IS

PORT ( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK,EOC: IN STD_LOGIC;

ALE,START,OE,LOCK0,ADDA: OUT STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ADC;

ARCHITECTURE BEHAV OF ADC IS TYPE STATES IS (ST0,ST1,ST2,ST3,ST4);

SIGNAL CURRENT_STATE,NEXT_STATE:STATES:=ST0; SIGNAL REGL:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL LOCK:STD_LOGIC; BEGIN ADDA<='1';

Q<=REGL; LOCK0<=LOCK;

COM: PROCESS(CURRENT_STATE,EOC) BEGIN

CASE CURRENT_STATE IS

WHENst0=>ale<='0';start<='0';lock<='0';oe<='0';next_state<=st1;

WHEN st1=> ale<='1';start<='1';lock<='0';oe<='0';next_state<=st2; WHEN st2=> ale<='0';start<='0';lock<='0';oe<='0'; if (eoc='1')then next_state<=st3; else next_state<=st2; end if;

WHEN st3=> ale<='0';start<='0';lock<='0';oe<='1';next_state<=st4; WHEN st4=> ale<='0';start<='0';lock<='1';oe<='1';next_state<=st0;

WHEN others=> next_state<=st0; end case;

end process com; reg: process(clk)

24

begin

if(clk'event and clk='1') then current_state<=next_state; end if;

end process reg; catch1:process(clk) begin

if lock='1'and lock'event then regl<=d; end if; end process catch1; end behav; ⑵仿真波形:

图5-4 A-D转换器波形仿真结果

§5.3 比较器

comparator8a[7..0]b[7..0]yinst1 图5-5 8路比较器电路符号

25

⑴程序: library ieee;

use ieee.std_logic_1164.all; entity comparator8 is

port(a,b:in std_logic_vector(7 downto 0); y:out std_logic); end entity;

architecture func of comparator8 is begin

process(a,b) begin

if(a>b) then y<='1'; else y<='0'; end if; end process; end func; ⑵仿真波形:

图5-6 8路比较器波形仿真结果

26

§5.4 选择器

mux2absinst3f 图5-7 选择器电路符号

⑴程序: library ieee;

use ieee.std_logic_1164.all; entity mux2 is port(a,b:in std_logic; s:in std_logic; f:out std_logic); end mux2;

architecture behavior of mux2 is begin

mux2: process(a,b,s) begin

if(s='0') then f<=a; else f<=b; end if;

end process; end behavior; ⑵仿真波形:

27

图5-8 选择器波形仿真结果

§5.5 元件组合完成电机方向转换的仿真

利用计数器和A_D转换器产生的信号在比较器的比较作用下产生输入信号PWM波形,用2个选择器组成Z/F桥选择电路实现对电机旋转方向的控制,当Z_F选择开关输入信号为高电平时,Z桥输出PWM波形信号,当Z_F选择开关输入信号为低电平时,H桥输出PWM波形信号。

元器件组合图:

5-9 元件组合

(1)当Z/F端输入低电平时,F端输出PWM波形,电机正转:

28

5-10输入低电平

5-10输入低电平后的仿真结果

(2)当Z/F输入高电平时,Z端输出PWM波形,电机反转:

29

5-10输入低电平

5-10输入高电平后的仿真结果

30

结 论

FPGA中的数字PWM控制与一般模拟PWM控制不同,用FPGA产生PWM波形,只需FPGA内部资源就可实现。本设计设计直流电机PWM驱动电路,用FPGA产生波形,用VHDL语言编写程序,实现了对直流电机的转向的控制。设计中用一A/D转换器与一八位计数器在比较器作用下产生PWM波形,用2个选择器组成H桥电路,在Z/F开关的控制作用下,通过H桥实现了对电机的转向的控。

由于时间和其他条件的影响次设计没有实现对转速的控制是最大的缺憾,另外若在H桥的输出段加一延时电路能够更好更直观的实现对电机转向控制的模拟。

31

本文来源:https://www.bwwdw.com/article/xbeg.html

Top