元件例化语句块语句和生成语句
并行语句
2. 异步进程敏感信号参数表中除时钟信号外, 还有其它信号。 例: process(clk,reset) begin if reset=‘1’ then date<=“00”; elsif (clk’event and clk=‘1’) then date<= in_date; end if; end process;
3.5.3 并行信号赋值语句 包括三种: 简单并行信号赋值; 条件信号赋值; 选择信号赋值。 共同特点: 1. 赋值目标必须是信号,与其它并行语句同 时执行,与书写顺序及是否在块语句中无关。 2. 每一信号赋值语句等效于一个进程语句。 所有输入信号的变化都将启动该语句的执行。
1. 简单并行信号赋值语句 即:信号<=表达式 例:以下两种描述等价
例:用选择信号赋值语句描述四选一电路。 用选择信号赋值语句描述四选一电路。 entity mux4 is port (i0,i1,i2.i3,a,b: in std_logic; q:out std_logic); end mux4; architecture rtl of mux4 is signal sel :std_logic_vector(1 downto 0); begin sel<=b&a; with sel select q<=i0 when sel=“00”, i1 when sel=“01”, i2 when sel=“10”, i3 when sel=“11”, ‘X’ when others; end rtl;
B3:BLOCK BEGIN Z<=S; END BLOCK B3; END BLOCK B2; Y<=S; END BLOCK B1;
3. 卫式(Guarded)块 由保护表达式值的真、假决定块语句的执 行与否,综合不支持。
VHDL并行语句
PROCEDURE 过程名(参数1;参数2;) IS [声明语句;]
BEGIN [顺序处理语句;]
END 过程名;
并行过程调用:
过程名(关联参数表);
参数关联方式
位置关联方式 名字关联方式 =>
例:设有一过程PROCEDURE vect(a,b:IN BIT;
output1 <= a AND b ; output2 <= c + d ; g <= e OR f ; h <= e XOR f ; s1 <= g ; END ARCHITECTURE curt;
2、条件信号赋值语句
赋值目标 <= 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE ... 表达式 ;
PROCESS语句在VHDL程序中,是描述硬件并行工作 行为的最常用、最基本的语句。
PROCESS 组成 PROCESS语句结构
进程说明
顺序描述语句
敏感信号参数表
信
变
进
子
顺
进
号
量
程
程
序
程
赋
赋
启
序
描
跳
值
值
动
调
述
出
语
语
语
用
语
语
句
句
句
语
句
句
句
说明
(1) 进程说明部分主要定义一些局部量,可包括数据 类型、常数、属性、子程序等。但需注意,在进程说 明部分中不允许定义信号和共享变量。
-- 指定信号
-- 指定变量
-- 过程调用
vhdl生成语句的使用
生成语句生成语句(GENERATE)是一种可以建立重复结构或者是在多个模块的表示形式之间进行选择的语句。
由于生成语句可以用来产生多个相同的结构,因此使用生成语句就可以避免多段相同结构的VHDL程序的重复书写(相当于‘复制’)。
生成语句有两种形式:FOR- GENERATE模式和IF- GENERATE模式。
FOR- GENERATE 模式的生成语句FOR- GENERATE 模式生成语句的书写格式为:[标号:]FOR 循环变量 IN 离散范围 GENERATE<并行处理语句>;END GENERATE [标号];其中循环变量的值在每次的循环中都将发生变化;离散范围用来指定循环变量的取值范围,循环变量的取值将从取值范围最左边的值开始并且递增到取值范围最右边的值,实际上也就限制了循环的次数;循环变量每取一个值就要执行一次GENERATE语句体中的并行处理语句;最后FOR- GENERATE模式生成语句以保留字END GENERATE [标号:];来结束GENERATE语句的循环。
生成语句的典型应用是存储器阵列和寄存器。
下面以四位移位寄存器为例,说明FOR- GENERATE模式生成语句的优点和使用方法。
下图所示电路是由边沿D触发器组成的四位移位寄存器,其中第一个触发器的输入端用来接收四位移位寄存器的输入信号,其余的每一个触发器的输入端均与左面一个触发器的Q端相连。
图用D触发器构成的四位移位寄存器根据上面的电路原理图,写出四位移位寄存器的VHDL描述如下。
LIBRARY IEEE;USE IEEE. STD_LOGIC_1164.ALL;ENTITY shift_reg ISPORT(di:IN STD_LOGIC;cp:IN STD_LOGIC;do:OUT STD_LOGIC);ARCHITECTURE structure OF shift_reg ISCOMPONENT dff --元件说明PORT(d:IN STD_LOGIC;clk:IN STD_LOGIC;q:OUT STD_LOGIC);END COMPONENT;SIGNAL q:STD_LOGIC_VECTOR(4 DOWNTO 0);BEGINdff1:dff PORT MAP (di,cp,q(1)); --元件例化dff2:dff PORT MAP (q(1),cp,q(2));dff3:dff PORT MAP (q(2),cp,q(3));dff4:dff PORT MAP (q(3),cp,do);END structure;在上例的结构体中有四条元件例化语句,这四条语句的结构十分相似。
VHDL第六讲_VHDL元件例化语句最新版
FOR- GENERATE 模优选式文档生成语句的书写格16
其中循环变量的值在每次的循环中都将发生变化;离散范围用来指定 循环变量的取值范围,循环变量的取值将从取值范围最左边的值开场并且 递增到取值范围最右边的值,实际上也就限制了循环的次数;循环变量每 取一个值就要执行一次GENERATE语句体中的并行处理语句;最后FORGENERATE模式生成语句以保存字END GENERATE [标号:];来完毕 GENERATE语句的循环.
u1:nand_2 port map(a,b,y1);--元件例化 u2:nand_2 port map(c,d,y2); u3:nand_2 port map(y1,y2,y); end one;
优选文档
7
例1:利用2输入与非门元件,设计4输入的与 非与非电路.
方法2:将元件声明放在程序包里进展说明
优选文档
19
思考题
设计一位二进制全加器,然后利用forgenerate生成语句实现4位二进制全加器, 并仿真验证设计结果.
优选文档
优选文档
14
1位D触发器的VHDL程序文件: library ieee; use ieee.std_logic_1164.all; entity shift_reg1 is
port(clk:in std_logic; D:in std_logic; Q:out std_logic);
end entity; architecture one of shift_reg1 is begin
end mynand_4; architecture one of mynand_4 is signal y1,y2:std_logic; begin
第五章(VHDL主要描述语句)
(4) CASE语句执行中必须选中,且只能选中所列条件语
句中一条。这表明CASE语句中至少要包含一个条件语句。
CASE语句常用来描写总线行为、编码器和译码器的结构。CASE语句 与IF语句功能相似但CASE语句的可读性好,非常简洁。
CASE语句的误用:
SIGNAL value : INTEGER RANGE 0 TO 15 ; SIGNAL out_1 : BIT ; CASE value IS -- 缺少 WHEN条件语句 END CASE ; -- 分支条件不包含2到15 CASE value IS WHEN 0 => out_1 <= „1‟; WHEN 1 => out_1 <=„0‟; END CASE ; -- 在5到10上发生重叠 CASE value IS WHEN 0 TO 10 => out_1 <= „1‟; WHEN 5 TO 15 => out_1 <= „0‟; END CASE ;
IF语句不仅可用于选择器设计,还可用于比较 器,译码器等进行条件控制的逻辑设计。IF语句 中至少应有一个条件句,条件句必须由布尔表达 式构成,条件表达式中能使用关系运算操作及逻 辑运算操作的组合表达式。 IF语句颠倒条件判别次序,会引起在综合时逻辑 功能的变化,即IF语句判别条件不可颠倒。 IF语句中,先处理最起始的条件;如果不满足, 再处理下一个条件。一般把条件约束最多的作为 起始条件。
例
用IF语句描述一个二位等值比较器
ARCHITECTURE a OF compare IS LIBRARY IEEE; BEGIN PROCESS(a,b) USE IEEE.STD_LOGIC_1164.ALL; BEGIN ENTITY compare IS IF(a>b) THEN eater<='1';equal<='0';less<='0'; generic(n:natural:=2); ELSIF (a=b) THEN PORT( greater<='0';equal<='1';less<='0'; ELSE a,b:IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); greater<='0';equal<='0';less<='1'; greater,equal,less:OUT STD_LOGIC); END IF; END PROCESS; END; END;
元件例化
元件例化语句元件例化就是引入一种连接关系,将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口相连接,从而为当前设计实体引入一个新的低一级的设计层次。
在这里,当前设计实体相当于一个较大的电路系统,所定义的例化元件相当于一个要插在这个电路系统板上的芯片,而当前设计实体中指定的端口则相当于这块电路板上准备接受此芯片的一个插座。
元件例化是使VHDL 设计实体构成自上而下层次化设计的一种重要途径。
在一个结构体中调用子程序,包括并行过程的调用非常类似于元件例化,因为通过调用,为当前系统增加了一个类似于元件的功能模块。
但这种调用是在同一层次内进行的,并没有因此而增加新的电路层次,这类似于在原电路系统增加了一个电容或一个电阻。
元件例化是可以多层次的,在一个设计实体中被调用安插的元件本身也可以是一个低层次的当前设计实体,因而可以调用其它的元件,以便构成更低层次的电路模块。
因此,元件例化就意味着在当前结构体内定义了一个新的设计层次,这个设计层次的总称叫元件,但它可以以不同的形式出现。
如上所说,这个元件可以是已设计好的一个VHDL 设计实体,可以是来自FPGA 元件库中的元件,它们可能是以别的硬件描述语言,如Verylog 设计的实体。
元件还可以是软的IP 核,或者是FPGA 中的嵌入式硬IP 核。
元件例化语句由两部分组成,前一部分是对一个现成的设计实体定义为一个元件,第二部分则是此元件与当前设计实体中的连接说明,它们的语句格式如下:(1)元件定义语语句COMPONENT 元件名GENERIC (类属表);PORT (端口名表);END COMPONENT 文件名;(2)元件例化语句例化名:元件名 PORT MAP( [端口名 =>] 连接端口名,...) ;以上两部分语句在元件例化中都是必须存在的。
第一部分语句是元件定义语句,相当于对一个现成的设计实体进行封装,使其只留出对外的接口界面。
EDA简答题答案
1.1EDA 的英文名字是什么? EDA的中文含义是什么?答: EDA:Electronics Design Automation中文含义:电子设计自动化。
1.2 什么叫 EDA?利用 EDA进行电子系统的设计的特点是什么?答:狭义的 EDA技术,就是指以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统描述的主要表达方式,以计算计、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编辑下载等工作,最终形成集成电子系统或专用集成芯片的一门技术,或称为IES/ASIC 自动设计技术。
EDA 进行电子系统的设计的特点:(1)、用软件的方式设计硬件(2)用软件的方式设计的系统到硬件系统的转换由有关的开发软件自动完成的(3)设计过程中可用有关软件进行各种仿真( 4)系统可现场编程,在线升级(5)整个系统可集成在一个芯片上,体积小、功耗低、可靠性高(6)从以前的“组合设计”专项真正的“自由设计”( 7)设计的移植性好,效率高(8)非常适合分工设计,团体协作1.5FPGA和 CPLD各包括几个基本组成部分FPGA在结构上主要分为:可编程逻辑单元、可编程输入/ 输出单元和可编程连线CPLD 在结构上包括:可编程逻辑宏单元、可编程输入 / 输出单元和可编程内部连线1.6FPGA/CPLD有什么特点?各包含几个基本组成部分?二者在存储逻辑信息方面有什么区别?在实际使用中什么时候选用 FPGA?什么时候选用 CPLD?答:FPGA在结构上主要分为三个部分,即可编程逻辑单元,可编程输入/ 输出单元和可编程连线三个部分; CPLD在结构上主要分为三个部分,即可编程逻辑宏单元,可编程输入 / 输出单元和可编程内部连线三个部分。
FPGA/CPLD 的特点:高度集中、高速度、高可靠性对于一个开发项目,主要看开发项目本身的需要,对于普通规模,且生产量不是很大的产品项目,通常使用 CPLD比较好。
vhdl 程序的基本结构 vhdl程序一般由5个部分组成
块语句
块标号:BLOCK[保护表达式] [类属子句;] [端口子句;] [块说明部分;] BEGIN <块语句部分;> END BLOCK 块标号;
类属子句用于参数的定义;端口子句用于信号的定义; 块说明部分对该块要用到的信号、常数、元件和子程序 等进行说明;块语句部分对该块的功能进行描述,块语 句部分的语句是并行执行的,和书写顺序无关。
IEEE: IEEE认可的标准库 std_logic_1164:定义了 std_logic, std_logic_vector, std_ulogic, std_ulogic_vector 等数据类型
VHDL 程序的基本结构
VHDL程序一般由5个部分组成: Library(库) Package(程序包)
CONFIGURATION small_count OF counter IS FOR count_255 END FOR; END small_count; CONFIGURATION big_count OF counter IS FOR count_64K END FOR; END big_count;
Library(程序库) Package(程序包)
Entity(实体) Architecture(构造体) Configuration(配置)
库和程序包
库 :存放已编译过的实体、构造体、 程序包和配置 程序包:由一组对外可见的信号、常量、 数据类型、子程序、属性等组成 的程序集合
库和程序包的使用
子程序调用语句 过程名(参数表);
子程序调用语句若位于 “构造体” 或 “块语句” 中,它就是并发语句; 若位于 “进程语句” 或 另一个“子 程序”中,它就是顺序语句;
EDA简答题
简答题第一、二章二、简答题1.IP核的分类:P101)软IP:是用VHDL等硬件描述语言描述的功能块,但是并不涉及用什么具体电路元件实现这些功能。
2)固IP:是完成了综合的功能块。
3)硬IP:提供设计的最终阶段产品---掩模。
2.简述EDA技术的发展趋势:P12①.超大规模集成电路的集成度和工艺水平不断提高,深亚微米工艺已经走向成熟,在一个芯片上完成的系统级的集成已成为可能。
②.由于工艺线宽的不断减小,在半导体材料上的许多寄生效应已经不能简单地被忽略,这就对EDA工具提出了更高的要求。
同时,也使得IC生产线的投资更为巨大。
可编程逻辑器件开始进入传统的ASIC市场。
③.高性能的EDA工具得到长足的发展,其自动化核智能化程度不断提高,为嵌入式系统设计提供了功能强大的开发环境。
④.计算机硬件平台性能大幅度提高,为复杂的SOC设计提供了物理基础。
3.EDA技术在进入21世纪后,得到更大的发展,突出表现在哪些方面?P2①.在FPGA上实现DSP(数字信号处理)应用成为可能,用纯数字逻辑进行DSP模块的设计,使得高速DSP实现成为现实,并有力地推动了软件无线电技术的实用化和发展。
基于FPGA的DSP技术,为高速数字信号处理算法提供了实现途径。
②.嵌入式处理器软核的成熟,使得SOPC步入大规模应用阶段,在一片FPGA上实现一个完备的数字处理系统成为可能。
③.在仿真和设计两方面支持标准硬件描述语言的功能强大的EDA软件不断推出。
④.电子技术领域全方位融入EDA技术。
⑤.EDA使得电子领域各学科的界限更加模糊,更加互为包容,如:模拟与数字、软件与硬件、系统与器件、ASIC与FPGA、行为与结构等。
⑥.基于EDA的用于ASIC设计的标准单元已涵盖大规模电子系统及复杂IP核模块。
⑦.软硬IP核在电子行业的产业领域广泛应用。
⑧.SOC高效低成本设计技术的成熟。
⑨.系统级、行为验证级硬件描述语言的出现,使复杂电子系统的设计和验证趋于简单。
第4章 VHDL语言基础
设计实体
结构体1
结构体2
结构体3
。 。 。
结构体n
FPGA-CPLD原理及应用
结构体的语法
第4章 VHDL语言基础
architecture 结构体名称 of 实体名称 is [说明语句] ;
begin [(功能描述)语句];
end [architecture] 结构体名称;
注:同一实体的结构体不能同名。定义语句中的常 数、信号不能与实体中的端口同名。
equal: out std_logic ); end eqcomp4;
A[3..0] B[3..0]
equal
FPGA-CPLD原理及应用
端口声明
第4章 VHDL语言基础
确定输入、输出端口的数目和类型。
Port (端口名称{,端口名称}:端口模式
… 端口名称{,端口名称}:端口模式 );
数据类型; 数据类型
FPGA-CPLD原理及应用
VHDL组成
第4章 VHDL语言基础
库 包 实体
结构体
eqcomp4.vhd
--eqcomp4 is a four bit equality comparator
Library IEEE; use IEEE.std_logic_1164.all;
entity eqcomp4 is port(a, b:in std_logic_vector(3 downto 0);
FPGA-CPLD原理及应用
第4章 VHDL语言基础
计数器等效描述(out与buffer的区别)
FPGA-CPLD原理及应用
3、数据类型
第4章 VHDL语言基础
指端口上流动的数据表达格式,为预先定好的数据类型,如: bit、bit_vector、integer、std_logic、std_logic_vector 等。 例: entity m81 is port (a: in std_logic_vector(7 downto 0); sel: in std_logic_vector(2 downto 0); b:out bit ); end entity m81;
元件例化
元件声明是对VHDL模块(即底层设计,也是完整的VHDL设计)的说明,使之可在其他被调用,元件声明可放在程序包中,也可在某个设计的构造体中声明。
元件例化指元件的调用。
元件声明及元件例化的语法分别如下:元件声明:component〈元件实体名〉prot(〈元件端口信息,同该元件实现时的实体的port部分〉);end compnent;—元件例化:〈例化名〉:〈实体名,即元件名〉port map(〈端口列表〉);例如,在一个设计中调用一个模为10的计数器cntm10和一个七段译码器decode47构成如下电路,则该调用过程孥即元件例化。
VHDL描述如下:library ieee;use ieee.std_logic_1164.all;entity cntvh10 isport (rd, ci, clk : in std_logic;co : out std_logic;qout : out std_logic_vector (6 downto 0));end cntvh10;architecture arch of cntvh10 isComponent decode47 isport (adr : in std_logic_vector (3 downto 0);decodeout : out std_logic_vector (6 downto0));end Component;—元件声明Component cntm10 isPort ( ci : in std_logic;nreset : in std_logic;clk : in std_logic;co : out std_logic;qcnt : buffer std_logic_vector (3 downto 0));end Component;signal qa: std_logic_vector (3 downto 0);beginu1 : cntm10 port map (ci, rd, clk, co, qa); —元件例化u2 : decode47 port map ( decodeout=>qout, adr=>qa);end arch;元件例化时的端口列表可按位置关联方法,如u1,这种方法要求的实参(该设计中连接到端口的实际信号,如ci,等)所映射的形参(元件的对外接口信号)的位置同元件声明中的一样;元件例化时的端口列表也可按名称关联方法映射实参与形参,如u2。
EDA技术及应用(第2版)朱正伟复习资料
EDA技术及应用(第2版)朱正伟复习资料第一章1、EDA的定义:以计算机为工作平台,以EDA软件工具为开发环境,以硬件描述语言为设计语言,以ASIC为实现载体的电子产品自动化设计过程。
2、EDA的三大特征:硬件描述语言、系统级仿真、综合技术3、EDA的设计方法:自上而下4、EDA的核心:利用计算机完成电路设计的全程自动化5、常用的EDA工具及其作用:设计编辑器:一般支持图形输入,HDL文本输入,波形图输入等仿真器:完成行为模型的表达、电子系统的建模、逻辑电路的验证以及门级系统的测试HDL综合器:将软件描述与给定的硬件结构用某种网表文件的方式对应起来,成为相互的映射关系。
6、EDA的设计流程:设计输入(将设计的系统或电路按照EDA开发软件要求的文本方式或图形方式表示出来,并送入计算机的过程。
)第二章1、PLD的基本结构:输入缓冲器、与阵列、或阵列、输出缓冲器;电路的核心是由门电路构成的与阵列、或阵列,逻辑函数靠它们实现。
与阵列产生乘积项,或阵列产生乘积项之和。
2、PLD的分类:简单PLD:PROM:与门阵列固定,或门阵列可编程。
优点:价格低、易编程性能可预测。
不足:规模大、速度低、功耗高。
PLA:与阵列和或阵列均可编程。
特点使用灵活,运行速度慢,价格高,缺少高质量的支持软件,使用不广泛。
PAL:与阵列可编程,或阵列固定,即乘积项可若干,数目固定。
特点:性能速度较高。
有几种固定的输出结构,不同结构对应不同的型号。
GAL;即通用阵列逻辑器件,与阵列和PAL的类似,或阵列及输出寄存器则采用OLMC输出逻辑宏单元OLMC最多有8个或项,每个或项最多有32个与项。
复杂PLD:(1)CPLD-----复杂可编程逻辑器件(2)FPGA-----现场可编程门阵列(3)ISP-----在系统可编程逻辑器件3、PLD的互联结构:(1)确定型:除FPGA外的PLD器件布线每次相同。
(2)统计型:FPGA每次布线模式不同,设计者提出约束模式。
第7讲 VHDL并行语句
PROCESS语句格式
在上例中,在一个进程中对信号进行两次赋值,只有 B<=B+1 是有效的赋值,前一次的赋值被忽略。
PROCESS语句格式
进程语句要点
④在不同进程中,不可对同一信号进行赋值。 ⑤一个进程不可同时对时钟上、下沿敏感,下面两种 格式是错误的:
⑥进程中的信号赋值是在进程挂起时生效的,而变量 赋值则是立即生效的。
号发生变化)。若变化后Clock值为‘1’,则表示时钟从 ‘0’变成‘1’,因此Clock’EVENT AND Clock=‘1’就表示时 钟上升沿。
2分频电路
PROCESS语句格式
PROCESS语句格式
进程语句要点
①进程语句PROCESS本身是并行语句,但其内部 为顺序语句。 ②进程在敏感信号发生变化时被激活。 ③在同一进程中对同一信号多次赋值,只有最后一 次生效。
系统上电
进程第2次被启 动进程中顺序语 句再次被执行
系统断电
在每个时钟上升沿,进程都被激活,进程中的语句被执行。特别要 注意,是每个上升沿启动一次进程,而不是在每个上升沿执行一条语句。 这一点与计算机软件程序和单片机程序有很大差别。
PROCESS语句格式
(2)时钟沿的VHDL描述法
假设时钟信号为Clock,且数据类型为Std_Logic,则
LIBRARY IEEE; 例子:
USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10 IS PORT ( clr : IN STD_LOGIC ; Clk : IN STD_LOGIC ; Cnt : Buffer STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END cnt10 ARCHITECTURE actv OF cnt10 IS BEGIN PROCESS BEGIN WAIT UNTIL clk'EVENT AND clk = '1' ; -- 等待时钟 clk 的上 沿 IF ( clr ='1' OR cnt = 9 ) THEN cnt <= "0000" ; ELSE cnt <= cnt+ 1 ; END IF ; END PROCESS ; END actv ;
EDA知识要点
EDA知识要点1、EDA的英文全称是什么?请简述EDA技术,并列举常见的EDA工具。
EDA即Electronic Design Automation的缩写,直译为:电子设计自动化。
EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计电子系统到硬件系统(的逻辑编译,逻辑化简,逻辑分割,逻辑综合及优化,逻辑布局布线,逻辑仿真,直至对于特定目标芯片的适配编译,逻辑映射,编程下载等操作,)最终形成集成电子系统或专用集成芯片的一门技术.电子设计自动化(EDA)方法一般采用自顶向下(TOP-DOWN)的设计方法,也叫正向设计,它是针对传统的自底向上(Bottom-up)的设计方法而提出来的。
常见的EDA工具有:设计输入编辑器,HDL综合器、仿真器、适配器(或布局布线器)、下载器。
如:Active-HDL、FPGA-Express、Xilinx的ISE、Altera的MAX+plusⅡ和Quartus Ⅱ、Cadence、Synplicity的Synplify Pro等。
2、简述EDA技术经历了哪几个发展阶段。
EDA技术:计算机辅助设计CAD、计算机辅助工程CAE、电子系统设计自动化ESDA.3、可编程器件(PLD)分为哪两类。
可编程逻辑器件分为:简单可编程逻辑器件SPLD、复杂可编程逻辑器件CPLD、现场可编程门阵列FPGA、在系统可编程ISP逻辑器件。
4、什么是VHDL?简述VHDL的发展史。
VHDL是美国国防部为电子项目设计承包商提供的,签定合同使用的,电子系统硬件描述语言。
1983年成立VHDL语言开发组,1987年推广实施,1993年扩充改版。
VHDL是IEEE标准语言,广泛用于数字集成电路逻辑设计。
5、简述可编程ASIC与一般ASIC在设计、应用、成本等方面的优缺点。
VHDL简明基础教程
VHDL语言简介VHDL语言翻译成中文就是超高速集成电路硬件描述语言,主要是应用在数字电路的设计中。
目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。
当然在一些实力较为雄厚的单位,它也被用来设计ASIC。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式、描述风格以及语法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。
VHDL语言简例VHDL设计实体的组成:库和程序包(Library,Package),实体(Entity),结构体(Architecture),配置(Configuration).--- VHDL Examplelibrary ieee;use ieee.std_logic_1164.all; --库声明entity TONE isport(A,B:in std_logic; --实体定义C:out std_logic);end TONE;architecture EX of TONE is --结构体定义beginC<=A OR B;end EX;VHDL不区分大小写VHDL基础知识VHDL设计实体的组成:库和程序包(Library,Package),实体(Entity),结构体(Architecture),配置(Configuration).例:用VHDL语言设计一个2选1的数据选择器entity mux21 isport(a,b:in bit;s:in bit;y:out bit);end entity mux21;architecture one of mux21 issignal d,e:bit;begind<=a and (not s); --左边三行可以用下面的语句代替。
vhdl语句
vhdl语句
VHDL是一种硬件描述语言,用于描述数字电路和系统的行为和结构。
以下是VHDL中的一些基本语句:
1.实体(Entity):用于声明一个电路或系统的接口,包括输入、输
出和输入/输出端口。
2.结构体(Architecture):用于描述电路或系统的实现,包括元件的
连接和行为描述。
3.信号赋值语句:用于在进程中给信号赋值,例如“a <= b;”。
4.条件赋值语句:用于根据条件给信号赋值,例如“IF condition THEN
a <=
b ELSE a <=
c END IF;”。
5.选择信号赋值语句:用于根据选择信号的值给信号赋值,例如
“SELECT CASE a WHEN value1 THEN b WHEN value2 THEN c WHEN OTHERS THEN d END CASE;”。
6.进程语句:用于描述电路或系统的行为,包括顺序执行和并行执
行。
7.元件例化语句:用于实例化一个元件,并将其连接到其他元件上。
8.生成语句:用于生成多个相同类型的元件实例。
9.子程序调用语句:用于调用一个子程序。
10.顺序语句:在仿真意义上具有一定顺序性,并不意味着这些语句
对于的硬件结构也有相同的顺序性。
所有门电路是并行地工作,并没有先后之分。
11.并行语句:在仿真运行中总处于两种状态:执行或者挂起。
当执
行到wait语句时,运行程序将被挂起,直到满足此语句设置的结束挂起条件后,将重新开始执行进程中的程序。
以上只是VHDL中的一些基本语句,实际上VHDL还支持更多的高级功能和描述方式。
52VHDL基本描述语句
【例5-7】例5-2的四选一数据选择器的CASE 实现。实体略。
ARCHITECTURE archmux OF mux4 IS
BEGIN PROCESS(s , a0, a1, a2, a3 ) BEGIN
CASE s IS WHEN “00”=> y<=a0; WHEN “01”=> y<=a1; WHEN “10”=> y<=a2; WHEN OTHERS => y<=a3;
从综合的角度看,BLOCK语句没有实用价值。
格式:
块名:BLOCK [(表达式)] [块声明项;]
BEGIN 并行语句;
END BLOCK [块名];
注意:块名必须有。
【例5-4】8位数字比较器
ENTITY COMP IS PORT(
a,b: IN INTEGER RANGE 0 T0 255;
顺序语句:
执行按书写顺序进行
5.2.1 并行语句
进程语句 块语句 并行信号赋值语句 元件例化语句 生成语句 并行过程调用语句
1. 进程语句PROCESS
进程语句是个复合语句,由一段程序构成。
一个程序可以有多个进程,各个进程是并发执行 的,但进程内部的所有语句却都是顺序执行的。 多进程间的通信依靠信号来传递。
2. CASE_WHEN语句 ELSIF允许在一个语句中出现多重条件,但嵌套层
数不宜过多。在含有多个互不相关信号的条件时, 采用CASE_WHEN语句程序的可读性比较好。
对完成相同的逻辑功能,用CASE语句比用IF语句耗 用更多的硬件资源。
CASE语句属于顺序语句,必须放在进程中,
格式: CASE 表达式 IS
VHDL基本结构与语法
第5章 VHDL 基本结构与语法本章通过几个例题介绍VHDL 语言的基本结构和语法规则5.1 VHDL 基本结构一个相对完整的VHDL 设计由以下四部分组成:(1) 库LIBRARY 、程序包PACKAGE :库用于存储预先完成的程序包和数据集合体;程序包用于声明在设计中将要用到的常数、数据类型、元件及子程序等。
(2) 实体ENTITY :定义设计的输入输出端口。
(3) 结构体ARCHITECTURE :定义实体的实现,即电路的具体描述。
可有多个结构体,但只有一个起作用。
(4) 配置CONFIGURA TION :为实体选定某个特定的结构体。
以上四个部分不是每个VHDL 程序必须的,但每个VHDL 程序至少含有1个实体和1个结构体。
1个实体可有多个结构体,通过配置选择1个结构体对实体起作用,其他结构体不起作用。
当只有1个结构体时不要实体。
【例5-1】2选1多路数据选择器,其功能见图5-1。
功能描述为当S=0时A 送Y , S=1时B 送Y 。
其对应的VHDL 描述为:ENTITY mux21a IS --给出实体名mux21a 和管脚定义 PORT (a,b : IN BIT ;s : INBIT ; y : OUT BIT );END mux21a ;ARCHITECTURE one OF mux21a IS --结构体,描述电路器件的内部逻辑 BEGIN功能或电路结构。
y <=a WHEN s=’0’ ELSE b;END one ;综合后结构体的门电路见图5-3。
5.1.1 实体ENTITY :定义本设计的输入输出端口/信号。
图5-1 例5-1功能示意图图5-3 例5-1综合后的门电路A S约定:[]表示为可选项;--开始的语句为注释,不参与编译和综合;黑体单词为保留字。
1、实体框架:ENTITY实体名IS--此处无分号[GENERIC(常数名:数据类型[:设定值]);]PORT - -端口定义(端口1:端口模式端口类型;…端口n:端口模式端口类型- -最后一个无分号);END[ENTITY] 实体名;注:END中带ENTITY、ARCHITECTURE为IEEESTDl076_1993版的语法要求,不带为IEEESTD1076 1987的语法要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实体与元件的对应:
ENTITY an2 IS PORT(a,b:IN BIT; c:OUT BIT); END an2; ARCHITECTURE behav OF an2 IS BEGIN c<=a AND b; END behav;
ENTITY o3 IS PORT(l, m, n:IN BIT; z: OUT BIT); END o3; ARCHITECTURE behav OF o3 IS BEGIN z<=l OR m OR n; END behav; ENTITY n1 IS PORT(x: IN BIT; y: OUT BIT); END n1; ARCHITECTURE behav OF n1 IS BEGIN y<=NOT x; END behav; COMPONENT an2 PORT(a,b: IN BIT; c: OUT BIT); END COMPONENT an2;
顺序语句只能在 进程、过程、函数 中执行;
并行语句
VHDL的并行语句包括:
赋值语句
块语句
进程语句
元件例 化语句
生成语句
并行语句的特点
语句的执行与书 写顺序无关,必须 通过敏感信号的变 化来启动;
每个并行语句相 对独立,一个语句 一般对应一个电路 模块,语句间通过 信号通信;
一、利用元件例化语句描述的 表决器
U1: an2 PORT MAP (a=>SW1, b=>SW2, c=>i1);
SW1 SW2 a b c i1
位置关联方式: 系统端口在端口映射语句中的位置,与它连接的元件端口 在元件的端口说明语句中的位置相对应。
COMPONENT an2 PORT(a: IN BIT; b: IN_BIT; c: OUT STD_BIT); END COMPONENT an2; ... u1: an2 PORT MAP (SW1, SW2, i1);
u2: andn GENERIC MAP (n=>2); PORT MAP (a(0)=>C1, a(1)=>D1, c=>Y);
元件调用的对应关系:
U1: an2 PORT MAP (a=>SW1, b=>SW2, c=>i1);
U2: an2 PORT MAP (a=>SW2, b=>SW3, c=>i2);
元件调用语句,调用元 件an2、o3、n1, U1~U5为元件标号
元件定义语句, 将实体an2、o3 和n1定义为元件
二、元件例化语句(P73-75)
作用
将事先设计好的实体看作是一个“元件”,在新 的设计中调用这个元件,定义这个元件与其他信 号、元件与元件、元件与外部端口的连接关系。
调用了 反相器 i1 i2
COMPONENT o3 PORT(l, m, n: IN BIT; z: OUT BIT); END COMPONENT o3;
COMPONENT n1 PORT(x: IN BIT; y: OUT BIT); END COMPONENT n1;
元件调用语句:
GENERIC MAP (…)为类属映射语句,确定调用元件的 实体中定义的类属参数;PORT MAP (…) 为端口映射 语句,定义调用元件与其他部分的连接关系。 标号名可看作是插座的名称,而元件名则是调用芯片的 插座-> 实际型号名称。 芯片型号-> U1 标号名 元件名 ULN2003 标号名: 元件名 GENERIC MAP (类属关联); PORT MAP (端口关联);
U4: o3 PORT MAP (i1, i2, i3, L2);
i1 i2
i3
U3: an2 PORT MAP (a=>SW1, b=>SW3, c=>i3);
U5: n1 PORT MAP(L2, L1);
端口连接定义的方法:
名字关联方式: 把元件的端口与它要连接的系统端口通过”=>”对应起来。
i3
定义元件与 端口的连接
调用了 与门
定义调用元 件间的连接
调用了 或门
定义元件与 端口的连接
格式
元件例化语句由两部分组成,包括元件定义语句和 元件调用语句。 元件定义语句: 把已经设计好的实体定义为一个可以调用的元件。 实体的端口为该元件的引脚。
COMPONENT ND2 COMPONENT 元件名 GENERIC (n: INTEGER); GENERIC(类属表); PORT (a: IN STD_LOGIC_VECTOR(nPORT(端口名表); 1 DOWNTO 0); END COMPONENT 元件名; c: OUT STD_LOGIC); END COMPONENT ND2;
ENTITY voter IS PORT(SW1, SW2, SW3: IN BIT; L1: OUT BIT; L2: BUFFER BIT); END voter; BEGIN U1: an2 PORT MAP(a=>SW1, b=>SW2, c=>i1); U2: an2 PORT MAP(a=>SW2, b=>SW3, c=>W1, b=>SW3, c=>i3); U4: o3 PORT MAP(i1, i2, i3, L2); U5: n1 PORT MAP(L2, L1); END behav;
元件例化语句、块语句与生 成语句(P67-68、73-76)
本课要解决的问题:
掌握元件例化语句的格式与应用; 掌握块语句的格式与应用; 掌握生成语句的格式与应用。
顺序语句的总结
VHDL的顺序语句包括:
赋值语句 等待语句 返回语句
流程控 制语句
空操作 语句
顺序语句的特点:
语句的执行与书 写顺序一致;
ARCHITECTURE behav OF voter IS
SIGNAL i1, i2, i3: BIT; COMPONENT an2 PORT(a,b: IN BIT; c: OUT BIT); END COMPONENT an2; COMPONENT o3 PORT(l, m, n: IN BIT; z: OUT BIT); END COMPONENT o3; COMPONENT n1 PORT(x: IN BIT; y: OUT BIT); END COMPONENT n1;