元件例化语句、块语句和生成语句
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简答题答案编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(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.用元件例化语句设计电路

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并行语句

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主要描述语句)

(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个部分组成
块语句
块标号: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高效低成本设计技术的成熟。
⑨.系统级、行为验证级硬件描述语言的出现,使复杂电子系统的设计和验证趋于简单。
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基础复习题
一、名词解释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核:是指完成某种功能的设计模块。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;