硬件描述语言VHDL基础.ppt

上传人:牧羊曲112 文档编号:6595134 上传时间:2023-11-16 格式:PPT 页数:72 大小:1.13MB
返回 下载 相关 举报
硬件描述语言VHDL基础.ppt_第1页
第1页 / 共72页
硬件描述语言VHDL基础.ppt_第2页
第2页 / 共72页
硬件描述语言VHDL基础.ppt_第3页
第3页 / 共72页
硬件描述语言VHDL基础.ppt_第4页
第4页 / 共72页
硬件描述语言VHDL基础.ppt_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《硬件描述语言VHDL基础.ppt》由会员分享,可在线阅读,更多相关《硬件描述语言VHDL基础.ppt(72页珍藏版)》请在三一办公上搜索。

1、1,第三章 硬件描述语言VHDL基础,3.1 VHDL语言程序的基本结构 3.2 VHDL语言的数据类型及运算操作符3.3 VHDL语言的主要描述语句 3.4 VHDL语言构造体的描述方式,2,3.1 VHDL语言程序的基本结构实体(Entity),构造体(Architecture),配置(Configuration),包集合(Package),和库(Library),VHDL 大小写不敏感,3,VHDL语言设计的基本设计单元实体(Entity)描述此设计功能输入输出端口(Port);在层次化设计时,Port为模块之间的接口;在芯片级,则代表具体芯片的管脚。实体说明 ENTITY 实体名 IS

2、 PORT(端口名(,端口名):方向 数据类型名;:端口名(,端口名):方向 数据类型名);END 实体名;,Entity eqcomp4 isport(a,b:in std_logic_vector(3 downto 0);equal:out std_logic);end eqcomp4;,4,基本数据类型:BIT和BIT_VECTORSTD_LOGIC和STD_LOGIC_VECTOR端口模式,5,Out与Buffer的区别,Entity test1 is port(a:in std_logic;b,c:out std_logic);end test1;architecture a of

3、test1 isbegin b=not(a);c=b;-Errorend a;,Entity test2 is port(a:in std_logic;b:buffer std_logic;c:out std_logic);end test2;architecture a of test2 isbegin b=not(a);c=b;end a;,结论:均表示输出,但BUFFER声明的信号可以反馈到实体内部,而OUT声明的信号却不可以。,6,构造体描述设计单元具有的具体功能 结构体有三种描述方式行为描述(behavioral)数据流描述(dataflow)结构化描述(structural)格式:

4、ARCHITECTURE 构造体名 OF 实体名 IS 定义语句 内部信号,常数,数据类型,函数等的定义 BEGIN 并行处理语句END 构造体名;,7,构造体中的描述语句并行语句:同时执行,在进程语句(PROCESS)的外部。顺序语句:按书写顺序执行,在进程语句(PROCESS)的内部。,例如:entity sample is port(a,b:in std_logic;c:out std_logic);end sample;architecture beha of sample is signal d:std_logic;begind=a and b;C=not(d);end beha;,

5、8,3.1.2 构造体的子结构描述 3种形式的子结构描述:BLOCK描述(块描述)PROCESS描述(进程描述)SUBPROGRAMS描述(子程序描述)BLOCK语句描述格式:块标号:BLOCK BEGIN:END BLOCK 块标号;BLOCK内的语句执行顺序:并行执行,9,例如:二选一电路 ENTITY mux IS PORT(d0,d1,sel:IN BIT;q:OUT BIT);END mux;ARCHITECTURE connect OF mux IS SIGNAL tmp1,tmp2,tmp3:BIT;BEGIN cale:BLOCK BEGIN tmp1=d1 AND sel;t

6、mp2=d0 AND(NOT sel);tmp3=tmp1 OR tmp2;q=tmp3;END BLOCK cale;END connect;,10,进程(PROCESS)描述格式:进程名:PROCESS(信号1,信号2,)BEGIN:END PROCESS 进程名;敏感量:是PROCESS的输入信号,写在“PROCESS”后面的括号中当PROCESS所带的敏感量任何一个发生变化时,PROCESS中的语句就会执行一遍。语句执行顺序:顺序执行。多进程的关系:并行执行。,11,例如:二选一电路 ENTITY mux1 IS PORT(d0,d1,sel:IN BIT;q:OUT BIT);END

7、 mux1;ARCHITECTURE connect OF mux1 IS BEGIN cale:PROCESS(d0,d1,sel)VARIABLE tmp1,tmp2,tmp3:BIT;-在进程中定义的变量 BEGIN tmp1:=d0 AND sel;-输入端口向变量赋值 tmp2:=d1 AND(NOT sel);tmp3:=tmp1 OR tmp2;q=tmp3;END PROCESS cale;END connect;,12,子程序描述 过程格式 PROCEDURE 过程名(参数1,参数2)IS 定义变量语句 BEGIN 顺序处理语句 END 过程名;参数:可以是输入也可以是输出

8、语句执行方式:调用者在调用过程前先将初始值传递给过程的输入参数,然后过程语句启动,按顺序自上至下执行过程结构中的语句,执行结束后,将输出值拷贝到调用者的“OUT”和“INOUT”所定义的变量或信号中。,13,例如:求最大值电路library ieee;use ieee.std_logic_1164.all;entity conpro is port(da,db:in std_logic_vector(7 downto 0);o1:out std_logic_vector(7 downto 0);end conpro;,14,architecture beha of conpro is,proc

9、edure max(a:in std_logic_vector;b:in std_logic_vector;q:out std_logic_vector)is begin if(ab)then q:=a;else q:=b;end if;end max;,begin process(da,db)variable temp:std_logic_vector(7 downto 0);begin max(da,db,temp);o1=temp;end process;end beha;,15,函数 格式 FUNCTION 函数名(参数1,参数2.)RETURN 数据类型名 IS 定义变量语句 BEG

10、IN 顺序处理语句 RETURN 返回变量名;END 函数名;参数:输入参数的个数不受限制,在函数名后的括号内声明,而输出参数只有一个,在return语句后声明;输入输出参数的属性均可省略。语句执行方式:顺序执行。,16,例如:求最大值电路architecture beha of conpack is,function max(a:std_logic_vector;b:std_logic_vector)return std_logic_vector is variable temp:std_logic_vector(7 downto 0);begin if(ab)then temp:=a;el

11、se temp:=b;end if;return temp;end max;,begin o1=max(da,db);end beha;,17,3.1.3 包集合、库和配置 库:存放编译后的数据集合 库的种类 IEEE库:std_logic STD库:standard、textioWORK库:ASIC库:用户自定义库:例如:vhdl87文件夹下的altera、std、vital、ieee 库的使用 LIBRARY 库名;USE LIBRARY_name.package_name.ITEM_name;,18,例如:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;

12、例如:LIBRARY STD;USE STD.TEXTIO.ALL;库的作用范围:从一个实体说明开始到它所属的结构体、配置为止。当一个源程序中出现两个以上实体的使用说明语句时,应在每个实体说明语句前重复书写。例如:,19,Library ieee;Use ieee.std_logic_1164.all;Entity and1 isEnd and1;Architecture beha1 of and1 isBeginEnd beha1;Library ieee;Use ieee.std_logic_1164.all;Entity and1 isEnd and1;Architecture beha

13、2 of and1 isBeginEnd beha2;,20,包集合:通过编译成为库结构中的一个层次 格式 PACKAGE 包集合名 IS 说明语句 END 包集合名;PACKAGE BODY 包名 IS 说明语句 END 包集合名;使用 例如:使用在包集合bpac中定义的max函数。,21,library ieee;use ieee.std_logic_1164.all;,package bpac is function max(a:std_logic_vector;b:std_logic_vector)return std_logic_vector;end bpac;,package bo

14、dy bpac is function max(a:std_logic_vector;b:std_logic_vector)return std_logic_vector is variable temp:std_logic_vector(7 downto 0);begin if(ab)then temp:=a;else temp:=b;end if;return temp;end max;end bpac;,22,library ieee;use ieee.std_logic_1164.all;library work;use;entity conpack is port(da,db:in

15、std_logic_vector(7 downto 0);o1:out std_logic_vector(7 downto 0);end conpack;architecture beha of conpack isbegin o1=max(da,db);end beha;,现行作业库可以省略,23,配置 作用:描述层与层之间的连接关系以及实体与结构之间的连接关系,便于调试和设计。格式:CONFIGURATION 配置名 OF 实体名 IS 说明语句 END配置名;例如:用两个不同构造体的配置实现rs触发器。ENTITY rs IS PORT(set,reset:IN BIT;q,qb:BUF

16、FER BIT);END rs;,24,ARCHITECTURE rsff1 OF rs IS COMPONENT nand2 PORT(a,b:IN BIT;c:OUT BIT);END COMPONENT;BEGIN U1:nand2 PORT MAP(a=set,b=qb,c=q)U2:nand2 PORT MAP(a=reset,b=q,c=qb)END rsff1;ARCHITECTURE rsff2 OF rs ISBEGIN q=NOT(qb AND set);qb=NOT(q AND reset);END rsff2;CONFIGRATION rscon OF rs IS-选择

17、构造体rsff1FOR rsff1END FOR;END rscon;,25,32 VHDL语言的数据类型及运算操作符321 VHDL语言的客体(数据对象)客体:在VHDL语言中,凡是可以赋予一个值的对象就称为客体。分类信号(signal):代表物理设计中的某一条硬件连接线。变量(variable):代表暂存某些值的载体。常数(constant):代表数字电路中的电源和地线。,26,常数意义:对某一常数名赋予一个固定的值;综合后,连接到电源和地。格式:CONSTANT 常数名:数据类型:=表达式;例如:CONSTANT Vcc:REAL:=5.0;变量格式:VARIABLE 变量名:数据类型

18、约束条件:=表达式;例如:VARIABLE count:INTEGER RANGE 0 TO 255:=10;特点:临时数据,没有物理意义;只能在进程、函数和过程中使用,一旦赋值立即生效;用:=进行赋值。信号 格式:SIGNAL 信号名:数据类型 约束条件:=表达式;例如:SIGNAL ground:BIT:=0;,27,特点:没有方向性,可给它赋值,也可当作输入。例如:tmp3=tmp1 OR tmp2;q=tmp3;设定的初始值在综合时没有用,只是在仿真时在开始设定一个起始值。在MaxPlusII中被忽略。用=进行赋值信号与变量的区别 信号赋值可以有附加延迟,变量赋值不可以有附加延迟;例如

19、:s1=s2 AFTER 10ns 信号可以看作硬件的一根连线,而变量存放临时数据,没有物理意义。作用范围不同:进程对信号敏感,对变量不敏感;信号可以是多个进程的全局信号,但变量只在定义它之后的顺序域可见。,28,architecture a of start is signal tmp:std_logic;begin s0:process(a_bus)begin tmp=1;for i in 3 downto 0 loop tmp=a_bus(i)and tmp;end loop;carryout=tmp;end process s0;s1:process(tmp)begin end pro

20、cess s1;end a;,architecture a of start is begin s0:process(a_bus)variable tmp:std_logic;begin tmp:=1;for i in 3 downto 0 loop tmp:=a_bus(i)and tmp;end loop;carryout=tmp;end process s0;s1:process(tmp)-error begin end process s1;end a;,29,代入方式不同:信号的代入过程和代入语句的处理是分开进行的,而变量赋值语句一旦执行,其值立即被赋予变量。,process(a,b

21、,c,d)begin d=a;x=b+d;d=c;y=b+d;end process;运行结果:x=b+c;y=b+c;,process(a,b,c)variable d:std_logic_vector(3 downto 0);begin d:=a;x=b+d;d:=c;y=b+d;end process;运行结果:x=b+a;y=b+c;,30,VHDL标识符(Identifiers)基本标识符由字母、数字和下划线组成第一个字符必须是字母最后一个字符不能是下划线不允许连续2个下划线保留字(关键字)不能用于标识符大小写是等效的,31,322 数据类型标准数据类型:实数、整数、位、位矢量、布尔

22、量、字符、字符串、时间、正整数、错误等级。整数、浮点数方便用于数值方面的运算:加减乘除整数:integer,经常用于计数器实数:real,MaxPLusII不支持例如:Variable a:integer range 255 to+255;位:表示位信号,位的值用带单引号的1或0来表示。例如:signal a:bit:=0;或 a=0;位矢量:表示多位组成的信号,位矢量的值用双引号括起来。例如:signal a:bit_vector(3 downto 0):=“0011”;或 a=“0011”;,32,用户定义的数据类型 格式:TYPE 数据类型名,数据类型名 数据类型定义 不完整的数据类型格

23、式:TYPE 数据类型名,数据类型名;-假定义可由用户定义的数据类型包括:枚举(ENUMERATED)、整数(INTEGER)、实数(REAL)、数组(ARRAY)、时间(TIME)、记录(RECODE)枚举(ENUMERATED):格式:TYPE 数据类型名 IS(元素、元素、);作用:列举数据对象可能存在的值例如:用于定义状态机的状态Type states is(idle,start,running,pause,stop)Signal current_state:states;,33,例如:IEEE1076标准中预定义了两个枚举类型Type boolean is(False,True);T

24、ype bit is(0,1);Signal a:bit;例如:IEEE1164标准中预定义了一个枚举类型Type std_logic is(U,X,0,1,Z,W,L,H,-);该类型能比较全面地包括数字电路中信号会出现的几种状态,因此一般情况把这种类型代替bitU初始值;X不定;00;11;Z高阻;W弱信号不定;L 弱信号0;H 弱信号1;-不可能情况。Signal a:std_logic;注意:这里的大小写是敏感的,34,数组(ARRAY)格式:TYPE 数据类型名 ISARRAY 范围 OF 原数据类型名;多个相同类型成员组成的队列,一般用于定义数据总线、地址总线等。例如:Signal

25、 a:std_logic_vector(7 downto 0);a=B“00111010”;a=X“3A”;可自定义复合类型 Type word is array(15 downto 0)of bit;Signal b:word;Type table8x4 is array(0 to 7,0 to 3)of bit;,35,记录(RECODE)格式:TYPE 数组类型名 IS RECORD 元素名:数据类型名;元素名:数据类型名;:END RECORD;相同或不同类型的元素组成,类似C中的结构具有模型抽象能力,用于描述一个功能模块。例如:Type iocell is record Enable

26、:bit;DataBus:bit_vector(7 downto 0);end record;singal bus:iocell;bus.Enable=1;bus.DataBus=“00110110”;,36,数据类型的转换:VHDL是强类型语言,必须用类型转换函数才能进行不同类型之间的转换。,37,例如:由STD_BIT_VECTOR转换成INTEGER LIBRARYIEEE;ENTITY add5 IS PORT(num:IN STD_LOGIC_VECTOR(2 DOWNTO 0);:);END add5;ARCHITECTURE rtl OF add5 ISSIGNAL in_num

27、:INTEGER RANGE 0 TO 5;:BEGIN In_num=CONV_INTEGER(num);END rtl;,38,属性(Attributes)提供Entity、Architecture、Type和Signals的信息有许多预定义的值、信号和范围的属性一个最常用的属性:eventif clkevent and clk=1 thenleft,right,high,low,length例如:type count is integer range 0 to 127countleft=0;countright=127;counthigh=127;countlow=0;countleng

28、th=128;,39,323 运算操作符逻辑运算符AND、OR、NAND、NOR、XOR、NOT关系运算符=、/=、=算术运算符+、-、*、/并置(连接)运算符&,用于位连接。注意:要求运算符左右的数据类型必须相同;运算优先级。,40,例如:y(0)=b(0)and en;y(1)=b(1)and en;y(2)=b(2)and en;y(3)=b(3)and en;y(4)=a(0);y(5)=a(1);y(6)=a(2);y(7)=a(3);,tmp_b=b AND(en,tmp_b=b AND(en,en,en,en);,41,33 VHDL语言的主要描述语句331 顺序描述语句 只能用

29、在进程或子程序中,按照语句的出现的顺序加以执行的。WAIT语句WAIT 无限等待 WAIT ON 敏感信号变化 此时,与process等价,例如:,PROCESS(a,b)BEGIN y=a AND b;END PROCESS;,PROCESSBEGIN y=a AND b;WAIT ON a,b;END PROCESS;,42,WAIT UNTIL 直到条件满足 WAIT FOR等到时间到 多条件WAIT 语句 超时等待,Architecture beha of wait_example signal sendB,sendA:std_logic;Begin sendA=0;a:process

30、 begin wait until sendB=1;sendA=1 after 10 ns;wait until sendB=0;sendA=0 after 10 ns;end process a;b:process begin wait until sendA=0;sendB=0 after 10 ns;wait until sendA=1;sendB=1 after 10 ns;end process a;end beha;,43,信号代入语句 格式:目的信号量=信号量表达式 例如:a=b;变量赋值语句 格式:目的变量:=表达式 例如:c:=a+d;IF 语句 IF的门闩控制 格式:IF

31、条件 THEN 顺序执行语句 END IF;例如:锁存器 IF(en=1)THEN q=d;END IF;,44,IF 语句的二选择控制 格式:IF 条件 THEN 顺序执行语句 ELSE 顺序执行语句 END IF;IF 语句的多选择控制 格式:IF 条件 THEN 顺序执行语句 ELSIF 条件 THEN 顺序执行语句:ELSIF 条件 THEN 顺序执行语句 END IF;,Entity mux2 is port(a,b,sel:in bit;c:out bit);End mux2;Architecture rtl of mux2 isBegin process(a,b,sel)begi

32、n if(sel=1)then c=a;else c=b;end if;end processEnd rtl;,45,例如:用于作地址译码If addr=X“0000”and addr=X“4000”and addr=X“4008”and addr=X“8000”and addr=X“C000”then EEPRom=1;end if;,46,CASE 语句 实现从许多不同语句的序列中选择其中之一执行 格式 CASE 表达式 IS WHEN 条件表达式=顺序处理语句;ENDCASE;WHEN的条件表达式可以有4种形式 WHEN 值=顺序处理语句;WHEN 值|值|值|值=顺序处理语句;WHEN

33、 值TO 值=顺序处理语句;WHEN OTHERS=顺序处理语句;,47,例如:83编码器library ieee;use ieee.std_logic_1164.all;entity encoder is port(input:in std_logic_vector(7 downto 0);y:out std_logic_vector(2 downto 0);end encoder;,architecture beha of encoder isbegin process(input)begin case input is when 01111111=y y y y y y y y y=XX

34、X;end case;end process;End beha;,If语句和case语句的区别,48,LOOP语句 格式:标号:FOR 循环变量 IN离散范围LOOP 顺序处理语句 END LOOP 标号;标号:WHILE 条件 LOOP 顺序处理语句 END LOOP 标号;例如:sum:=0 abcd:WHILE(I10)LOOP sum:=I+sum;I:=I+1;END LOOP abcd;,49,library ieee;use ieee.std_logic_1164.all;entity check is port(a:in std_logic_vector(7 downto 0)

35、;y:out std_logic);end check;architecture beha of check isbegin process(a)variable temp:std_logic;begin temp:=0;for i in 0 to 7 loop temp:=temp xor a(i);end loop;y=temp;end process;end beha;,奇偶校验基本原理:奇数个“1”异或的结果为1,偶数个“1”异或的结果为0。例如:若采用奇校验,1101=110100011=00111,50,NEXT语句 跳出本次循环格式:NEXT 标号WHEN 条件;与EXIT语句的

36、区别例如:PROCESS(a,b)CONSTANT max_limit:INTEGER:=255BEGIN FOR I IN 0 TO max_limit LOOP IF(done(I)=TRUE)THEN NEXT;ELSE done(I):=TRUE;END IF;q(I)=a(I)AND b(I);END LOOP;END PROCESS;,51,332 并发描述语句 可以直接在构造体中使用进程语句 可以和其它进程语句同时执行,并可以存取构造体和实体中所定义的信号。进程结构中的所有语句都按照顺序执行。为启动进程,在进程中必须包含一个敏感信号表或WAIT语句。进程之间的通信是通过信号量来实

37、现的。例如:,entity pros_com is port(event_a:in bit);end pros_com;architecture catch_ball of pros_com is signal to_a,to_b:bit:=0;,52,begin a:process(enent_a,to_a)begin if(event_aevent and event_a=1)or(to_aevent and to_a=1)then to_b=1 after 20 ns,0 after 30 ns;end if;end process a;b:process(to_b)begin if(t

38、o_bevent and to_b=1)then to_a=1 after 20 ns,0 after 30 ns;end if;end process b;end catch_ball;,53,并发信号代入 代入语句在进程中使用是顺序语句,但是在构造体的进程之外使用就是并发语句,相当于一个进程。例如:以下两种结构等价ARCHITECTURE behave OF a_var ISBEGIN Output=a(I);END behave;ARCHITECTURE behave OF a_var ISBEGIN ss:PROCESS(a,I)BEGIN Output=a(I);END PROCES

39、S ss;END behave;,54,条件信号代入 将符合条件的表达式代入信号量 格式 目的信号量=表达式1 WHEN 条件1 ELSE 表达式2 WHEN 条件2 ELSE 表达式3 WHEN 条件3:ELSE 表达式n;例如:四选一电路 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux44 IS PORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;q:OUT STD_LOGIC);END mux44;,55,ARCHITECTURE aa OF mux44 IS SIGNAL sel:STD_LOGIC_VECTOR(

40、1 DOWNTO 0);BEGIN sel=b,56,选择信号代入 对表达式进行测试,当表达式取值不同时,将使不同的值代入目的信号量 格式 WITH 表达式 SELECT 目的信号量=表达式1 WHEN 条件1 表达式2 WHEN 条件2:表达式n WHEN 条件n;例如:四选一电路,57,ARCHITECTURE bb OF mux45 IS SIGNAL sel:INTEGER range 0 to 3;BEGIN WITH sel SELECT q=i0 WHEN 0,i1 WHEN 1,i2 WHEN 2,i3 WHEN 3;sel=0 WHEN a=0 AND b=0 ELSE 1

41、WHEN a=1 AND b=0 ELSE 2 WHEN a=0 AND b=1 ELSE 3 WHEN a=1 AND b=1;END bb;,a,b,i0,q,i1,i2,i3,选择信号代入,条件信号代入,58,并发过程调用语句并发过程调用语句可以出现在构造体中,而且是一种可以在进程之外执行的过程调用语句。并发过程调用是一个完整的语句,在它之前可以加标号;并发过程调用语句应带有IN,OUT或INOUT的参数,它们应该列在过程名后的括号内;并发过程调用可以有多个返回值。,59,ARCHITECTURE.BEGINvector_to_int(z,x_flag,q);END;ARCHITECTU

42、RE.BEGIN PROCESS(z,q)BEGIN vector_to_int(z,x_flag,q);:END PROCESS;END;,60,几种语句的比较,61,34 VHDL语言构造体的描述方式 在VHDL结构体中,可以采用三种不同的描述方式 行为描述 RTL描述(寄存器传输描述)结构描述 341 行为描述 高层次的功能描述,主要用于仿真和系统工作原理的研究。只表示输入与输出间转换的行为,它不包含任何结构信息,即不必考虑在电路中到底是怎样实现的。例如:比较器的行为描述。,62,Library ieee;Use ieee.std_logic_1164.all;ENTITY compra

43、 IS PORT(a,b:in std_logic;equal:out std_logic);End compra;Architecture behavioral of eqcomp4 is begin comp:process(a,b)beginif a=b then equal=1;else equal=0;end if;end process comp;end behavioral;,63,342 数据流描述方式 描述输入信号经过怎样的变换得到输出信号。以规定设计中的各种寄存器形式为特征,然后在寄存器之间插入组合逻辑。例如:,Architecture dataflow2 of eqcom

44、p4 is beginequal=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);end dataflow2;,当a和b的宽度发生变化时,需要修改设计,当宽度过大时,设计非常繁琐,64,343 结构描述方式 类似于电路的网络表,将各个器件通过语言的形式进行连接,与电路有一一对应的关系。建模步骤 元件说明:描述局部接口。元件例化:相对于其它元件放置元件。元件配置:指定元件所用的设计实体,即对一个给定实体,如果有多个可用的结构体,则由配置决定模拟中所用的一个结构。元件声明语句 用于调用已生成的

45、元件 格式 COMPONENT 元件名 PORT 说明;-端口说明 END COMPONENT;,65,适用范围:ARCHITECTURE,PACKAGE和BLOCK的说明部分 元件调用语句 格式:标号名:元件名 PORT MAP(信号,);位置映射方法 在下一层中元件端口说明中的信号书写顺序位置和PORT MAP()中制定的实际信号书写顺序位置一一对应。例如:二输入与门中端口的输入输出定义为 port(a,b:in bit;c:out bit);调用该元件 u2:元件名 port map(n1,n2,m);名称映射方法 将库中已有模块的端口名称赋予设计中的信号名。例如:对上述二输入与门的调用

46、可写成 U2:元件名 port map(a=n1,b=n2,c=m);,66,例如:architecture struct of eqcomp4 isbegin U0:xnor2 port map(a(0),b(0),x(0);U1:xnor2 port map(a(1),b(1),x(1);U2:xnor2 port map(a(2),b(2),x(2);U3:xnor2 port map(a(3),b(3),x(3);U4:and4 port map(x(0),x(1),x(2),x(3),equal);end struct;,67,例如:entity sample is port(ina

47、,inb,inc,ind:in bit;q:out bit);end sample;architecture beha of sample is component and2 port(a,b:in bit;c:out bit);end component;signal u0_c,u1_c:bit;begin u0:and2 port map(ina,inb,u0_c);u1:and2 port map(inc,ind,u1_c);u2:and2 port map(u0_c,u1_c,q);end beha;,68,69,例如:crc校验码生成系统的设计,70,71,architecture beha of crc_top is component crcshift port();end component;component crctable port();end component;signal temp_index:std_logic_vector(7 downto 0);signal temp_table:std_logic_vector(15 downto 0);begin c1:crcshift port map();c2:crctable port map();end beha;,72,三种描述方式的比较,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号