第四章VHDL语言.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章VHDL语言

例化名:元件名 PORT MAP (端口名= 连接端口名,……); [例4-20] LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY Altera; USE Altera.MAXPLUS2.ALL; ENTITY dffe_v IS PORT( D,Clk,Clrn,Prn,Ena : IN STD_LOGIC; Q : OUT STD_LOGIC ); END dffe_v; ARCHITECTURE a OF dffe_v IS BEGIN rod1: DFFE PORT MAP (D =D,CLK=Clk,CLRN=Clrn, PRN=Prn, ENA=Ena, Q=Q); END a; 例4-20使用了元件例化语句,但并有使用COMPONENT元件声明,而是直接调用了库Altera内部的程序包MAXPLUSⅡ内的DFFE元件描述了一个包含预置位、清零功能的带使能的D触发器,通过引脚匹配PORT MAP将DFFE的各端口与实体dffe_v的各端口连接了起来,如图4-4所示。 元件例化语句的引脚匹配PORT MAP(……)内的匹配方式有按位置匹配、按名字匹配与位置、名字混合匹配三种,设有元件声明为: COMPONENT halfadder PORT(a,b:IN STD_LOGIC; sum,carry:OUT STD_LOGIC); END COMPONENT; 则按按位置匹配为,此时位置的不同将导致不同的例化结果 u1:halfadder PORT MAP(a1,b1,sum1,cout1) 按名字匹配与位置、此时摆放位置可任意 u1:halfadder PORT MAP(a=a1,b=b1,carry=cout1 ,sum=sum1); 按位置、名字混合匹配 u1:halfadder PORT M(a=a1,b=b1,sum=sum,cout1); 对整个系统自顶向下逐级分层细化的描述,也离不开元件例化语句。分层描述时可以将子模块看作是上一层模块的元件,运用元件说明和元件例化语句来描述高层模块中的子模块。而每个子模块作为一个实体仍然要进行实体的全部描述,同时它又可将下一层子模块当作元件来调用,如此下去,直至底层模块。 系统的层次化设计可以通过一个4位加法器的例子来说明。设计中,4位加法器由4个全加器和一个半加器组成。全加器又是由2个半加器和1个或门组成。将4位加法器自顶向下分层设计,可分为三层:顶层实体就是4位加法器add4,第二层实体就是全加器fulladder,底层实体就是半加器halfadder和或门orgate。具体的描述如下: [例4-21] -底层实体描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY halfadd IS PORT( a ,b: IN STD_LOGIC; sum,hcarry:OUT STD_LOGIC); END halfadd; ARCHITECTURE ha OF halfadd IS BEGIN sum=a XOR b; hcarry=a AND b; END;? LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY gateor IS PORT(in1,in2:IN STD_LOGIC; y:OUT STD_LOGIC); END gateor; ARCHITECTURE or2 OF gateor IS BEGIN y=in1 OR in2; END or2; --第二层实体描述 ENTITY fulladd IS PORT(in1,in2,cin:IN STD_LOGIC; Fsum,fcarry:OUT STD_LOGIC); END fulladd; ARCHITECTURE fadd OF fulladd IS SIGNAL temp_sum,temp_carry1,temp_carry2:STD_LOGIC; COMPONENT halfadd PORT(a,b:IN STD_LOGIC; sum,hcarry:OUT STD_LOGIC); END COMP

文档评论(0)

liudao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档