《可编程逻辑器件与VHDL语言课件.ppt》由会员分享,可在线阅读,更多相关《可编程逻辑器件与VHDL语言课件.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第八章第八章 可编程逻辑器件与可编程逻辑器件与VHDL语言语言第一节第一节 可编程逻辑器件概述可编程逻辑器件概述一、可编程逻辑器件的发展历史一、可编程逻辑器件的发展历史二、可编程逻辑器件的分类二、可编程逻辑器件的分类(一)按集成度分类(一)按集成度分类1低密度可编程逻辑器件低密度可编程逻辑器件LDPLD(Low Density PLD)2高密度可编程逻辑器件高密度可编程逻辑器件HDPLD(High Density PLD)(二二)按基本结构分类按基本结构分类(三三)按编程工艺分类按编程工艺分类1熔丝(熔丝(Fuse)或反熔丝()或反熔丝(Anti-Fuse)编程)编程工艺的器件工艺的器件2UV
2、EPROM编程工艺的器件编程工艺的器件3EEPROM编程工艺的器件编程工艺的器件4FLASH(闪速存储器)编程工艺的器件(闪速存储器)编程工艺的器件5SRAM编程工艺的器件编程工艺的器件(四四)按照制造工艺,还可分为双极型和按照制造工艺,还可分为双极型和MOS型型(五五)其它分类方法其它分类方法三三、可可编编程程逻逻辑辑器器件件中中信信号号连连接接关关系系的的表表示示和和门电路的惯用画法门电路的惯用画法四、与-或阵列图 第二节第二节 可编程逻辑器件可编程逻辑器件低密度可编程逻辑器件的结构示意图低密度可编程逻辑器件的结构特点对比器件名与阵列或阵列输出电路PROM固定可编程固定PLA可编程可编程固
3、定PAL可编程固定固定GAL可编程固定可编程一、一、PROM器件器件PROM器件的结构和使用方法在第七章中已详细讲述,此处不再赘述。PROM的与阵列固定,与阵列输出的乘积项全部是最小项,或阵列可编程。用PROM实现组合逻辑函数时不用化简,直接应用最小项表达式即可 例例8-1 用适当容量的PROM实现两位二进制数快速乘法器,要求画出与-或阵列图。二、可编程逻辑阵列二、可编程逻辑阵列PLA器件器件例8-2 试用组合逻辑PLA实现从四位自然二进制代码到格雷码的转换。PLA:与阵列、或阵列均可编程输入信号输出信号B3B2B1B0G3G2G1G000000000000100010010001100110
4、010010001100101011101100101011101001000110010011101101011111011111011001010110110111110100111111000三、可编程阵列逻辑PAL器件例8-3 用PAL实现三输出组合逻辑函数PAL器件:或阵列固定四、通用阵列逻辑GAL器件GAL16V8的OLMC结构图五、高密度可编程逻辑器件(五、高密度可编程逻辑器件(HDPLD)(一)现场可编程门阵列(一)现场可编程门阵列(FPGA)(二)复杂可编程逻辑器件(二)复杂可编程逻辑器件(CPLD)第三节第三节 硬件描述语言硬件描述语言VHDL的基本的基本语法语法一、硬件描
5、述语言概述一、硬件描述语言概述硬件描述语言(Hardware Description Language,HDL)是硬件设计者和电子设计自动化(Electronic Design Automation,EDA)工具之间的界面。设计者使用HDL来描述自己的设计方案(或设计要求、设计意图),并把这个描述告诉EDA工具,最后在EDA工具的帮助下进行详细设计和验证。EDA工具主要包括模拟(仿真)软件和综合软件。行为描述文件和输入信号激励作为模拟(仿真)软件的输入,待模拟(仿真)软件处理后,得到输出信号的波形图。行为描述文件和约束条件文件作为综合软件的输入,待综合软件处理后,得到网表和报告文件。(一)成为
6、(一)成为IEEE标准的两种标准的两种HDL 1VHDL2Verilog-HDL(二)(二)VHDL简介简介1描述描述2模拟的模型模拟的模型3综合的模型综合的模型(三)(三)VHDL语言的特点语言的特点1象汉语、英语一样是一种高级语言,只不过在语法、象汉语、英语一样是一种高级语言,只不过在语法、词汇方面要简单得多,专用于描述硬件。词汇方面要简单得多,专用于描述硬件。2可读性好。因为是高级语言,比逻辑符号图更易理可读性好。因为是高级语言,比逻辑符号图更易理解。解。3VHDL语言本身生命周期长。因为与工艺无关,不语言本身生命周期长。因为与工艺无关,不会因工艺的过时而使电路描述过时。会因工艺的过时而
7、使电路描述过时。4支持大规模设计的分解和已有设计的再利用。支持大规模设计的分解和已有设计的再利用。5VHDL已成为标准,得到众多已成为标准,得到众多EDA公司的支持,可公司的支持,可适用于多种工作平台。而其它输入方式与特定环境有适用于多种工作平台。而其它输入方式与特定环境有关,不能重复使用。关,不能重复使用。(四)学习(四)学习VHDL语言应注意的几个问题语言应注意的几个问题1了解了解VHDL语言模拟器是如何模拟代码的过程有助于弄清一些语言模拟器是如何模拟代码的过程有助于弄清一些VHDL语句的语义,而对语义有一个清楚地理解可使你能够精练准确地进行语句的语义,而对语义有一个清楚地理解可使你能够精
8、练准确地进行VHDL代码编写。目前常用的代码编写。目前常用的VHDL模拟软件有模拟软件有Active HDL和和Modelsim。2VHDL语言的有些构造,较多的是专用于模拟和验证而不是综合,综语言的有些构造,较多的是专用于模拟和验证而不是综合,综合软件也许会忽略掉这样的构造和规则。合软件也许会忽略掉这样的构造和规则。VHDL是基于模拟的语言,它所是基于模拟的语言,它所提供的行为描述的一切方便手段实际上都是为建立模拟模型的。提供的行为描述的一切方便手段实际上都是为建立模拟模型的。3用于模拟的模型和用于综合的模型有差别。用于模拟的模型和用于综合的模型有差别。4为综合而写的代码可以进行模拟,但不是
9、所有为模拟而写的代码可以为综合而写的代码可以进行模拟,但不是所有为模拟而写的代码可以用来综合。用来综合。5应大致了解综合软件的工作原理。目前常用的综合软件有应大致了解综合软件的工作原理。目前常用的综合软件有Synplicity公司的公司的Synplify 和和Synplify Pro软件,软件,Synopsys 公司的公司的FPGA Express软件,软件,Mentor公司的公司的 Leonardo Spectrum 软件,软件,Xilinx公司的公司的XST(Xilinx Synthesis Technology)软件。软件。6将将VHDL和和CPLD、FPGA的学习结合起来。的学习结合起
10、来。7应基本熟悉应基本熟悉CPLD、FPGA器件的逻辑资源。器件的逻辑资源。二、基本的VHDL模型 第五节第五节 基本硬件电路模块的基本硬件电路模块的VHDL模型模型一、二输入与门的一、二输入与门的VHDL描述描述ENTITY and2_gate ISPORT(a,b:IN Bit;y:OUT Bit);END and2_gate;ARCHITECTURE basic OF and2_gate IS BEGINPROCESS(a,b)BEGINy=a AND b;END PROCESS and2_behavior;END basic;二、8线3线优先编码器的VHDL描述LIBRARY IEEE
11、;USE IEEE.Std_logic_1164.ALL;ENTITY priority_encoder ISPORT(input:IN Std_logic_vector(0 TO 7);output:OUT Std_logic_vector(0 TO 2)-(2 DOWNTO 0)也可以。);END priority_encoder;ARCHITECTURE priority_encode_arch OF priority_encoder ISBEGIN PROCESS(input)BEGIN IF(input(7)=0)THEN output=000;ELSIF(input(6)=0)TH
12、EN output=100;ELSIF(input(5)=0)THEN output=010;ELSIF(input(4)=0)THEN output=110;ELSIF(input(3)=0)THEN output=001;ELSIF(input(2)=0)THEN output=101;ELSIF(input(1)=0)THEN output=011;ELSE output=111;END IF;END PROCESS;END priority_encode_arch;三、三进制计数器的VHDL描述LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE I
13、EEE.Std_logic_arith.ALL;USE IEEE.Std_logic_misc.ALL;USE IEEE.Std_logic_unsigned.ALL;ENTITY cnt3 ISPORT(clk:IN Std_logic;clr:IN Std_logic;q:BUFFER Std_logic_vector(2 DOWNTO 0);END cnt3;ARCHITECTURE cnt3_arch OF cnt3 ISBEGIN PROCESS(clk,clr)-此处为说明区,定义该进程所需的局部数据环境,只适用于该进程。可以说明数据类型、子程序、变量和常量,但是不能说明信号。BE
14、GIN -以下为顺序语句 IF clr=1THEN q=“000”;ELSIF clk=1 AND clkEvent THEN IF q=“010”THEN q=“000”;ELSE q=q+“001”;-必须打开Std_logic_unsigned包才行。因为此包中定义了对Std_logic_vector类型的加法,其他的包中没有定义。END IF;END IF;END PROCESS;END cnt3_arch;四、七段译码器的VHDL描述LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY hex2led IS PORT(hex:in Std_l
15、ogic_vector(3 downto 0);led:out Std_logic_vector(6 downto 0);END hex2led;ARCHITECTURE hex2led_arch OF hex2led ISBEGIN-HEX-to-seven-segment decoder-hex:in Std_logic_vector(3 downto 0);-led:outStd_logic_vector(6 downto 0);-segment encoding-0-5|1-6-4|2-3WITH hex SELECTled=0000110 WHEN 0001,-1 gfedcba,h
16、igh level lighting,1011011 WHEN 0010,-2 1001111 WHEN 0011,-3 1100110 WHEN 0100,-4 1101101 WHEN 0101,-5 1111101 WHEN 0110,-6 0000111 WHEN 0111,-7 1111111 WHEN 1000,-8 1101111 WHEN 1001,-9 1110111 WHEN 1010,-A 1111100 WHEN 1011,-b 0111001 WHEN 1100,-C 1011110 WHEN 1101,-d 1111001 WHEN 1110,-E 1110001
17、WHEN 1111,-F 0111111 WHEN OTHERS;-0END hex2led_arch;五、输出高电平有效的带使能端(低电平有效)的五、输出高电平有效的带使能端(低电平有效)的3-8译码器译码器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY demo1 IS PORT(A:IN STD_LOGIC_VECTOR(2 DOWNTO 0);EN :IN STD_LOGIC;Y :OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END demo1;ARCHITECTURE DEC_BEHAVE OF demo1 ISS
18、IGNAL SEL:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN SEL(0)=EN;SEL(1)=A(0);SEL(2)=A(1);SEL(3)=A(2);WITH SEL SELECT Y=00000001 WHEN 1110,00000010 WHEN 1100,00000100 WHEN 1010,00001000 WHEN 1000,00010000 WHEN 0110,00100000 WHEN 0100,01000000 WHEN 0010,10000000 WHEN 0000,11111111 WHEN OTHERS;END DEC_BEHAVE;Qua
19、rtus11.0软件使用简介软件使用简介一、使用工程向导建立工程一、使用工程向导建立工程二、建立设计文件二、建立设计文件 某工厂有某工厂有A、B、C三个车间,各需电力三个车间,各需电力10kW,由厂,由厂变电所的变电所的X、Y两台变压器供电。其中两台变压器供电。其中X变压器的功变压器的功率为率为13kW,Y变压器的功率为变压器的功率为25kW。为合理供电,。为合理供电,试用试用VHDL语言设计一个供电控制电路。语言设计一个供电控制电路。解:设三个输入变量分别为A、B、C,输出函数分别为X、Y。控制电路实体顶层图library IEEE;use IEEE.STD_LOGIC_1164.ALL;e
20、ntity ABCtoXY is port(A,B,C:in std_logic;X,Y:out std_logic);end ABCtoXY;architecture ctrl of ABCtoXY issignal sel:std_logic_vector(2 downto 0);beginsel=A&B&C;X=1 when sel=”001”else1 when sel=”010”else1 hen sel=”100”else1 when sel=”111”else0;Y=1 when sel=”011”else1 when sel=”101”else1 when sel=”110”else1 when sel=”111”else0;end ctrl;三、综合三、综合点击Processing/Start Compilation菜单,完成对设计文件的综合。ModelSim 6.6d Altera 仿真软件四、仿真四、仿真五、下载五、下载根根据据报报告告文文件件,在在下下载载板板上上连连接接连连线线,点点击击Tools/Programmer出出现现如如下下画画面面,点点击击Start按扭,即可下载。按扭,即可下载。ALTERA公司的DE0开发下载实验板cyclone 3 系列芯片EP3C16F484C6