版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字系统设计基础,第3章 VHDL 基础,VHDL历史回顾,VHDL是VHSICHardwareDescriptionLanguage的缩写;,概括地说,VHDL具有以下主要优点: (1) VHDL具有强大的功能,覆盖面广,描述能力强,。 (2) VHDL具有良好的可读性。 (3) VHDL具有良好的可移植性。 (4) 使用VHDL可以延长设计的生命周期。 (5) VHDL支持对大规模设计的分解和已有设计的再利用。,VHDL历史回顾,VHDL的基本结构与语法 一个VHDL设计由若干个VHDL文件构成,每个文件主要包含如下三个部分中的一个 或全部:1)程序包(Package);2)实体(Enti
2、ty);3)结构体(Architecture)。,配置、库等,3.1 VHDL 基本语法,3.1.1 组合电路描述,图3-1 mux21a实体 图3-2 mux21a结构体,实体的图形表述,结构体的电路原理图表达,3.1 VHDL 基本语法,3.1.1 组合电路描述,【例3-1】 ENTITY mux21a IS PORT ( a, b : IN BIT; s : IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ; END ARCHITEC
3、TURE one ;,实体,结构体,WHEN_ELSE 语句是并行语句表达的。它的含义是当s=0时,a输入端的信号传送到y.否则b输入到y,3.1 VHDL 基本语法,3.1.1 组合电路描述,【例3-2】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS SIGNAL d,e : BIT; BEGIN d = a AND (NOT S) ; e = b AND s ; y = d OR e ; END ARCHITECTURE one
4、 ;,使用了并行语句的功能描述,具体使用了布尔函数的表达式来描述。其中的AND , OR , NOT分别是与,或,非的逻辑操作符号。,3.1 VHDL 基本语法,【例3-3】 ENTITY mux21a IS PORT ( a, b, s: IN BIT; y : OUT BIT ); END ENTITY mux21a; ARCHITECTURE one OF mux21a IS BEGIN PROCESS (a,b,s) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; END PROCESS; END ARCHITECTURE one ;,
5、3.1.1 组合电路描述,使用了顺序语句IF_THEN_ELSE 表达其功能的不同描述,3.1 VHDL 基本语法,图3-3 mux21a功能时序波形,3.1.1 组合电路描述,3.1 VHDL 基本语法,3.1.2 VHDL结构,【例3-4】 ENTITY e_name IS PORT ( p_name : port_m data_type; . p_namei : port_mi data_type ); END ENTITY e_name;,1. 实体表达,注意:编译中不区分大小写,3.1 VHDL 基本语法,2. 实体名,3. 端口语句和端口信号名,4. 端口模式,“IN”、“OUT”
6、、“INOUT”、“BUFFER”,5. 数据类型,不应用数字或中文实体名或EDA软件中已定义号的元件名作为实体名,描述电路的端口及端口信号必须用端口语句PORT()来引导,并在语句结尾处加分号。,3.1 VHDL 基本语法,6. 结构体表达,【例3-5】 ARCHITECTURE arch_name OF e_name IS 说明语句 BEGIN (功能描述语句) END ARCHITECTURE arch_name ;,说明语句包括在结构体中,用以说明和定义数据对象、数据类型、元件调用声明等。说明语句并非是必须的,功能描述语句不同,结构体中必须给出相应的电路功能描述语句。,3.1 VHDL
7、 基本语法,7. 赋值符号和数据比较符号,IF a THEN . - 注意,a的数据类型必须是boolean IF (s1=0)AND(s2=1)OR(cb+1) THEN .,8. 逻辑操作符,BIT、BOOLEAN、STD_LOGIC,AND(与)、OR(或)、NAND(与非)、NOR(或非)、XOR(异或)、XNOR(同或)和NOT(取反),= VHDL要求赋值符两边的信号的数据类型必须一致。,= 表达式输出结果是布尔型。,用于条件语句的判断表达式可以是一个值,也可以是更复杂的逻辑或运算表达式:,3.1 VHDL 基本语法,9. 条件语句,10. WHEN_ELSE条件信号赋值语句,赋值
8、目标 = 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE . 表达式 ;,z = a WHEN p1 = 1 ELSE b WHEN p2 = 1 ELSE c ;,3.1 VHDL 基本语法,11. 进程语句和顺序语句,12. 文件取名和存盘,IF_THEN_ELSE_END IF; PROCESS. END PROCESS,“.vhd”,adder_f.vhd,PROCESS后面跟敏感信号列表,通常要求将进程中的所有的输入信号都放入敏感信号列表中。例3-3,3.2 时序电路描述,3.2.1 D 触发器,VHDL描述上增加部分: 数据类型STD_LOGIC 由LI
9、BRARY 引导的库的说明 内部信号SIGNAL 上升沿表达式,3.2 时序电路描述,3.2.2 时序描述VHDL规则,1. 标准逻辑位数据类型 STD_LOGIC,BIT数据类型定义: TYPE BIT IS(0,1); -只有两种取值 STD_LOGIC数据类型定义: TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-); -有9种取值,3.2 时序电路描述,2. 设计库和标准程序包,LIBRARY WORK ; LIBRARY STD ; USE STD.STANDARD.ALL ;,LIBRARY ; USE .ALL ;,LIBRARY IEEE ; USE I
10、EEE.STD_LOGIC_1164.ALL ;,3.2 时序电路描述,3. 信号定义和数据对象,VHDL涉及的对象(Object)主要有三类:信号、变量、常量。,信号:信号代表电路内部各元件之间的连接线,是实体间动态交换数据的手段。格式为 SIGNAL 信号名:信号类型 :=初始值; 例如: SIGNAL vcc:std_logic :=1;,3. 信号定义和数据对象,变量 变量用于对暂时数据的局部存储,只能在进程语句和子程序中使用。格式为 VARIABLE 变量名 ,变量名:变量类型 :=初始值; 例如: VARIABLE a,b :std_logic;,3.2 时序电路描述,3.2 时序
11、电路描述,常量 常量是一个在仿真/综合过程中固定不变的值,可通过其标识符来引用。格式为 CONSTANT 常量名 ,常量名:类型名 :=取值; 例如: CONSTANT PI:REAL := 3.14159;,3. 信号定义和数据对象,对象的作用范围:,在实体和程序包中说明的信号和常量可作用于该实体及其结构体内部,在结构体中说明的信号和常量则仅作用于该结构体内部。 变量仅在说明语句所在的进程或子程序内部起作用,是一个局部量。,3.2 时序电路描述,3. 信号定义和数据对象,说明的形式与位置不同,作用范围也不同。信号可用于进程间的通信,变量则不行。 变量的赋值是立即生效的;对信号的赋值则是按仿真
12、节拍来进行的,还可以用AFTER语句来附加延时。 信号的赋值采用“=”赋值符,而变量的赋值是用“:=”符号。,信号和变量的差别:,3.2 时序电路描述,3. 信号定义和数据对象,CLKEVENT AND CLK= 1 EVENT,4. 上升沿检测表式和信号属性函数EVENT,5. 不完整条件语句与时序电路,3.2 时序电路描述,【例3-7】 ENTITY COMP_BAD IS PORT( a1,b1 : IN BIT; q1 : OUT BIT ); END ; ARCHITECTURE one OF COMP_BAD IS BEGIN PROCESS (a1,b1) BEGIN IF a1
13、 b1 THEN q1 = 1 ; ELSIF a1 b1 THEN q1 = 0 ;- 未提及当a1=b1时,q1作何操作 END IF; END PROCESS ; END ;,3.2 时序电路描述,图3-5 例3-7的电路图,3.2 时序电路描述,图3-6 例3-8的电路图,【例3-8】 . IF a1 b1 THEN q1 = 1 ; ELSE q1 = 0 ; END IF; .,3.2 时序电路描述,3.2.3 时序电路的不同表述,时序电路的建立只能在只能在进程中的顺序语句来建立。,【例3-9】 PROCESS (CLK) BEGIN IF CLKEVENT AND (CLK=1)
14、 AND (CLKLAST_VALUE=0) THEN Q = D ; -确保CLK的变化是一次上升沿的跳变 END IF; END PROCESS ; 【例3-10】 PROCESS (CLK) BEGIN IF CLK=1 AND CLKLAST_VALUE=0 -同例3-9 THEN Q = D ; END IF; END PROCESS ;,【例3-11】 ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1 : STD_LOGIC; BEGIN PROCESS (CLK) BEGIN IF rising_edge(CLK) - 必须打开STD_LOGIC_116
15、4程序包 THEN Q1 = D ; END IF; END PROCESS ; Q = Q1 ; -在此,赋值语句可以放在进程外,作为并行赋值语句 END ;,3.2 时序电路描述,3.2.3 时序电路的不同表述,【例3-12】 . PROCESS BEGIN wait until CLK = 1 ; -利用wait语句 Q = D ; END PROCESS;,时序电路的建立只能在只能在进程中的顺序语句来建立。,3.2 时序电路描述,3.2.3 时序电路的不同表述,3.2 时序电路描述,【例3-13】 . PROCESS (CLK) BEGIN IF CLK = 1 THEN Q = D
16、; -利用进程的启动特性产生对CLK的边沿检测 END IF; END PROCESS,图3-7 例3-13的时序波形,3.2 时序电路描述,【例3-14】 . PROCESS (CLK,D) BEGIN IF CLK = 1 -电平触发型寄存器 THEN Q = D ; END IF; END PROCESS ;,图3-8 例3-14的时序波形,3.3 全加器的VHDL描述,3.3.1 半加器描述,3.3 全加器的VHDL描述,3.3.1 半加器描述,【例3-15】 LIBRARY IEEE; -半加器描述(1):布尔方程描述方法 USE IEEE.STD_LOGIC_1164.ALL; E
17、NTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is BEGIN so = NOT(a XOR (NOT b) ; co = a AND b ; END ARCHITECTURE fh1;,3.3 全加器的VHDL描述,3.3.1 半加器描述,【例3-17】 LIBRARY IEEE ; -或门逻辑描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2a IS PORT (a, b
18、 :IN STD_LOGIC; c : OUT STD_LOGIC ); END ENTITY or2a; ARCHITECTURE one OF or2a IS BEGIN c = a OR b ; END ARCHITECTURE one ;,3.3 全加器的VHDL描述,【例3-18】 LIBRARY IEEE; -1位二进制全加器顶层设计描述 USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder IS PORT (ain,bin,cin : IN STD_LOGIC; cout,sum : OUT STD_LOGIC ); END ENTITY f_a
19、dder; ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder -调用半加器声明语句 PORT ( a,b : IN STD_LOGIC; co,so : OUT STD_LOGIC); END COMPONENT ; COMPONENT or2a PORT (a,b : IN STD_LOGIC; c : OUT STD_LOGIC); END COMPONENT; SIGNAL d,e,f : STD_LOGIC; -定义3个信号作为内部的连接线。 BEGIN u1 : h_adder PORT MAP(a=ain,b=bin,co=d,so=
20、e); -例化语句 u2 : h_adder PORT MAP(a=e, b=cin, co=f,so=sum); u3 : or2a PORT MAP(a=d, b=f, c=cout); END ARCHITECTURE fd1;,例化语句 元件例化就是引入一种连接关系,将预先设计好的设计实体定义为一个元件,然后利用特定的语句将此元件与当前的设计实体中的指定端口相连。 调用声明:,3.3 全加器的VHDL描述,COMPONENT 元件名 IS PORT (端口名表) ; END COMPONENT 文件名 ;,例化名 : 元件名 PORT MAP( 端口名 = 连接端口名,.);,元件和端
21、口连接说明,3.3 全加器的VHDL描述,【例3-16】 LIBRARY IEEE; -半加器描述(2):真值表描述方法 USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder IS PORT (a, b : IN STD_LOGIC; co, so : OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE fh1 OF h_adder is SIGNAL abc : STD_LOGIC_VECTOR(1 DOWNTO 0) ; -定义标准逻辑位矢量数据类型 BEGIN abc so so so so NULL ; E
22、ND CASE; END PROCESS; END ARCHITECTURE fh1 ;,CASE语句 CASE语句属于顺序语句,因此必须放在进程语句中使用。CASE语句的一般表述是:,CASE IS When = ; . ; ; When = ; . ; ; . WHEN OTHERS = ; END CASE ;,“=”等价于“THEN”,【例3-16】,3.3 全加器的VHDL描述,2. 标准逻辑矢量数据类型,B = 01100010 ; - B(7)为 0 B(4 DOWNTO 1) = 1101 ; - B(4)为 1 B(7 DOWNTO 4) = A ; - B(6)等于 A(2
23、),SIGNAL C :BIT_VECTOR(3 DOWNTO 0);,使用STD_LOGIC_VECTOR中,必须注明其数组宽度,即位宽,如: B : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; 或 SIGNAL A :STD_LOGIC_VECTOR(1 TO 4),STD_LOGIC_VECTOR 与STD_LOGIC一样,都定义在STD_LOGIC_1164程序包中,但STD_LOGIC属于标准位类型,而STD_LOGIC_VECTOR被定义为标准一维数组,数组中每一个元素都是STD_LOGIC类型。使用STD_LOGIC_VECTOR可以表达电路中并列的多通
24、道端口或节点,或者总线BUS.,【例3-16】,3.3 全加器的VHDL描述,3. 并置操作符 表示将操作数或是数组合并起来形成新的数组。,SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0) ; SIGNAL d : STD_LOGIC_VECTOR (1 DOWNTO 0) ; . a = 10d(1)1 ; - 元素与元素并置,并置后的数组长度为4 . IF a d = 101011 THEN . - 在IF条件句中可以使用并置符,3.3 全加器的VHDL描述,3.4 计数器设计,【例3-19】 ENTITY CNT4 IS PORT ( CLK : IN B
25、IT ; Q : BUFFER INTEGER RANGE 15 DOWNTO 0 ) ; END ; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ; END IF; END PROCESS ; END bhv;,3.4 计数器设计,2计数器的其他表述方法,【例3-20】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY CNT4 I
26、S PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; END IF; END PROCESS ; Q = Q1 ; END bhv;,3.5 一般计数器的VHDL设计方法, ENTITY CNT10 IS PORT (CL
27、K,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10; ARCHITECTURE behav OF CNT10 IS BEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = 1 THEN CQI := (OTHERS =0) ; ELSIF CLKEVENT AND CLK=1 THEN IF EN = 1 THEN IF CQI 0)
28、; END IF; END IF; END IF; IF CQI = 9 THEN COUT = 1; ELSE COUT = 0; END IF; CQ = CQI; END PROCESS; END behav;,CLK,RST,EN,RST,EN,CQ,COUT,CLK,RST,EN,RST,EN,CQ,COUT,CQ,COUT,3.5 一般计数器的VHDL设计方法,3.5.1 相关语法,SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); . d1 0); a1 :=
29、 (OTHERS=0) ;,d1 e(3),3=e(5), OTHERS=e(1) );,f = e(1) ,3.5 一般计数器的VHDL设计方法,3.5.2 程序功能分析,图3-11 例3-21的RTL电路(Synplify综合),3.5 一般计数器的VHDL设计方法,3.5.3 移位寄存器设计,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY SHFRT IS - 8位右移寄存器 PORT ( CLK,LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB : OUT S
30、TD_LOGIC ); END SHFRT; ARCHITECTURE behav OF SHFRT IS BEGIN PROCESS (CLK, LOAD) VARIABLE REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF LOAD = 1 THEN REG8 := DIN; ELSE REG8(6 DOWNTO 0) := REG8(7 DOWNTO 1); END IF; END IF; QB = REG8(0); - 输出最低位 END PROCESS; END behav;,带有同步
31、并行预置功能的8位右移移位寄存器。CLK是移位时钟信号,DIN是8位并行预置数据端口,LOAD是并行数据预置使能信号,QB是串行输出端口。,1 0 0 1 1 0 1 0,1 0 0 1 1 0 1 0,1 1 0 0 1 1 0 1,3.5 一般计数器的VHDL设计方法,3.5.3 移位寄存器设计,3.6 数据对象,常数,CONSTANT 常数名:数据类型 := 表达式 ;,CONSTANT FBT : STD_LOGIC_VECTOR := 010110 ;,VHDL涉及的对象(Object)主要有三类:信号、变量、常量。,常量是一个在仿真/综合过程中固定不变的值,可通过其标识符来引用。,
32、3.6 数据对象,变量,VARIABLE 变量名 : 数据类型 := 初始值 ;,VARIABLE a : INTEGER RANGE 0 TO 15 ; -变量a定义为常数,取值范围是0到5,目标变量名 := 表达式 ;,变量用于对暂时数据的局部存储,只能在进程语句和子程序中使用。,3.6 数据对象,信号,SIGNAL 信号名: 数据类型 := 初始值 ;,目标信号名 = 表达式 AFTER 时间量;,信号代表电路内部各元件之间的连接线,是实体间动态交换数据的手段。,3.6 数据对象,3.6.4 进程中的信号赋值与变量赋值,表3-1 信号与变量赋值语句功能的比较,常量的定义和使用范围:设计单
33、元有实体、结构体、程序包、块、进程、子程序等。 信号的定义和使用范围:实体、结构体、程序包。 变量的使用范围:进程和子程序。,3.6 数据对象,3.6.4 进程中的信号赋值与变量赋值,【例3-23】 ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) VARIABLE QQ : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN QQ := D1 ; END IF; END PROCESS ; Q1 = QQ; END ;,3.6 数据对象,3.6.4 进程中的信号赋值与变量赋值,【例3-24】 ARCHIT
34、ECTURE bhv OF DFF3 IS SIGNAL QQ : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN QQ = D1 ; END IF; END PROCESS ; Q1 = QQ; END ;,3.6 数据对象,LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3 IS PORT ( CLK,D1 : IN STD_LOGIC ; Q1 : OUT STD_LOGIC ) ; END ; ARCHITECTURE bhv OF DFF
35、3 IS SIGNAL A,B : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN A = D1 ; B = A ; Q1 = B ; END IF; END PROCESS ; END ;,3.6 数据对象,LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3 IS PORT ( CLK,D1 : IN STD_LOGIC ; Q1 : OUT STD_LOGIC ) ; END ; ARCHITECTURE bhv OF DFF3 IS BEGI
36、N PROCESS (CLK) VARIABLE A,B : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN A := D1 ; B := A ; Q1 = B ; END IF; END PROCESS ; END ;,3.6 数据对象,3.6.4 进程中的信号赋值与变量赋值,图3-15 例3-26的RTL电路 图3-14 D触发器电路,A,B,3.6 数据对象,SIGNAL in1,in2,e1, . : STD_LOGIC ; . PROCESS(in1,in2, . . .) VARIABLE c1,.:STD_LOGIC_VECTOR(3
37、 DOWNTO 0) BEGIN IF in1 = 1 THEN e1=“1010”; IF in2 = 1 THEN . c1:=“0011” END PROCESS;,2nS+:激活,2nS+2:,E1保持不变 c1为0011,E1为1010,3.8 进程语句归纳,3.8.1 进程语句格式,PROCESS语句结构的一般表达格式如下 进程标号: PROCESS ( 敏感信号参数表 ) IS 进程说明部分 BEGIN 顺序描述语句 END PROCESS 进程标号;,3.8 进程语句归纳,3.8.3 进程要点,PROCESS为一无限循环语句 (执行状态、等待状态),PROCESS中的顺序语句具
38、有明显的顺序/并行运行双重性,PROCESS(abc) BEGIN CASE abc IS WHEN 0000 = so so so so so NULL ; END CASE; END PROCESS;,3.8 进程语句归纳,进程必须由敏感信号的变化来启动,进程语句本身是并行语句,3.8.3 进程要点,信号是多个进程间的通信线,一个进程中只允许描述对应于一个时钟信号的同步时序逻辑,3.9 并行赋值语句概述,【例3-34】 SIGNAL select : INTEGER RANGE 15 DOWNTO 0; . . . Select = 0 WHEN s0=0 AND s1=0 ELSE 1
39、WHEN s0=1 AND s1=0 ELSE 2 WHEN s0=0 AND s1=1 ELSE 3 ; x = a WHEN select=0 ELSE b WHEN select=1 ELSE c WHEN select=2 ELSE d ;,Data1=a nd b; Data2=c;,3.10 双向和三态电路信号赋值,3.10.1 三态门设计,一个8位三态控制门电路的描述,当使能控制信号为“1”时,8位数据输出;为“0 ”时输出高阻态,语句中将高阻态数据“ZZZZZZZZ”向输出端口赋值。, ARCHITECTURE bhv OF tri_s IS BEGIN PROCESS(ena
40、ble,datain) BEGIN IF enable = 1 THEN dataout = datain ; ELSE dataout =ZZZZZZZZ ; END IF ; END PROCESS; END bhv;,3.10 双向和三态电路信号赋值,3.10.1 三态门设计,图3-21 8位3态控制门电路,3.10 双向和三态电路信号赋值,3.10.2 双向端口设计,library ieee; use ieee.std_logic_1164.all; entity tri_state is port (control : in std_logic; in1: in std_logic_
41、vector(7 downto 0); q : inout std_logic_vector(7 downto 0); x : out std_logic_vector(7 downto 0); end tri_state; architecture body_tri of tri_state is begin process(control,q,in1) begin if (control = 0) then x = q ; else q = in1; x=ZZZZZZZZ ; end if; end process; end body_tri;,3.10 双向和三态电路信号赋值,【例3-3
42、7】 (以上部分同上例) process(control,q,in1) begin if (control=0) then x = q ; q = ZZZZZZZZ; else q = in1; x =ZZZZZZZZ; end if; end process; end body_tri;,3.10.2 双向端口设计,输入,输出,3.10 双向和三态电路信号赋值,3.10.2 双向端口设计,图3-23 例3-36的仿真波形图,3.10 双向和三态电路信号赋值,3.10.2 双向端口设计,图3-24 例3-37的综合结果,3.10 双向和三态电路信号赋值,3.10.2 双向端口设计,图3-25 例3-37的仿真波形图,3.10 双向和三态电路信号赋值,3.10.3 三态总线电路设计,LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tristate2 IS port ( input3,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沈阳药科大学《会计学原理》2025-2026学年期末试卷
- 上海邦德职业技术学院《新编中国秘书史》2025-2026学年期末试卷
- 沈阳建筑大学《高级英语》2025-2026学年期末试卷
- 内蒙古能源职业学院《社会研究方法》2025-2026学年期末试卷
- 山西同文职业技术学院《成本会计学》2025-2026学年期末试卷
- 上海戏剧学院《工程监理》2025-2026学年期末试卷
- 上海出版印刷高等专科学校《西医内科学》2025-2026学年期末试卷
- 上海商学院《电子测量原理》2025-2026学年期末试卷
- 石家庄经济职业学院《Java》2025-2026学年期末试卷
- 大数据财政管理的应用与优化
- 2026年国家队反兴奋剂准入教育考试试题及答案
- 第九章第一节压强课件2025-2026学年人教版物理八年级下学期
- 100以内看图写数专项练习题(每日一练共6份)
- 移动模架施工安全监理实施细则
- 中兴新云2026年测评-B套题
- 2026年全国体育单招考试时事政治(2025.6-2026.1)-2026届中职高考
- 2026年商丘职业技术学院单招职业技能测试题库带答案详解
- 2026年山西经贸职业学院单招职业技能考试题库及答案解析
- 2026年丽水职业技术学院单招职业适应性考试题库带答案详解(基础题)
- 2025年广东中烟工业机电岗位笔试及答案
- 2026浙大二院临床医学博士后招聘备考题库及完整答案详解1套
评论
0/150
提交评论