数字逻辑第五章_第1页
数字逻辑第五章_第2页
数字逻辑第五章_第3页
数字逻辑第五章_第4页
数字逻辑第五章_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第第5 5 5章章章第第 5章章第一节第一节 PLD的基本概念的基本概念第二节第二节 现场可编程门阵列现场可编程门阵列 FPGA第三节第三节 在系统可编程在系统可编程 ISP第四节第四节 可编程逻辑的原理图方式设计可编程逻辑的原理图方式设计第五节第五节 可编程逻辑的可编程逻辑的VHDL文本方式设计文本方式设计可编程逻辑可编程逻辑可编程逻辑可编程逻辑器件可编程逻辑器件 PLDPROMPLAGAL与阵列固定或与阵列固定或阵列可编程阵列可编程与阵列或阵列与阵列或阵列均可编程均可编程PAL通用逻辑阵列通用逻辑阵列与阵列可编程与阵列可编程或阵列固定或阵列固定CPLD学习指导学习指导P169FPGAFi

2、eld Programmable Gate Array复杂可编程逻复杂可编程逻辑器件辑器件Programmable Array LogicGeneric Array Logic“与或与或”两级结构器两级结构器件件最终逻辑结构最终逻辑结构和功能由用户和功能由用户编程决定。编程决定。特点特点PLD发展过程发展过程Programmable Logic Device现场可编程现场可编程门阵列门阵列数字逻辑电路中一定包含数字逻辑电路中一定包含逻辑器件逻辑器件逻辑器件逻辑器件可编程逻辑器件可编程逻辑器件固定逻辑器件固定逻辑器件可编程阵列(与)可编程阵列(与)可编程阵列(与) 一、可编程阵列一、可编程阵列由

3、与或阵列组成由与或阵列组成PLD结构特点结构特点ABX1 BAX2 BAX3 PLD输入缓冲门输入缓冲门三态门三态门XXX? 1、与阵列、与阵列输出是输入变输出是输入变量的与函数量的与函数可编程阵列(或)可编程阵列(或)可编程阵列(或) 2、或阵列、或阵列输出是输入变输出是输入变量的或函数量的或函数CBAX1 CBAX2 CBAX3 可编程阵列(与或)可编程阵列(与或)可编程阵列(与或) 4、可编程连接技术(自学)、可编程连接技术(自学)PLA与阵列可编程与阵列可编程或阵列可编程或阵列可编程PLDPLDPLD实现组合逻辑例题实现组合逻辑例题实现组合逻辑例题NOB3 B2 B1 B0G3 G2

4、G1 G000000000010001000120010001130011001040100011050101011160110010170111010081000110091001110110101011111110111110121100101013110110111411101001151111100033BG 23232BBBBG 12121BBBBG 01010BBBBG 例例00011110000412801151391137151110261410B3B2B1B0G311111111自然二进制码转换位循环二进制码用自然二进制码转换位循环二进制码用PLA与或逻辑实现。与或逻辑实现。

5、PLDPLDPLD类型类型类型 5、PLD类型类型按照容量按照容量PLD分为分为简单可编程逻辑器件简单可编程逻辑器件SPLD复杂可编程逻辑器件复杂可编程逻辑器件CPLDIC管脚数:管脚数:2428IC管脚数:管脚数:44160简单可编程逻辑器件简单可编程逻辑器件SPLD的内部结构的内部结构与阵列与阵列固定固定或阵列或阵列可编程可编程输输 入入输输 出出(a) PROM与阵列与阵列可编程可编程或阵列或阵列固定固定输输 入入输输 出出(c) PAL与阵列与阵列可编程可编程或阵列或阵列可编程可编程输输 入入输输 出出(b) PLA与阵列与阵列可编程可编程或阵列或阵列固定固定输输 入入输输 出出(d)

6、 GLA一次可编程只读存储器一次可编程只读存储器可编程阵列逻辑可编程阵列逻辑可编程逻辑阵列可编程逻辑阵列通用阵列逻辑通用阵列逻辑内部包含逻内部包含逻辑宏单元辑宏单元(触发器)(触发器)PLDPLDPLD类型类型类型复杂可编程逻辑器件复杂可编程逻辑器件CPLD的内部结构的内部结构I/OI/OI/OI/OI/OI/O互互 连连 总总 线线PLAPLD能做什么呢?能做什么呢? 可以毫不夸张的讲,可以毫不夸张的讲,PLD能完成任何数字器件的功能,能完成任何数字器件的功能,上至高性能上至高性能CPU,下至简单的,下至简单的74电路,都可以用电路,都可以用PLD来实现。来实现。PLD如同一张白纸或是一堆积

7、木,工程师可以通过传统的原如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法,或是硬件描述语言自由的设计一个数字系统。理图输入法,或是硬件描述语言自由的设计一个数字系统。 通过软件仿真,可以事先验证设计的正确性。在通过软件仿真,可以事先验证设计的正确性。在PCB完完成以后,还可以利用成以后,还可以利用PLD的在线修改能力,随时修改设计而的在线修改能力,随时修改设计而不必改动硬件电路。不必改动硬件电路。 使用使用PLD来开发数字电路,可以大大缩短设计时间,减来开发数字电路,可以大大缩短设计时间,减少少PCB面积,提高系统的可靠性。面积,提高系统的可靠性。 PLD的这些优点使得的这些优点使

8、得PLD技术在技术在90年代以后得到飞速的发展,同时也大大推动了年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言(软件和硬件描述语言(HDL)的进步。的进步。提问提问提问已知一个组合逻辑已知一个组合逻辑可以采用几种电路形式来实现?可以采用几种电路形式来实现?BACAABCY 1、直接用与门、或门、非门。、直接用与门、或门、非门。2、用中规模组合逻辑电路:、用中规模组合逻辑电路:数据选择器、译码器。数据选择器、译码器。3、用、用PROM。CBABCACBACABABCY BAYCA0A1D1D0D2D3BA11ST0YYC0数数据据选选择择器器ABC0Y1Y3Y2Y4Y5Y6Y7

9、YG1G2AG2BBAC“1”3:8译译码码器器Y或阵列的容量是或阵列的容量是8。CBAY4、用、用PLA。CBAY现场可编程门阵列现场可编程门阵列现场可编程门阵列 一、一、FPGA的结构的结构FPGA -Field Programmable Gate Array特点特点不再受内部结构的限制,可以设计任何复杂的逻辑电路不再受内部结构的限制,可以设计任何复杂的逻辑电路三个基本部分组成:三个基本部分组成:(1)可组态逻辑模块可组态逻辑模块CLB(2) 输入输出模块输入输出模块I/OB(3)可编程连线可编程连线PI和由它组和由它组成的编程开关阵列成的编程开关阵列PSM。Altera EPF 10K1

10、0 dsf10k.pdfFPGAFPGAFPGA结构结构结构 1、可组态逻辑模块、可组态逻辑模块CLB108108个个CLB 可用门达到可用门达到25万门以上万门以上* 可实现组合逻辑电路和时序逻辑电路可实现组合逻辑电路和时序逻辑电路* 逻辑函数发生器逻辑函数发生器( Configurable Logic Block )CLBCLBCLB结构结构结构XC2064的的CLB结构结构FPGAFPGAFPGA结构结构结构 3、可编程连线、可编程连线PI及开关阵列及开关阵列PSM* 完成完成CLB之间逻辑连接并将信息传递到之间逻辑连接并将信息传递到I/OB* 开关阵列开关阵列PSM提供提供20种转换方

11、式种转换方式* 将将CLB的输出以接力方式传送到芯片任意位置的输出以接力方式传送到芯片任意位置1265784312657843 2、输入输出模块、输入输出模块I/OB* 提供外部封装引脚和内部信息的接口电路提供外部封装引脚和内部信息的接口电路* 通过编程可以分别组态为输入引脚、通过编程可以分别组态为输入引脚、输出引脚和双向引脚输出引脚和双向引脚* 可控制速率、降低功耗可控制速率、降低功耗( Input/Output Block )( Programmable Interconnect )( Programmable Switch Matrix )XC2064XC2064的的I/OBI/OB电路

12、电路十大十大十大PLDPLDPLD公司公司公司排名公司市场占有率1AlteraAltera30.130.12XilinxXilinx29.029.03VantisVantis11.111.14LatticeLattice11.011.05ActelActel7.07.06LuccentLuccent4.34.37CypressCypress2.22.28AtmelAtmel2.12.19PhilipsPhilips1.41.410QuicklogicQuicklogic1.21.2十大十大PLD公司公司ISPISPISP逻辑器件特点逻辑器件特点逻辑器件特点常规常规PLD开发过程开发过程逻辑设计

13、逻辑设计选择器件选择器件PLD编程编程(下载)(下载)PLD测试测试将器件插将器件插入印制板入印制板编编 制制JEDEC文件文件熔丝图熔丝图文件文件( In System Programming )在系统编程(在系统编程(ISP):):用户在自己设计的用户在自己设计的目标系统中或线路板上为重构逻辑而对目标系统中或线路板上为重构逻辑而对逻辑器件进行编程或反复改写的能力。逻辑器件进行编程或反复改写的能力。熔丝图文件熔丝图文件熔丝图文件以码点形式表示以码点形式表示阵列的内容:阵列的内容:“0”表示该位置的可编表示该位置的可编程单元应予接通,程单元应予接通,“1”表示该位置的表示该位置的可编程连接应予

14、断可编程连接应予断开。开。ISPISPISP逻辑器件特点逻辑器件特点逻辑器件特点常规常规PLD开发过程开发过程逻辑设计逻辑设计选择器件选择器件PLD编程编程(下载)(下载)PLD测试测试将器件插将器件插入印制板入印制板编编 制制JEDEC文件文件采用采用ISP技术的技术的PLD开发过程开发过程逻辑设计及编程逻辑设计及编程选择器件选择器件编译、仿真编译、仿真下载、使用下载、使用将器件插将器件插入印制板入印制板编编 制制JEDEC文件文件编编程程器器上上进进行行( In System Programming )ABLE语言语言VHDL语言语言Verilog HDL原理图原理图10321032103

15、2管脚管脚管脚 定义定义定义查资料查资料ISP逻辑器件结构逻辑器件结构ispLSI1032ISPISPISP逻辑器件结构逻辑器件结构逻辑器件结构它以固定方式将所有内部逻辑联系在一起它以固定方式将所有内部逻辑联系在一起1、全局布线区、全局布线区GRPP131巨块、全巨块、全局布线区局布线区组成组成通用总线通用总线ispLSI1032巨块巨块巨块巨块通用逻辑块通用逻辑块GLB输出布线输出布线ORPI/O引脚及专用输入引脚及专用输入 一、一、ispLSI的体系结构的体系结构ISPISPISP的通用逻辑块的通用逻辑块的通用逻辑块是是ispLSI最基本的逻辑单元最基本的逻辑单元2、通用逻辑块、通用逻辑块

16、GLB特点特点乘积项共享阵列乘积项共享阵列A0 A7、 B0 B7、 C0 C7、 D0 D7=32块块ISPISPISP的的的GLBGLBGLB标准组态标准组态标准组态GLBGLB的的5 5种组态种组态最多可将最多可将2020个乘积项集中于一个触发器使用个乘积项集中于一个触发器使用1 1 标准组态标准组态ISPISPISP的的的GLBGLBGLB标准组态例子标准组态例子标准组态例子ISPISPISP的的的GLBGLBGLB高速组态高速组态高速组态4 4个或门跨过乘积项共享阵列(个或门跨过乘积项共享阵列(PTSAPTSA)及异或门直接)及异或门直接与与4 4个触发器相连,以提高速度支持高速计数

17、器。个触发器相连,以提高速度支持高速计数器。2 2 高速直通组态高速直通组态每个或门只有每个或门只有4 4个乘积项,与个乘积项,与触发器一一对应,不能任意触发器一一对应,不能任意调用。调用。ISPISPISP的的的GLBGLBGLB异或组态异或组态异或组态3 3 异或逻辑组态异或逻辑组态4 4个异或门的一个输入分别是乘积项个异或门的一个输入分别是乘积项0 0、4 4、8 8、1313,另一个则从另一个则从4 4个或门输出中任意组合。个或门输出中任意组合。可实现计数器、可实现计数器、比较器和比较器和ALU。可将可将D触发器转换为触发器转换为JK、T触发器。触发器。ISPISPISP的的的GLBG

18、LBGLB单乘积项组态单乘积项组态单乘积项组态4 4 单乘积项组态单乘积项组态 将乘积项将乘积项0 0、4 4、1010、1313分别跨越或门、分别跨越或门、PTSAPTSA直接输直接输出。速度最快。出。速度最快。ISPISPISP的的的GLBGLBGLB多模式组态多模式组态多模式组态5 5 多模式组态多模式组态上述上述4 4种组态可以在同一个种组态可以在同一个GLBGLB中混合使用。中混合使用。ISPISPISP的输出布线的输出布线的输出布线ORPORPORP介于通用逻辑块介于通用逻辑块GLB和输入输出单元和输入输出单元IOC之间之间3、输出布线区、输出布线区ORP可编程可编程ISPISPI

19、SP的输出布线的输出布线的输出布线ORPORPORP编程编程编程对对ORP编程使编程使GLB与与I/O相连:相连:ISPISPISP的输出布线的输出布线的输出布线ORPORPORP跨过跨过跨过跨过跨过ORP使使GLB与与I/O直接相连:直接相连:高速高速ISPISPISP的输入输出单元的输入输出单元的输入输出单元IOCIOCIOC4、输入输出单元、输入输出单元 IOC*MUX1控制控制IOC处于专用输出组态、专用输入组态、处于专用输出组态、专用输入组态、I/O组态。组态。 *MUX2和和MUX3用来选择信号的来源和输出极性。用来选择信号的来源和输出极性。 *MUX4用来选择寄存器输入还是缓冲器

20、输入。用来选择寄存器输入还是缓冲器输入。*MUX5和和MUX6用来选择时钟信号和调整时钟信号的极性。用来选择时钟信号和调整时钟信号的极性。 * IOC中的触中的触发器有两种工作发器有两种工作方式:一是锁存方式:一是锁存方式,触发器在方式,触发器在时钟信号低电平时钟信号低电平时锁存;二是寄时锁存;二是寄存器方式,在时存器方式,在时钟信号上升沿时钟信号上升沿时将信号打入。两将信号打入。两种方式通过种方式通过R/L端编程来确定。端编程来确定。ISPISPISP的输入输出单元的输入输出单元的输入输出单元IOCIOCIOC输入输出单元输入输出单元 IOC共有八种组态共有八种组态输出使能的公共乘积项输出使

21、能的公共乘积项输出使能的公共乘积项OEOEOE用于输出使能的公共乘积项用于输出使能的公共乘积项OE,是本巨块中某个,是本巨块中某个GLB的的19号乘积号乘积项产生的。利用它作为本巨块所有项产生的。利用它作为本巨块所有16个个I/O单元公用的单元公用的OE信号。信号。巨块的输出使能控制:巨块的输出使能控制:IOC的的MUX1巨块巨块巨块5、巨块、巨块 * 8个个GLB* 16个个I/O单元单元* 2个直接输入个直接输入* 输出布线区输出布线区C0时钟分配网络时钟分配网络时钟分配网络CDNCDNCDN6、时钟分配网络、时钟分配网络CDNY0Y1Y2Y3是外部输入的时钟信号是外部输入的时钟信号CDN

22、可以产生五个全局时钟可以产生五个全局时钟将将GLB”C0”的输出作为时钟的输出作为时钟输入,以便产生内部时钟。输入,以便产生内部时钟。P131 图图5.13 右下角右下角信号流程信号流程信号流程I/O单元单元全局布线全局布线通用逻辑单元通用逻辑单元输出布线输出布线I/O单元单元输入信号输入信号输出信号输出信号信号流程信号流程在系统编程原理和方法在系统编程原理和方法在系统编程原理和方法自学自学正常模式与编辑模式由谁控制?正常模式与编辑模式由谁控制?数据的写入方式?数据的写入方式?编程接口信号的关系?编程接口信号的关系?对某一行编程的三个步骤?对某一行编程的三个步骤?多芯片的编程方法?多芯片的编程

23、方法?ispENSDISDOMODESCLKP137 二、在系统编程原理二、在系统编程原理原理图方式设计原理图方式设计原理图方式设计可编程逻辑设计可编程逻辑设计 一、可编程逻辑设计流程图一、可编程逻辑设计流程图 设计库设计库设计输入设计输入* 原理图原理图* HDL设计输入设计输入* 原理图原理图* HDL功能模拟功能模拟 综合综合 实现实现 时序模拟时序模拟 器件编程器件编程 (下载)(下载)编译器编译器所有的设计过程依赖于所有的设计过程依赖于CAD-(Computer aided design )模拟:模拟:先通过模拟器将设计进行仿真。先通过模拟器将设计进行仿真。实现:实现:将综合后的逻辑

24、放置到一个逻辑将综合后的逻辑放置到一个逻辑器件之中的过程,同时实现合理布线。器件之中的过程,同时实现合理布线。综合:综合:把高层次的描述转换成底层电把高层次的描述转换成底层电路,形成网表。路,形成网表。时序模拟:时序模拟:可以对设计的逻辑功能及时可以对设计的逻辑功能及时序进行验证。序进行验证。电子设计自动化电子设计自动化EDA-(Electronics Design Automation )下载过程下载过程原理图输入原理图输入原理图输入 二、原理图输入二、原理图输入CAD工具提供一系列表示不同输入工具提供一系列表示不同输入端数的各种类型门的图形符号。端数的各种类型门的图形符号。元件库元件库x3

25、x1x2f演示原理图输入过程演示原理图输入过程./ylt/ylt.bdf直接从元件库中调直接从元件库中调用器件进行设计。用器件进行设计。P156 9、10、13、14、15、16作业作业要求:提交编译无错误的源代码要求:提交编译无错误的源代码 LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY example1 IS PORT ( x1, x2, x3 : IN BIT ; f : OUT BIT ) ; END example1 ; ARCHITECTURE LogicFunc OF example1 IS BEGIN f = (x1 AN

26、D x2) OR (NOT x2 AND x3) ; END LogicFunc ; VHDLVHDLVHDL语言结构语言结构语言结构可编程逻辑的可编程逻辑的VHDL文本设计方式文本设计方式 一、一、VHDL语言结构语言结构库库实体实体结构体结构体每个部分通过关每个部分通过关键字引导出来键字引导出来描述逻辑功能描述逻辑功能引用库中程序包引用库中程序包/example ch1-1.cpp# include Void main () cout “Im a student.n” ; x3x1x2fVHDL结构结构VHDLVHDLVHDL语言结构组成语言结构组成语言结构组成库库程序包程序包实体实体结构

27、体结构体配置配置存放已编译的实体、存放已编译的实体、结构体、程序包和结构体、程序包和配置配置存放各种设计模块存放各种设计模块能共享的数据类型、能共享的数据类型、常数、程序等常数、程序等描述所设计硬件系描述所设计硬件系统的外部接口信号统的外部接口信号描述所设计硬描述所设计硬件系统的内部件系统的内部结构和功能结构和功能用来从库中选取用来从库中选取所需单元来组成所需单元来组成新系统新系统实体说明、结构体格式实体说明、结构体格式实体说明、结构体格式ENTITY IS 类属参数说明类属参数说明 ; 端口说明部分端口说明部分 ; 实体说明部分实体说明部分 ;END ; ARCHITECTURE OF IS

28、 结构体说明部分结构体说明部分 ;BEGIN ;END ; ;实体说明格式实体说明格式结构体格式结构体格式ENTITY half_adder IS PORT ( A,B : IN std_logic; Co : OUT std_logic; S : OUT std_logic);END half_adder; ARCHITECTURE rtl OF half_adder IS SIGNAL tmp1,tmp2 : std_logic;BEGIN tmp1 = A OR B; tmp2 = A NAND B; Co = NOT tmp2; S = tmp1 AND tmp2;END rtl;端口

29、说明部分端口说明部分ABSCOABSCotmp1tmp2实体名一致实体名一致实体说明、结构体格式实体说明、结构体格式实体说明、结构体格式ENTITY half_adder IS PORT ( A,B : IN std_logic; Co : OUT std_logic; S : OUT std_logic);END half_adder; ARCHITECTURE rtl OF half_adder IS BEGIN S = A XOR B; Co = A AND B; END rtl;ABSCOABSCo0000011010101101ABSCo半加器半加器半加器演示半加器演示LIBRARY

30、 ieee ;USE ieee.std_logic_1164.all ;对象及数据类型对象及数据类型对象及数据类型1、VHDL语言的三大对象语言的三大对象常量常量(constant)信号信号(signal)变量变量(variable)2、VHDL语言的数据类型语言的数据类型* 标准数据类型标准数据类型* 用户定义的数据类型用户定义的数据类型信号信号=表达式表达式;变量变量:=表达式表达式;数据类型数据类型含义含义备注备注例子例子整数整数(integer)整数 -(231-1) + (231-1)+136,-457实数实数(real)实数 -1038 +1038一定有小数点-1.0,+2.5e2

31、3位位(bit)逻辑0或1 1, 0位矢量位矢量(bit_vector) 位矢量双引号括起来的一组数“00101”布尔量布尔量(boolean)逻辑假或真只有真(true)和假(false)字符字符(character)ASCII字符Character用单引号括起来a, b, c时间时间(time)整数和时间单位fs,ps,ns,us,ms,sec,min,hr20us, 32ns错误等级错误等级(SEVERITYLevel)VHDL程序在编译、仿真、综合过程中的工作状态note,warning,error,failurenote,warning,可以忽略,error,failure不可以忽略

32、自然数自然数(natural)和和正整数正整数(positive)整数的子集natural,positive字符串字符串(string)字符矢量双引号括起来的字符序列“START” 二、对象及数据类型二、对象及数据类型硬件电路中的一条硬件连接线硬件电路中的一条硬件连接线需要遵循的原则是需要遵循的原则是:先定义先定义,后使用。后使用。立即赋值立即赋值延迟赋值延迟赋值常用数据类型常用数据类型常用数据类型在在IEEE1164标准的标准的“std-logic-1164”程序包中程序包中, ,可枚举类型可枚举类型std - logic的定义格式如下所示的定义格式如下所示: : * IEEE标准数据类型标

33、准数据类型标准逻辑位标准逻辑位 std-logic 数据类型数据类型标准逻辑矢量标准逻辑矢量 std-logic-vector数据类型数据类型TYPE std logic IS (U, -Uninitialized X, -ForcingUnknown 0,-Forcing0 1,-Forcing1 Z,-HighImpedance W,-WeakUnknown L,-Weak0 H,-Weak1 ,-Dontcare );初始值初始值不定不定01高阻高阻弱信号不定,未知弱信号不定,未知弱信号弱信号0弱信号弱信号1不可能情况不可能情况 九值逻辑系统九值逻辑系统用户定义的数据类型用户定义的数据类

34、型并行描述语并行描述语并行描述语句句句- - -进程语句进程语句进程语句VHDL语言程序的结构体中既存语言程序的结构体中既存在并行语句又存在顺序语句。在并行语句又存在顺序语句。描述一组并发行为,它是并发执描述一组并发行为,它是并发执行的,与程序的书写顺序无关。行的,与程序的书写顺序无关。描述一组严格顺序执行的行为。描述一组严格顺序执行的行为。与程序的书写顺序有关。与程序的书写顺序有关。 三、并行描述语句的格式三、并行描述语句的格式 PROCESS 敏感信号表敏感信号表 进程语句说明部分进程语句说明部分 ; BEGIN ; END PROCESS 一个结构体可以包括一个或多个进程语句,进程内部的

35、语句是一个结构体可以包括一个或多个进程语句,进程内部的语句是顺序语句,而结构体的各个进程语句之间是一组并发行为。顺序语句,而结构体的各个进程语句之间是一组并发行为。进程进程语句语句控制控制顺序语句位顺序语句位于程序的那于程序的那一部分?一部分?1、进程语句、进程语句进程语句并发执行进程语句并发执行!由顺序语句构成:由顺序语句构成:IF语句语句CASE语句语句LOOP语句语句敏感信号的值发生改变,敏感信号的值发生改变,能够引起进程语句执行。能够引起进程语句执行。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY gate IS PORT (A,B :

36、IN std_logic; X,Y,Z : OUT std_logic);END gate; ARCHITECTURE behaveOF gate IS BEGIN X = A AND B; Y = A OR B; Z = A XOR B;END behave;并发信号赋值语句并发信号赋值语句并发信号赋值语句并发赋值语句在结构体中是并行执行的,并发赋值语句在结构体中是并行执行的,他们的执行与书写顺序无关。他们的执行与书写顺序无关。“ = ”2、并发信号赋值语句、并发信号赋值语句一条并发信号赋值语句一条并发信号赋值语句与一个含有信号赋值语与一个含有信号赋值语句的进程等价。句的进程等价。LIBRA

37、RY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY gate_circuits IS PORT (A,B : IN std_logic; X,Y,Z : OUT std_logic);END gate_circuits; ARCHITECTURE behaveOF gate_circuits IS BEGIN p1:PROCESS(A,B) BEGIN X = A AND B; END PROCESS p1; p2:PROCESS(A,B) BEGIN Y = A OR B; END PROCESS p2; p3:PROCESS(A,Bb) BEGIN Z =

38、 A XOR B; END PROCESS p3 END behave;Z = A XOR B;Y = A OR B; X = A AND B ;与顺序与顺序无关无关王振红王振红p25条件信号赋值语句条件信号赋值语句条件信号赋值语句根据不同条件将不同的表达式赋值给目标信号。根据不同条件将不同的表达式赋值给目标信号。3、条件信号赋值语句、条件信号赋值语句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY and_gate IS PORT (a,b : IN std_logic; x : OUT std_logic);END and_gate; ARCH

39、ITECTURE rtl OF and_gate IS BEGIN x = 0 WHEN a=0 AND b=0 ELSE 0 WHEN a=0 AND b=1 ELSE 0 WHEN a=1 AND b=0 ELSE 1;END rtl;目标信号目标信号 = 表达式表达式1 when 条件条件1 else 表达式表达式2 when 条件条件2 else 表达式表达式n-1 when 条件条件n-1 else 表达式表达式n;王振红王振红p26LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY andgate IS PORT (a,b : IN st

40、d_logic; x : OUT std_logic);END andgate; ARCHITECTURE rtl OF andgate IS BEGIN PROCESS (a,b) BEGIN IF (a=0 AND b=0 )THEN x = 0 ELSIF (a=0 AND b=0 )THEN x = 0 ELSIF (a=0 AND b=0 )THEN x = 0 ELSE x = 1 END IF; END PROCESSEND rtl;等价的进程语句等价的进程语句功能描述:功能描述:二输入与门二输入与门选择信号赋值语句选择信号赋值语句选择信号赋值语句根据选择条件的不同而将不根据选择

41、条件的不同而将不同表达式赋给目标信号。同表达式赋给目标信号。4、选择信号赋值语句、选择信号赋值语句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY mux4 IS PORT (d0,d1,d2,d3 : IN std_logic; sel: IN std_logic_vector(1 downto 0); q : OUT std_logic);END mux4; ARCHITECTURE rtl OF mux4 IS BEGIN WITH sel SELECT q = d0 WHEN “00”, d1 WHEN “01”, d2 WHEN “10”

42、, d3 WHEN OTHER;END rtl;with 表达式表达式 select 目标信号目标信号 =表达式表达式1 when 选择条件选择条件1, =表达式表达式2 when 选择条件选择条件2, =表达式表达式n when 选择条件选择条件n,王振红王振红p28功能描述:功能描述:四选一电路。四选一电路。位矢量位矢量顺序描述语句顺序描述语句顺序描述语句if if if 四、顺序描述语句四、顺序描述语句* if语句语句if 条件条件1 then 第一组顺序语句;第一组顺序语句;elsif 条件条件2 then 第二组顺序语句第二组顺序语句;elsif 条件条件n then 第第n组顺序语

43、句组顺序语句;else 第第n+1组顺序语句组顺序语句;end if;if 条件条件 then 顺序语句顺序语句;end if;if 条件条件 then 顺序语句顺序语句;else 顺序语句顺序语句;end if;LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY mux4 IS PORT (d0 : IN std_logic_vector(3 downto 0); d1 : IN std_logic_vector(3 DOWNTO 0); d2 : IN std_logic_vector(3 DOWNTO 0); d3 : IN std_logic

44、_vector(3 DOWNTO 0); sel : IN std_logic_vector(1 DOWNTO 0); q : OUT std_logic_vector(3 DOWNTO 0);END mux4;ARCHITECTURE rtl OF mux4 ISBEGIN PROCESS(d0,d1,d2,d3,sel) BEGIN IF (sel = 00) THEN q = d0; ELSIF (sel = 01) THEN q = d1; ELSIF (sel = 10) THEN q = d2; ELSE q q q q q q 一组顺序语句;一组顺序语句; when 条件表达式的

45、值条件表达式的值=一组顺序语句;一组顺序语句;end case;顺序描述语句顺序描述语句顺序描述语句looplooploop* loop语句语句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY vector_to_int IS PORT (input : IN std_logic_vector(7 DOWNTO 0); flag : OUT boolean; q : OUT integer);END vector_to_int;ARCHITECTURE behave OF vector_to_int ISBEGIN PROCESS(input) V

46、ARIABLE tmp : integer := 0; BEGIN flag = false; FOR i IN 7 DOWNTO 0 LOOP tmp := tmp * 2; IF (input(i)= 1) THEN tmp := tmp +1; ELSIF (input(i)/= 0) THEN flag = true; END IF; END LOOP; q = tmp; END PROCESS;END behave;循环标号:循环标号:for 循环变量循环变量 in 范围范围 loop 顺序处理语句;顺序处理语句; end loop 循环标号;循环标号;* for loop语句语句功

47、能描述:功能描述:将输入端口将输入端口input送来的矢量转换成整数。送来的矢量转换成整数。假假中间变量中间变量顺序描述语句顺序描述语句顺序描述语句looplooploopLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY logic_and IS PORT (input : IN std_logic_vector(7 DOWNTO 0); q : OUT std_logic);END logic_and;ARCHITECTURE behave OF logic_and ISBEGIN PROCESS(input) VARIABLE tmp : st

48、d_logic; VARIABLE i : integer; BEGIN tmp := 1; i := 0; WHILE (i8) LOOP tmp := tmp AND input(i); i :=i+1; END LOOP; q = tmp; END PROCESS;END behave;循环标号:循环标号:while 条件表达式条件表达式 loop 顺序处理语句;顺序处理语句; end loop 循环标号;循环标号; * while loop语句语句功能描述:功能描述:对输入端口对输入端口inputinput送来的送来的位矢量各位进行逻辑与操作,当输入位矢量各位进行逻辑与操作,当输入in

49、putinput位矢量有一个位矢量有一个0 0时输出时输出q q为为0 0,输,输入入inputinput位矢量全为位矢量全为1 1时输出时输出q q为为1 1。条件满足时执行循条件满足时执行循环体内的语句。环体内的语句。结构体的三种描述结构体的三种描述结构体的三种描述( ( (数据流描述数据流描述数据流描述) ) ) 五、结构体的三种描述方式五、结构体的三种描述方式数据流描述方式数据流描述方式结构描述方式结构描述方式行为描述方式行为描述方式ABCinSCo1、数据流描述方式、数据流描述方式LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY full

50、_adder IS PORT (A,B : IN std_logic; Cin : IN std_logic; Co : OUT std_logic; S : OUT std_logic);END full_adder; ARCHITECTURE rtl OF full_adder IS SIGNAL tmp1,tmp2 : std_logic; BEGIN tmp1 = A XOR B; tmp2 = tmp1 AND Cin; S = tmp1 XOR Cin; Co = tmp2 OR (A AND B);END rtl;ABCinCOS描述从输入到输描述从输入到输出信号的走向出信号的走

51、向tmp2tmp1结构描述方式结构描述方式结构描述方式2、结构描述方式、结构描述方式ABSCO半加器半加器多层次设计中,通过调用库中的元件或是已设多层次设计中,通过调用库中的元件或是已设计好的模块来完成设计实体功能的描述。计好的模块来完成设计实体功能的描述。LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY half_adder IS PORT ( A,B : IN std_logic; Co : OUT std_logic; S : OUT std_logic);END half_adder; ARCHITECTURE rtl OF half_ad

52、der IS SIGNAL tmp1,tmp2 : std_logic;BEGIN tmp1 = A OR B; tmp2 = A NAND B; Co = NOT tmp2; S = tmp1 AND tmp2;END rtl;书书VHDL语言程序设计语言程序设计P44LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY or_gate IS PORT ( a,b : IN std_logic; c : OUT std_logic);END or_gate; ARCHITECTURE rtl OF or_gate ISBEGIN c A,B=B, S

53、=tmp1,Co=tmp2); U1: half_adder PORT MAP (A=tmp1,B=Cin,S=S, Co=tmp3); U2: or_gate PORT MAP (a=tmp3,b=tmp2,c=Co);END structure;ABStmp3Cintmp1tmp2COU0U1U2* SIGNAL用来描述组件间的连接信号用来描述组件间的连接信号*用组合语句用组合语句COMPONENT调用已有调用已有组件。组件。* PORT MAP语句将设计的端口名称替语句将设计的端口名称替换为被调用组件的端口名称换为被调用组件的端口名称2、结构描述方式、结构描述方式行为描述方式行为描述方式

54、行为描述方式LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY full_adder IS PORT (A,B, Cin : IN std_logic; Co, S : OUT std_logic;END full_adder; ARCHITECTURE behave OF full_adder ISBEGIN PROCESS(A,B,Cin) VARIABLE n : integer RANGE 0 TO 3; CONSTANT S_vector : std_logic_vector(0 TO 3) :=0101; CONSTANT Co_vect

55、or : std_logic_vector(0 TO 3) :=0011; BEGIN n := 0; IF (A =1) THEN n := n+1; END IF; IF (B =1) THEN n := n+1; END IF; IF (Cin =1) THEN n := n+1; END IF; S = S_vector(n); Co = Co_vector(n); END PROCESS;END behave;n是对是对A、B、Cin三个变三个变量中量中1的个数的记录。的个数的记录。A B Cin中中“1”的个数的个数SCO000110201311ABCinSCO0000000110

56、010100110110010101011100111111全加器真值表全加器真值表3、行为描述方式、行为描述方式常量常量组合逻辑设计组合逻辑设计组合逻辑设计- - -多输入简单门多输入简单门多输入简单门 六、六、VHDL的组合逻辑设计的组合逻辑设计 1、多输入简单门电路、多输入简单门电路ABCYABCY00000010010001101000101011001111LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY and3_gate IS PORT (a,b,c : IN std_logic; y : OUT std_logic);END and

57、3_gate;ARCHITECTURE behave_arc OF and3_gate ISBEGIN PROCESS(a,b,c) BEGIN y y y y y y y y y y = X; END CASE; END PROCESS;END rtl_arc;CASE语句语句组合逻辑设计组合逻辑设计组合逻辑设计_ _ _三态门三态门三态门 2、三态门电路、三态门电路DINENDOUT0Z010111DINENDOUTLIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY tri_gate IS PORT (din,en : IN std_logic;

58、 dout : OUT std_logic);END tri_gate;ARCHITECTURE behave_arc OF tri_gate ISBEGIN PROCESS (din,en) BEGIN IF (en = 1) THEN dout = din; ELSE dout = Z; END IF; END PROCESS;END behave_arc;IF_THEN_ELSE语句语句LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY bidir_bus_buff8 IS PORT (a,b : INOUT std_logic_vector(

59、7 DOWNTO 0); en,dr : IN std_logic;END bidir_bus_buff8;ARCHITECTURE rtl_arc OF bidir_bus_buff8 IS SIGNAL aout,bout : std_logic_vector(7 DOWNTO 0);BEGIN PROCESS (a,b,dr,en) BEGIN IF (en = 0 AND dr = 1) THEN bout = a; ELSIF (en = 0 AND dr = 0) THEN aout = b; ELSE aout = ZZZZZZZZ; bout = ZZZZZZZZ; END I

60、F; b = bout; a = aout; END PROCESS;END rtl_arc;组合逻辑设计组合逻辑设计组合逻辑设计_ _ _总线缓冲器总线缓冲器总线缓冲器 3、总线缓冲器、总线缓冲器ENDR数据传输数据传输1Z00AB01ABIF_THEN_ELSIF_ELSE语句语句AENBDR端口说明中的端口说明中的双向模式双向模式“SIGNAL”是用来是用来表示信号的保留字表示信号的保留字组合逻辑设计组合逻辑设计组合逻辑设计_ _ _选择器选择器选择器LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;ENTITY mux IS PORT (a,b,c,d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论