元件例化语句、块语句和生成语句

合集下载

EDA技术5

EDA技术5

PROCESS (a,b) BEGIN --sequential statements END PROCESS;
进程语句(process)
例:对上升沿触发D触发器的描述。
1. 采用敏感信号表 architecture beh1 of dff is begin process(clk) begin if clk=„1‟ then q<=d; nq<=not d; end if; end process; end beh1; 2. 采用WAIT语句指定敏感信号 architecture beh2 of dff is begin process begin wait on clk; if clk=„1‟ then q<=d; nq<=not d; end if; end process; end beh2;
进程语句(process)
敏感信号列表中信号的选择:

例子;
二选一的选择 器:A、B为输 入信号;SEL 为选择信号;Z 为输出信号;

不符合设 计要求
并行信号赋值语句
包括三种:
简单并行信号赋值;
条件信号赋值; 选择信号赋值。 共同特点: 1、赋值目标必须是信号,与其它并行语句同
时执行,与书写顺序及是否在块语句中无关。
条件信号赋值语句与进程中的多选择 if 语句等价:
PROCESS(sela, selb, a, b, c) BEGIN IF sela=„1‟ THEN q <= a WHEN sela = „1‟ ELSE q <= a;
b WHEN selb = „1‟ ELSE
c;
ELSIF selb=„1‟ THEN
等效:
LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY simp IS PORT(a, b : IN STD_LOGIC; y : OUT STD_LOGIC); END simp; ARCHITECTURE logic OF simp IS SIGNAL c : STD_LOGIC; BEGIN c <= a and b; y <= c; END logic;

并行语句

并行语句

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)块 由保护表达式值的真、假决定块语句的执 行与否,综合不支持。

EDA简答题答案(2021年整理精品文档)

EDA简答题答案(2021年整理精品文档)

EDA简答题答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(EDA简答题答案)的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为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在结构上主要分为三个部分,即可编程逻辑宏单元,可编程输入/输出单元和可编程内部连线三个部分。

30.用元件例化语句设计电路

30.用元件例化语句设计电路
end component;
componentfulladd
port(in1,in2,cin:instd_logic;
fsum,fcarry:outstd_logic);
end component;
begin
u1:halfadd
port map(a=>a(0),hsum=>sum(0),hcarry=>cout1,b=>b(0));
重庆科创职ቤተ መጻሕፍቲ ባይዱ学院授课方案(教案)
课名:教 师:
班级:编写时间:
课题:
用元件例化语句设计电路
授课时数
2
教学目的及要求:
1.掌握VHDL中元件例化语句的相关语法
2.会用元件例化语句设计VHDL程序并进行硬件测试
教学重点:
元件例化语句的VHDL相关语法
教学难点: 元件声明和元件例化语句的位置
教学步骤及内容 :
libraryieee;
use ieee.std_logic_1164.all;
entity add4 is
旁批栏:
port(a:instd_logic_vector(3downto0);
b:instd_logic_vector(3downto0);
sum:outstd_logic_vector(3downto0);
旁批栏:
6.引脚指定
指定输入输出对应的芯片的引脚,注意一些引脚不能用。选择菜单命令Assign | Pin/Location/Chip,将设计的4位寄存器与目标芯片(EPM7128SLC84-10)联系起来.
7.程序下载
Max+PlusII-progeammer-JTAG-Multi-DeviceJTAG chain setup-Select Programming file–找到你所要的.pof文件-add-OK

VHDL并行语句

VHDL并行语句
过程调用的实质内容要先装入程序包中(Package):
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主要描述语句)

第五章(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程序一般由5个部分组成

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简答题

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高效低成本设计技术的成熟。

⑨.系统级、行为验证级硬件描述语言的出现,使复杂电子系统的设计和验证趋于简单。

VHDL主要内容概括

VHDL主要内容概括

二、VHDL数据对象
数据对象有三种:常量(CONSTANT);
变量(VARIABLE);
信号(SIGNAL)。
三、VHDL数据类型
1. VHDL预定义数据类型(标准数据类型)
• 整数(INTEGER)
• 实数(REAL)
• 位(BIT)
• 位矢量(BIT_VECTOR) ) • 布尔量(BOOLEAN) • 字符(CHARACTER) • 字符串(STRING) • 时间(TIME)
表达式2 WHEN 条件2,
... 表达式n WHEN OTHERS;
六、重要的书写格式
LOOP语句 (1) 单个LOOP语句
[ LOOP标号:] LOOP
顺序语句; END LOOP [ LOOP标号 ]; (2) FOR_LOOP语句 [LOOP标号:] FOR 循环变量 IN 循环次数范围 LOOP
1、并行语句(Concurrent Statements)
并行信号赋值语句(简单信号赋值、条件信号赋值、 选择信号赋值语句) 进程语句(PROCESS) 块语句(BLOCK) 并行语句 元件例化语句 生成语句 子程序调用语句(过程调用、函数调用) REPORT语句 断言语句
顺序语句;
END LOOP [LOOP标号];
六、重要的书写格式
BLOCK 语句 [块标号]: BLOCK [(块保护表达式)] [接口说明;] [类属说明;] BEGIN
并行语句;
END BLOCK [块标号] ;
六、重要的书写格式
生成语句 [标号:] FOR 循环变量 IN 取值范围 GENERATE [说明部分;] BEGIN 并行语句;
六、重要的书写格式

vhdl基础复习题

vhdl基础复习题

一、名词解释1. VHDL(Very high speed intergated circuit Hardware Description Language):非常高速集成电路的硬件描述语言。

2.实体说明:用来描述电路器件的外部情况及各信号端口的基本性质。

3.结构体:通过若干并行语句来描述设计实体的逻辑功能(行为描述)或内部电路结构(结构描述),从而建立设计实体输出与输入之间的关系。

4.类属表:用来确定设计实体中定义的局部常数,用以将信息参数传递到实体,用类属表指明器件的一些特征。

最常用的是上升沿和下降沿之类的延迟时间,负载电容、驱动能力和功耗等。

5.数据对象:数据对象是数据类型的载体,共有三种形式的对象:Constant (常量)、Variable(变量)、Signal(信号)。

6.并行语句:并行语句有五种类型,可以把它们看成结构体的五种子结构。

这五种语句结构本身是并行语句,但内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句,如进程内部包含的即为顺序语句。

五种语句结构分别为块语句、进程语句、信号赋值语句、子程序调用语句和元件例化语句。

7.程序包:程序包可定义一些公用的子程序、常量以及自定义数据类型等。

各种VHDL编译系统都含有多个标准程序包,如Std-Logic-1164和Standard程序包。

用户也可已自行设计程序包。

程序包由两个独立的单元组成:程序包声明单元和程序包体单元构成。

二、写出下列缩写的中文(或者英文)含义1.ASIC 专用集成电路2.FPGA 现场可编程门阵列3.IP 知识产权核(软件包)4.JTAG 联合测试行动小组5.VHDL 超高速集成电路硬件描述语言6.FPGA 现场可编程门阵列7.RTL 寄存器传输级8.SOPC 可编程片上系统EAB 嵌入式阵列块HDL 硬件描述语言9.LPM 参数可定制宏模块库10.RTL 寄存器传输级11.UART 串口(通用异步收发器)12.ISP 在系统编程13.IEEE 电子电气工程师协会14.ASIC 专用集成电路B 逻辑阵列块16.IP核:是指完成某种功能的设计模块。

EDA知识要点

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语句
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基本描述语句

52VHDL基本描述语句
4)OTHERS只能出现一次,且只能作为最后一 个条件取值。
【例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基本结构与语法

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的语法要求。

VHDL第六讲_VHDL元件例化语句最新版

VHDL第六讲_VHDL元件例化语句最新版
FOR- GENERATE 模式的生成语句
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 设计实体构成自上而下层次化设计的一种重要途径。

在一个结构体中调用子程序,包括并行过程的调用非常类似于元件例化,因为通过调用,为当前系统增加了一个类似于元件的功能模块。

但这种调用是在同一层次内进行的,并没有因此而增加新的电路层次,这类似于在原电路系统增加了一个电容或一个电阻。

元件例化是可以多层次的,在一个设计实体中被调用安插的元件本身也可以是一个低层次的当前设计实体,因而可以调用其它的元件,以便构成更低层次的电路模块。

因此,元件例化就意味着在当前结构体内定义了一个新的设计层次,这个设计层次的总称叫元件,但它可以以不同的形式出现。

如上所说,这个元件可以是已设计好的一个VHDL 设计实体,可以是来自FPGA 元件库中的元件,它们可能是以别的硬件描述语言,如Verylog 设计的实体。

元件还可以是软的IP 核,或者是FPGA 中的嵌入式硬IP 核。

元件例化语句由两部分组成,前一部分是对一个现成的设计实体定义为一个元件,第二部分则是此元件与当前设计实体中的连接说明,它们的语句格式如下:(1)元件定义语语句COMPONENT 元件名GENERIC (类属表);PORT (端口名表);END COMPONENT 文件名;(2)元件例化语句例化名:元件名 PORT MAP( [端口名 =>] 连接端口名,...) ;以上两部分语句在元件例化中都是必须存在的。

第一部分语句是元件定义语句,相当于对一个现成的设计实体进行封装,使其只留出对外的接口界面。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY lsd IS PORT(CP:IN STD_LOGIC; Q1, Q2: BUFFER STD_LOGIC; Q3: OUT STD_LOGIC); END lsd; ARCHITECTURE behav OF lsd IS SIGNAL i1: STD_LOGIC; COMPONENT df1 PORT(clk,d: IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT df1; COMPONENT no2 PORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC); END COMPONENT no2;
元件调用语句,调用元 件an2、o3、n1, U1~U5为元件标号
元件定义语句, 将实体an2、o3 和n1定义为元件
二、元件例化语句(P73-75)

作用
将事先设计好的实体看作是一个“元件”,在新 的设计中调用这个元件,定义这个元件与其他信 号、元件与元件、元件与外部端口的连接关系。
调用了 反相器 i1 i2
COMPONENT df1 PORT(clk,d: IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT df1;
COMPONENT no2 PORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC); END COMPONENT no2;

实体与元件的对应:
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;
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);
顺序语句只能在 进程、过程、函数 中执行;
并行语句

VHDL的并行语句包括:
赋值语句
块语句
进程语句
元件例 化语句
生成语句

并行语句的特点
语句的执行与书 写顺序无关,必须 通过敏感信号的变 化来启动;
每个并行语句相 对独立,一个语句 一般对应一个电路 模块,语句间通过 信号通信;
一、利用元件例化语句描述的 表决器
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;
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);
端口连接定义的方法:
名字关联方式: 把元件的端口与它要连接的系统端口通过”=>”对应起来。
A1
B1
a(1) a(0)
U1
c
X a(1) a(0)
U3
c Z1
Y
U2
C1
D1
a(1) a(0)
c
【流水灯】
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY df1 IS PORT(clk,d: IN STD_LOGIC; q: OUT STD_LOGIC); END df1; ARCHITECTURE behav OF df1 IS BEGIN PROCESS(clk) BEGIN IF(clk'EVENT AND clk='1') THEN q<=d; END IF; END PROCESS; END behav; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY no2 IS PORT(a,b:IN STD_LOGIC; c:OUT STD_LOGIC); END no2; ARCHITECTURE behav OF no2 IS BEGIN c<=NOT (a OR b); END behav;
a(0)

a(n)

c
P75【例3-13 元件例化】
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ORD41 IS PORT(A1,B1,C1,D1:IN STD_LOGIC; Z1:OUT STD_LOGIC); END ORD41; ARCHITECTURE ORD41BEHV OF ORD41 IS COMPONENT ND2 GENERIC ( n: INTEGER); PORT(a: IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); c: OUT STD_LOGIC); END COMPONENT ND2; SIGNAL X,Y:STD_LOGIC; BEGIN U1:ND2 GENERIC MAP (n=>2); PORT MAP(A1,B1,X); U2:ND2 GENERIC MAP (n=>2); PORT MAP(a(1)=>C1,a(0)=>D1,C=>Y); U3:ND2 GENERIC MAP (n=>2); PORT MAP(X,Y,C=>Z1); END ARCHITECTURE ORD41BEHV;
a a b c i1
b
P74【例3-12 多输入与非门】
LIBRARY IEEE; USE IEEE.STD. LOGIC_1164. ALL; ENTITY ND2 IS GENERIC( n: INTEGER); PORT(a: IN STD_LOGIC_VECTOR(n-1 DOWNTO 0); c: OUT STD_LOGIC); END ND2; ARCHITECTURE behav OF ND2 IS BEGIN PROCESS(a) VARIABLE int: STD_LOGIC; BEGIN int :=‘0’; FOR i In a’LENGTH-1 DOWNTO 0 LOOP IF a(i)=‘0’ THEN int:=‘1’; END IF; END LOOP; c<=int; END PROCESS; END;
三、VHDL不同描述风格(P82-86)
【表决器描述】
LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY voter IS PORT( a, b, c : IN STD_LOGIC; x : BUFFER STD_LOGIC; y : OUT STD_LOGIC ); END ENTITY voter ; ARCHITECTURE three OF voter IS SIGNAL t1, t2, t3: STD_LOGIC_VECTOR(1 DOWNTO 0); SIGNAL t: INTEGER RANGE 0 TO 3; BEGIN t1<='0'& a; t2<='0'& b; t3<='0'& c; t<=CONV_INTEGER(t1)+CONV_INTEGER(t2)+CON V_INTEGER(t3); x<='1' WHEN (t>1) ELSE '0'; y<=NOT x; END ARCHITECTURE three;
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=>i2); U3: an2 PORT MAP(a=>SW1, b=>SW3, c=>i3); U4: o3 PORT MAP(i1, i2, i3, L2); U5: n1 PORT MAP(L2, L1); END behav;
相关文档
最新文档