EDA书上和整理的_第1页
EDA书上和整理的_第2页
EDA书上和整理的_第3页
EDA书上和整理的_第4页
EDA书上和整理的_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、EDA PPT和书上整理的一些(不是很全) 岳慧慧 1、EDA的定义:EDA全称为Electronic Design Automation,是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及试验开发系统为设计工具,通过有关开发软件,自动完成从软件方式设计电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术。2、EDA进行电子设计特点:1 软件方式的硬件设计2 软件到硬件的转换由开发软

2、件自动完成3 设计过程中可用软件仿真4 在线可编程isp5 单芯片集成系统,高集成可靠性、低功耗3、EDA三个发展阶段(并介绍时代特点):计算机辅助设计Computer Aided Design计算机辅助工程设计Computer Aided Engineering Design电子设计自动化Electronic Design Automation1)计算机辅助设计阶段(20世纪70年代):选用中小规模集成电路把设计繁杂劳动如布线布图用2D图形编辑与分析的CAD工具替代系统调试在组装好的PCB上进行2)计算机辅助工程设计阶段(20世纪80年代):EDA工具以逻辑模拟、定时分析、故障仿真、自动布局

3、和布线为核心重点解决设计完成之前的功能检测等问题具有自动综合能力的EDA工具大部分原理图出发的工具不适应复杂系统设计3)电子设计自动化阶段(20世纪90年代):设计芯片,使用硬件转向设计硬件,片上系统集成,单片系统SOC工具的抽象设计能力,框图、状态图与流程图编辑,具有硬件描述语言(VHDL, ABEL, AHDL),标准元件库超越电子设计范畴进入其他领域,基于EDA的单片系统SOC,软硬核功能库,基于VHDL自顶向下的设计理念4、 EDA的软件系统构成(书P6)完整的EDA软件系统应包括:设计输入、设计数据库、分析验证、综合仿真、布局布线等模块设计输入:接受设计输入,语义分析及检查设计数据库

4、:存放系统库单元、用户设计描述及中间设计结果分析验证:各层次模拟验证、设计规则检查、故障检查等综合仿真:各层次综合工具,理想状况为高层次到低层次综合仿真全部由EDA工具自动实现。布局布线:逻辑设计到物理实现的映射,器件不同布线工具不同5、 EDA工程设计流程图分析介绍(书P9):源程序编辑编译:文本/图形编辑器输入设计、排错编译,生成VHDL文件格式,准备逻辑综合。三种编辑方式:原理图、状态图与文本方式逻辑综合与优化:根据设计输入,针对指定硬件编译优化转换综合,获得门级电路甚至更底层的电路描述文件器件布线/适配:针对具体器件进行逻辑映射,包括底层器件配置、逻辑分割与优化、布线,利用适配仿真文件

5、可做精确时序仿真。编程/下载:上述过程无问题,可将产生的配置下载文件经编程器或下载电缆载入目标FPGA或CPLD中硬件仿真/硬件测试:这里的硬件仿真是针对ASIC而言。ASIC设计中,常用FPGA对系统设计进行功能检测,通过后将VHDL设计以ASIC实现,硬件测试则是FPGA或CPLD直接应用于系统进行检测6、数字系统设计模型(书P15)(1)根据图示模型,一个数字系统可由数据处理子系统与控制子系统构成。其中数据处理子系统完成数据的采集、存储、运算与传输控制子系统接受外部控制信号与数据处理送出的条件信号,在时钟信号控制下进行状态转换,产生与状态和条件信号对应的输出控制信号,控制数据处理子系统的

6、具体操作。(2)数字系统的设计方法:模块设计法、自顶向下设计法、自底向上设计法自顶向下的设计方法:按逐步细化、渐次求精的方法,将数字系统按功能或群组等方法层层分解为关系合理、便于逻辑设计实现的子系统与模块特点:模块化、并行化原则:逐层分解功能、分层次设计,考虑设计层次的方针验证(3)数字系统的设计准则:分割准则:底层逻辑适于表述;相似功能组成功能模块;接口信号尽量少;同层次模块IO与资源平衡;通用性,可移植性可观测:关键点,代表性节点及线路,工作状态同步与异步:尽可能采用同步电路最优设计:资源利用率、工作速度、布线设计艺术:流畅、IO及资源分配、设计及性能瓶颈、可观测性、柔性、器件特点(4)数

7、字系统的设计步骤:任务分析:流程、时序、自然语言汇混合方式提出要求算法确定:系统逻辑实现方法,选优系统建模:框图设计,模块功能清楚、规模合适逻辑描述:流程、框图、描述语言描述功能电路设计与仿真:选择器件及连接关系实现系统逻辑,系统仿真,电路图与硬件描述语言方式物理实现:实际器件实现系统,仪表测量,PCB测试7、(1) ASIC与半定制ASICl Application Specific Integrated Circuits-专用集成电路。使电子设计由集成电路芯片使用转向SOCl 集成度、功耗、可靠性、保密性、isp、开发周期l 全定制与半定制ASIC,半定制集成电路-SIC,Semi-Cus

8、tom Integrated Circuits种类:门阵列(Gate Array)、标准单元(Standard Cell)、简单可编程逻辑器件(SPLD)、复杂可编程逻辑器件(CPLD)、现场可编程逻辑器件(FPGA)与在系统可编程(isp)逻辑器件l 可编程ASIC:半定制ASIC的后四种,即SPLD、CPLD、FPGA与ISP器件统称可编程ASIC(2) 可编程逻辑器件的发展(书P20)70年代初:可编程只读存储器(PROM)与可编程逻辑阵列(PLA),统称现场可编程逻辑阵列(FPLA)70年代末:可编程阵列逻辑 (PAL)80年代初:通用阵列逻辑(GAL)器件,可擦除、重复编程、加密等特

9、点80年代中期:Xilinx的现场可编程门阵列(FPGA)90年代初:Lattice的在系统可编程大规模集成电路ispLSI90年代末:Lattice的模拟可编程逻辑器件ispPAC (In-System Programming Ability Analog Circuits),可实现信号调理、信号处理与信号转换(3) 可编程逻辑器件的基本结构及分类基本结构:与阵列、或阵列、输入/输出缓冲电路可编程逻辑器件的分类:SPLD 、CPLD、 FPGA 、ISPSPLD:包括PROM PAL PLA GAL等器件PROM-固定与阵列和可编程或阵列各一,一般作存储 PAL-可编程与阵列+固定或阵列,与

10、阵列可编程使输入项增多,二代的GAL可电擦写、重复编程加密PLA-与阵列或阵列均可编程,缺陷慢速特性与价格CPLD:逻辑板块编程而非逻辑门编程,逻辑宏单元为基础,加上内部与或阵列和外部的输入/输出模块,简单/时序逻辑控制,扩大应用范围、扩展性FPGA:逻辑单元阵列结构,静态随机存取存储工艺,设计灵活、集成度高、重复编程、现场模拟调试验证Isp器件:E2CMOS工艺,易用、高性能、具FPGA的灵活性、高密度等特点,在系统可编程器件的互连结构、编程特性互连结构:确定型-每次布线互连线相同,统计型-同功能不同布线如FPGA编程特性:一次可编程与重复可编程8、 PLD的分类方法(书P22),PLD的全

11、称英文(书P20)9、 FPGA和CPLD定义和特点(书P3、4)·FPGA的特点类似掩膜可编辑门阵列结构高密度,可达30,000门/片以上可编程、高可靠·基本结构-三类可编程资源可编程逻辑块CLB (Configurable Logic Blocks)可编程I/O块IOB(Input/Output Blocks)-连接芯片与外部封装可编程内部连接PI(Programmable Interconnect)-连接内部各CLB与IOB,实现逻辑功能1010、 GLB通用逻辑块(书P31)、宏单元(书P33)11、 LIBRARY库(书P118)、ENTITY实体(书P121)、

12、ARCHITECTUE结构体(书P123)12、 十进制加法计数器之一、之二(书P168、169)13、 三态缓冲器电路(书P170)14、 8线-3线优先编码器(书P174)15、 8位三态锁存器(书P180)16、 带异步复位功能的8位二进制加法计数器的行为描述(书P190)17、 一位全加器的数据流描述/结构体描述(书P191、192)18、 3线-8线译码器(高电平有效)SLL、PROCESS、WHEN-ELSE、CASE-WHEN(书)19、 8线-3线优先编码器(条件赋值语句、LOOP循环、条件语句)(书)20、 比较器(书P197)21、 选信号选择器、选数据选择器(书)22、

13、三态门电路(书)23、 触发器(书)24、 非同步复位置位的触发器(书)25、 同步复位的触发器、触发器(书)26、 位数据寄存(锁存)器(书)27、 具有左移或右移一位并行输入和同步复位功能的位移位寄存器(书)28、 带时钟使能的十进制同步计数器、具有异步复位同步置数功能的码进制同步计数器(书)29、 个触发器构成的异步计数器(书)30、 分频电路(书P209)31、 “”序列信号发生器(书)32、 位的序列发生器(书)33、 “”序列信号检测器(书)34、 四位二进制并行加法器(书P351)35、 8位二进制加法器(书P352)36、 16位锁存器、8位右移寄存器(书P356)37、 8位

14、乘法器9(书P358)38、 8位可自加载的加法计数器(书P364)39、 PWM信号发生器(书P365)40、 有时钟使能的十进制计数器(书)41、 位锁存器(书)42、 六进制计数器(书)43、 显示控制模块(书)l 8253可编程定时计数器l 8252可编程并行接口l 8259可编程中断控制器l PLD硬件实现实时性与并行性l DSP可以进行浮点数运算,但是以72K/S的运行速度l 可执行程序的实质是指指令程序l 电源和地、专用管脚不是信号l PIA:可编程连线阵列l 宏单元触发器可以单独编程为D、JK、T或RS触发器(书P65)l ORP为输出布线区l 差分信号用于串行口l 系统实体不

15、唯一,结构体可以不唯一(结构体:功能,行为,数据,流程与结构)l 端口共有九种状态(未定义、若0、若1、高、低、高组态等)(书P133)l 8位:-128127;32位:-231231-1l 常量在运行中不变l 变量不可送入信号l := 只用于变量赋初值,不产生延迟l <= 端口赋初值,是变量间的信号传递,允许延时l = 是逻辑运算,表示“相等”l 变量相当于寄存器,信号相当于导线l 信号不可以两次赋值l 事件驱动,状态转换l 位数据类型取值是0或1l 上升沿一般高于下降沿(书P161)l PROCESS执行复杂程序,PROCESS之内无顺序,PROCESS之间有顺序(书P167)l 判

16、断正确与否:调用程序库中的程序包(分析错误原因)l 条件信号赋值语句中表达式结果可以是数也可以是逻辑表达式l 选择信号赋值语句中选择表达式可以是信号、逻辑表达式、数l PROCESS里是顺行语句l 奇偶校验位(看为“1”的个数,为“0”的个数)l 多个VHDL出现在PROJECT中需选出一个顶层实体(通过元件调用)l PROCEDURE不带返回值;FUNCTION带返回值l 结构体中只能使用信号,变量不能再结构体中直接使用l 信号只能赋值一次l PROCESS(CLK):执行两次l 74LS373的功能:地址锁存器(三态缓冲)l 程序包位于程序库中(书P187)l STD_LOGIC:标准逻辑

17、量4.1.1 短标识符l 规则l 英文字母打头l 字符含数字、大小写字母与下划线l 下划线前后必有字母或数字l 综合仿真,不区分大小写4.1.2 扩展标识符l 反斜杠定界-parameter_settingl 可含图形、空格-100$、power onl 反斜杠间可用保留字-endl 界定符间可数字打头-2MCUl 允许多个下划线-Chip_Select_of_8255l 区分大小写-EDA不同于Edal 不同于短标识符-EDA与Eda或eda不同4.2.1 常量-constant说明格式:CONSTANT 常量名: 数据类型:= 表达式CONSTANT width: integer : =

18、8;CONSTANT Vcc: real : = 5.0;CONSTANT Delay: time : = 100ns;CONSTANT PBUS: BIT_VECTOR : = “10110011”;l 常量值运行中不变(改变实体常量说明重新编译才能改变常量)l 程序包、实体、结构体或进程说明域中须对常量标识符、类型及常量值进行指定l 定义在程序包中的常量可由所在任何实体与结构体调用l 定义在实体内常量仅在实体内使用,定义在进程内常量仅在进程内使用4.2.2 变量-Variables格式:VARIABLES 变量名: 数据类型 约束条件:= 表达式VARIABLES result: std_

19、logic : = 0;VARIABLES x, y, z: integer;VARIABLES count: integer range 0 to 255 : = 10;使用规则l 变量赋值是直接非预设的。某一时刻仅包含一个值l 赋值符号用:=表示,赋值无延时l 变量不用于硬件连线与存储元件l 仿真模型中,变量用于高层次建模l 系统综合时,变量用于计算,作为索引载体与数据暂存l 进程中,变量仅适用于进程内。变量用于进程外时需将变量赋给一个信号,即进程数据传递通过信号实现4.2.3 信号-Signal硬件实体连接的抽象表示格式:SIGNAL 信号名: 数据类型 约束条件:= 表达式SIGNAL

20、 sys_clk: BIT : = 0; -系统时钟变量SIGNAL sys_busy: BIT : = 0; -系统总线状态变量SIGNAL count: BIT_VECTOR(7 DOWNTO 0); -计数器宽度使用规则l 直接赋值符号:=,信号初始值,不产生延时l 代如赋值符号<=,变量间的信号传递,允许延时,例: T1 <= T2 after 20ns4.3.1 标准定义的数据类型l 布尔量-BOOLEAN: (1)二值枚举量-“真” 与“假” (2)无数量概念,只能逻辑运算不能算术运算 (3)常表达信号的状态、总线控制权、仲裁情况、忙闲状态等(4)仿真时仿真工具自动对布

21、尔量赋值情况进行检查 (5)初始值一般为FAILUREl 字符-CHARACTER: (1)编程时用单引号括起来, a, A不同 (2)VHDL对字母大小写不敏感,但区分字符量中的大小写,1为字符 (3)字符包括字母、数字及特殊字符l 字符串-STRING: (1)双引号括起来的字符系列,如“VHDL” (2)又称字符矢量或字符串数组(3)一般用于程序提示、结果说明等场合l 整数-INTEGER: (1)范围-(231-1)到231-1 (2)可用进制表示 (3)不能看作矢量,不能单独对某位操作 (4)不用于逻辑运算,只用于算术运算 (5)范围应有约束,如VARIABLE A: INTEGER

22、 RANGE 128 to 128 (6)可用来抽象地表达总线状态4.3.1 标准定义的数据类型l 实数-REAL: (1)范围-1.0E+38到+1.0E+38 (2)有些数可实数表示也可整数表示如: 99与99.0,类型不同值相同 (3)也称浮点型(FLOATING TYPE),多数EDA工具不支持浮点运算l 位-BIT: (1)通常表示信号值 (2)通常用单引号括其值,如: TYPE BIT IS(0, 1) (3)其值0,1分别表示假与真l 时间-TIME: (1)又称物理类型(PHYSICAL TYPES) (2)范围-(231-1)到231-1 (3)内容包括整数与单位 (4)一般

23、用于仿真而不用于综合 (5)单位Fs, Ps, Ns, Us, Ms, Sec, Min, Hrl 错误等级-SEVRITY LEVEL: (1)表示电子系统工作状态 (2)错误等级: NOTE, WARNING, ERROR, FAILURE四级 (3)常用来在仿真时给开发者提供电子系统工作情况l 自然数-NATURAL与正整数-POSITIVE: (1)自然数与正整数为整数的子集 (2)自然数是0和0以上的整数4.3.2用户定义的数据类型1.枚举类型-ENUMERATED TYPE, 把类型各元素枚举出来书写格式为: TYPE数据类型名 IS(元素,元素,); eg1: TYPE PCI_

24、BUSstate IS (Idle, busbusy, write, read, Back off); -PCI总线状态机变量 eg2: TYPE std_Ulogic IS (U, X, 1, 0, Z, W, L, H, -); 未定义, 强迫未知, 强迫为1, 强迫为0, 高阻, 弱未知, 弱0, 弱1, 可忽略值2. 整数类型与实数类型-INTEGER TYPES, REAL TYPES VHDL语言标准中已定义,自定义用于特殊用途,一般格式: TYPE 数据类型名 IS 数据类型定义 约束范围; eg1: TYPE digit IS INTEGER range 0 TO 2553数组

25、(ARRAY)类型 * 程序设计中,相同类型数据集合形成的数据类型,可二维和多维 * 格式-TYPE 数据类型名 IS ARRAY (1NTEGER 0 TO 9) OF STD_LOGIC * 数组类型在总线定义及ROM,RAM等电子系统设计的建模中应用。 * 多维数组不能生成逻辑电路,EDA工具不能用多维数组进行设计综合 设计仿真,及系统建模 * 多维数组要用多个范围来描述4.记录类型-RECODE TYPES,不同类型数据组织在一起形成的数据类型格式:TYPE 数据类型 IS RECORD 元素名:数据类型名; 元素名:数据类型名; END RECORD;l 记录用于描述总线,通讯协议很

26、方便。l 记录适用于仿真。l 从记录中提取元素的数据类型应用“”。5. 文件类型-FILESTYPES,在系统环境中定义为代表文件的一类客体,可以赋值。其值是系统文件中值的序列。 格式:TYPE 文件类型名 IS FILE 限制: 例: TYPE text IS FILE OF string; TYPE input-type IS FILE OF charater VHDL中,程序TEXTIO中有两个预定义标准文本文件 FILE input: text OPEN read_mode IS "TSD INPUT" FILE input: text OPEN write mod

27、e IS "TSD INPUT"6. 存取类型-ACCESS TYPE, 用于客体间建立联系,或对象分配或释放存储空间。VHDL标准IEEE std_1076的程序包TEXTIO中,定义了一个存取类型: TYPE line IS ACCESS string 表示LINE类型变量,值为指向字符串的指针。仅有变量可以定义为存取类型:VARIABLE line buffer: line;VHDL中,变量、信号、常量、文件赋值时,类型要一致。不同类型数据变换方法:类型标记法、函数转换法和常数转换法4.4.5 IEEE标准数据类型“std_logic”和“std_logic_vect

28、or' - VHDL93的STD_LOGIC 中不定状态方便系统仿真,高阻方便双向总线的描述 - U X O 1 Z W L H - 表示初始值,不定/未知,0,1高阻弱信号不定/未知,弱信号0,弱信号1与不可能情况 - STD_LOGIC与STD_LOGIC_VECTOR为IEEE标准化数据类型,使用时在程序中必须写出库说明语句和使用程序包集合说明语句4.5.1 注释 - 目的: 保证VHDL程序可读性,位置:程序行的末尾,连字符后 - 注释非设计描述有效部分,编译后存入数据库中的部分不含注释部分 - 例:Trant<=Frame&idle&irdy&d

29、evseI -PCI总线数据传输译码逻辑之一4.5.2 数字 - 两类数字表示法分为:十进制表示法和基表示法 - 十进制数表示法-格式: 十进制文字:=整数整数 指数 其中, 整数:=数字或下划线连接的数字, 指数:=E+整数或E-整数 整数举例:089,0,456-78,2e8,5e3。 实数举例:120,00,314159,12E一3,24e+5 - 二、八、十六进制数的基表示法 格式: 以基表示的数:=基#基于基的整数基于基的整数#指数 其中, 基:整数, 基于基的整数:扩展数字下划线扩展数字) 扩展数字:数字/字母 十六进制数中,数字用0-F共16个符号表示数字称为扩展数字。 整数举例

30、:十进制值数255,用基表示法为:2#11111111# -二进制表示, 8#377# -八进制表示, 16#FF# -十六进制表示 浮点数举例:16#0F#E+0 , 16#FFFF#E+l5.1.1进程语句(Process)VHDL程序中描述硬件并行工作行为最常用最基本的语句特点:1)进程内语句顺序执行 2)进程之间并行,可访问构造体或实体中定义的信号 3)进程启动由信号敏感表触发或WAIT语句等待触发条件成立 4)进程通信由信号来传递。程序注释:l 提高程序可读性l 注释从"-"符号开始,到行尾结束l 注释文字不作EDA工具进行逻辑综合的依据采用布尔方程,也可用数据流

31、描述-用布尔方程的数据流描述法设计的8位比较器Library ieee:use ieee.std_logic_1164.all:ENTITY comparator ISPort (a, b: IN std_logic_vector(7 downto 0); g: OUT std_logic);END comparator;ARCHITECTURE bool OF comparator ISBEGIN g <= not(a(0) xor b(0) and not(a(1) xor b(1) and not(a(2) xor b(2) and not(a(3) xor b(3) and no

32、t(a(4) xor b(4) and not(a(5) xor b(5) and not(a(6) xor b(6) and not(a(7) xor b(7)END bool;数据流描述法采用并发信号赋值语句,而非进程顺序语句例: 由时钟控制的进程语句设计。ENTITY Sync_device IS PORT(ina, clk: IN Bit; Outb: OUT Bit);END Sync_device;ARCHITECTURE example of sync_device IS BEGIN P1: PROCESS(clk) BEGIN outb<=ina AFTER 10 ns;

33、 -Fmax=100MHz END PROCESS P1;END example;例: 可选边沿的时钟控制进程的设计。ENTITY dff IS -实体名为dff PORT(i, CLK: IN Bit; -D触发器的输入端口 q: OUT Bit); -D触发器的输出端口END dff;ARCHITECTURE register OF dff IS -结构体registerBEGIN P1: PROCESS (clk) -敏感信号为CLK BEGIN IF clk='1' THEN -如果时钟由0变1时 Q<=d AFTER 10ns -延时10ns将输入 END IF

34、; -信号d送输出端口q END PROCESS P1;END register;例: WAIT同步的进程P1: PROCESSVARIABLE temp:BitBEGIN Temp := a or b; C<= NOT temp: WAIT a, b; -等待a,b的改变END PROCESS Pi;例: 利用进程语句、WAIT语句设计异或门ARCHITECTURE example of xor ISBEGIN PROCESS BEGIN OUT_q<=ind1 xor ind2 WAIT ON ind1, ind2; END PROCESS;END example;WAIT O

35、N a FOR 50ns 表示a变化50ns之后进程执行WAIT FOR 0ns产生无限循环,WAIT产生永远等待例: 过程语句设计PROCEDURE Bitvector_to_integer ( Z: IN STD_LOGIC_VECTER(7 DOWNTO 0); X_flag: OUT Boolean; q: INOUT INTEGER) IS BEGIN Q:= 0; X_falg:=FALSE; FOR i IN Z' RANGE LOOP Q:=q * 2; IF(Z(i)=1)THEN Q = q + 1; ELSE IF(Z(i)/=0)THEN X_flag:=TRU

36、E; ENDIF; END LOOP;END Bitvector_to_integer:例: 条件信号赋值语句设计的xor_gateARCHITECTURE data_flow OF xor_gate IS BEGIN C<= '0' WHEN a= '0' AND b='0'ELSE '1' WHEN a= '0' AND b='1'ELSE '1' WHEN a= '1' AND b='0'ELSE '0' WHEN a= &

37、#39;1' AND b='1'ELSE '0'END data_flow;例: 选择信号赋值语句设计的xor_gateoENTITY xor_gate IS PORT(sel: IN Bit_vector(0 to 1); c, d: out Bit);END xor_gate;ARCHITECTURE data_flow of xor_gate IS BEGIN WITH sel SELECT -选择信号赋值语句 c<= '0' AFTER 5ns WHEN "00"/"11" '

38、1' AFTER 5ns WHEN "01"/"10" P1: PROCESS -选择信号赋值语句等效 BEGIN -一个延缓的进程语句 case sel SELECT IS -此进程目标信号不同 WHEN "00"/"11" =>d<= '0' AFTER 5ns; WHEN "01"/"10" =>d<= '1' AFTER 5ns; END CASE: WAIT ON Sel; END PROCESS P1

39、;END data_falow;例:利用延时设计代入语句设计的与门电路。ENTITY and2 IS PORT(a,b: IN Bit; C: OUT Bit);END and2;ARCHITECTURE and2 behave OF and2 IS BEGIN C <= a and b AFTER 10ns; -延时代入语句END and2_behave;例:条件信号代入语句设计四选一电路ENTITY mux4 IS PORT(d0, d1, d2, d3, a, b: IN STD_LOGIC;q: OUT STD_LOGIC);END mux4;ARCHITECTURE Condi

40、tional_Signal_Assignment OF mux4 SIGNAL sel: STD_LOGIC_Vector(1 DOWNTO 0); BEGIN Sel<=b&a; q<= d0 WHEN sel="00" ELSE d1 WHEN sel="01" ELSE d2 WHEN sel="10" ELSE d3 WHEN sel="11" ELSE 'Z'END Conditional_Signal_Assignment;例: 选择信号代入语句设计四选一电路LIBR

41、ARY IEEE;USE IEEE.STD_LOGIC_l164.ALL;ENTITY mux4 IS PORT(d0, d1, d2, d3, a, b: IN STD_lOGIC; q: OUT STD_LOGIC);END mux4;ARCHITECTURE selective_signal_Assignment OF Mux4 IS SIGNAL Sel: INTEGER; BEGIN WITH sel SELECT -选择信号代入语句 Q<=d0 WHEN 0 d1 WHEN 1, d2 WHEN 2, d3 WHEN 3, "Z" WHEN OTHERS;

42、 sel<=0 WHEN a='0' AND b='0' ELSE -条件信号代入语句 1 WHEN a=1' AND b='0' ELSE 2 WHEN a='0' AND b='1' ELSE 3 WHEN a='1' AND b='1' ELSE 4;END selective_signal_Assignment例: 4位移位寄存器设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALLENTITY Shift_reqiSter IS

43、PORT(a, clk: IN STD LOGIC;b: OUT STD LOGIC);END Shift register;ARCHITECTURE four_bit OF Shift_regiSter COMPONENT dff -元件调用dff PORT(a, clk: IN STD_LOGIC;b: OUT STD_LOGIC); END COMPONENT; SIGNAl X: STD_LOGIC_VECTOR(0 TO4); BEGIN X(0) <= a; dffl: dff PORTMAP(X(0), Clk, X(1); dff2: dff PORTMAP(X(1),

44、Clk, X(2); dff3: dff PORTMAP(X(2), Clk, X(3); dff4: dff PORTMAP(X(3), Clk, X(4); b<=X(4);END four_bit;例: GENERATE语句设计4位移位寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY shift_register IS PORT(a, clk: IN STD_LOGIC; b: OUT STD_LOGIC);END shift_regesterARCHITECTERE four_bit OF shift_registet COMP

45、ONENT dff -元件调用语句 PORT(c,d,clk:INSTD_lOGIC; q:OUT STD_LOGICPOR); END COMPONENT; SIGNAL X: STD_LOGIC_VECTOR(0 TO 4); BEGIN X(0)<=a; -输入信号代入语句 register1: FOR i IN 0 TO 3 GENERATE dffx: dff PORT MAP(X(i), clk, X(i+1); -端口映射 END GENERATE register1; B <= X(4); -输出信号代入语句END four_bit;LIBRARY IEEE;USE

46、 IEEE.STD_LOGIC_1164.ALL;ENTITY nshift_reg IS GENERIC (n: INTEGER); PORT(a, Clk: IN STD_LOGIC;b: OUT STD_LOGIC);END nshift_reg;ARCHITECTURE If_Gene OF nshift_reg IS COMPONENT dff -元件调用 PORT(d, clk: IN STD_LOGIC; q: OUT STD_lOGIC): END COMPONENT; SIGNAL X: STD_LOGIC_VECTOR(1 TO n-1); BEGIN reg0: FOR

47、i IN 0 TO (n-1) GENERATE -生成语句 reg1: IF i=0 GENERATE gen1: dff PORT MAP(a, clk,X(i+1); END GENERATE reg1; reg2: IF i>0 AND i<(n-1) GENERATE gen2: dff PORT MAP(X(i),clk,X(i+1); END GENERATE reg2; reg3: IF i=(n-1) GENERATE gen3: dff PORT MAP(X(i),clk,b); END GENERATE reg3; END GENERATE reg0;END

48、If_Gene;例: IF语句-D触发器设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff IS PORT(clk, d: IN STD_LOGIC; q: OUT STD_LOGIC);END dff;ARCHITECTURE text_dff OF dff IS BEGIN P1: PROCESS(clk) BEGIN IF(clk'EVENT AND clk='1') THEN q <= d; END IF; END PROCESS P1;END Text_dff;例: IF语句设计的二选一电路LIBR

49、ARY IEEEUSE IEEE.STD_LOGIC_1164.ALL; ENTITY mux2 IS PORT(a, b, sel: IN STD_LOGIC; C: OUT STD_LOGIC);END mux2;ARCHITECTURE example OF mux2 IS BEGIN P1: PROCESS(a, b, sel) BEGIN IF (sel='1') THEN C <= a; ELSE C <= b; END IF; END PROCESS P1;END example; 例: CASE语句-四选一电路设计LIBRARY LEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 IS PORT(a, b, d0, d1, d2, d3: IN STD_LOGIC; q: OUT STD_LOGIC);END mux4;ARCHITECTURE example_mux of mux IS SIGNAL Sel: INTEGER RANGE 0 TO 3;BEGIN P1: PROCESS (a, b, d0, d1,d2,d3) BEGIN sel <= '0' IF (a = 1') THEN sel = sel+1; END IF; IF (b = 1

温馨提示

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

评论

0/150

提交评论