EDA技术 第07讲 VHDL04 并行语句2ppt课件_第1页
EDA技术 第07讲 VHDL04 并行语句2ppt课件_第2页
EDA技术 第07讲 VHDL04 并行语句2ppt课件_第3页
EDA技术 第07讲 VHDL04 并行语句2ppt课件_第4页
EDA技术 第07讲 VHDL04 并行语句2ppt课件_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,1,第七讲VHDL之四3.5VHDL中的并行语句,.,2,第四章硬件描述语言VHDL,3.1硬件描述语言概述3.2VHDL程序基本结构3.3VHDL的基本数据类型及运算操作符3.4VHDL中的顺序语句3.5VHDL中的并行语句3.6程序包与库3.7类属3.8子程序3.9基本逻辑电路设计3.10状态机的VHDL设计,.,3,顺序语句(SequentialStaements),VHDL语句,并行语句(ConcurrentStatements),赋值语句转向控制语句(If、Case、Loop、Next、Exit)等待语句(wait)子程序调用语句断言语句(assert)空操作语句(null),进程语句并行信号赋值语句元件声明/例化语句块语句生成语句并行过程调用语句,.,4,并行语句,进程语句并行信号赋值语句元件声明/例化语句块语句生成语句并行过程调用语句,.,5,元件声明/例化语句,元件或模块:已设计好的设计实体。,用途:为当前设计实体中插入已编译好的实体;相当于为一个电路板上插入已有的芯片!,已设计好的一个VHDL设计实体、来自FPGA元件库中的元件、别的硬件描述语言(如Verilog)设计实体、软IP核、FPGA中的嵌入式硬IP核。,.,6,元件例化是使VHDL设计实体构成自上而下层次化设计的一种重要途径!相对而言,当前设计实体为上层(顶层);被插入到当前实体的元件实体为下层(底层)。,元件声明:(选取元件)要说明元件的外部接口界面(引脚名及宽度等)。是对VHDL元件(即底层设计实体)的说明,使之可被调用。声明可在程序包中,也可在其它某个设计的结构体中进行。元件例化:(使用元件)将元件插入当前电路板(当前设计实体)中。要给调用的元件的编号,并且要说明元件引脚与电路板的链接。,.,7,元件声明格式:,COMPONENT元件名ISGENERIC(类属表)PORT(端口表)ENDCOMPONENT例化元件名;,同该元件实体定义中的部分,元件例化格式:,元件标号:元件名PORTMAP(信号映射);,信号映射可采用位置映射和名称映射的方法,.,8,位置映射方式:(连接实体端口(信号)名)排列方式与元件端口定义相同。名字映射方式:元件端口名“=”连接实体端口(信号)名位置可以任意。,.,9,ORD41逻辑原理图,【例】,.,10,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYND2ISPORT(A,B:INSTD_LOGIC;C:OUTSTD_LOGIC);ENDND2;ARCHITECTUREARTND2OFND2ISBEGINYC1,C=Y,B=D1);-名字关联方式U3:ND2PORTMAP(X,Y,C=Z1);-混合关联方式ENDARCHITECTUREARTORD41;,元件例化部分,试用元件例化实现普通中小规模芯片的扩展(例如用2片2-4译码器实现3-8译码器),.,13,【例】,libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitybcd_add_4isport(a,b:instd_logic_vector(3downto0);s:outstd_logic_vector(3downto0);c_in:instd_logic;err,c_out:outstd_logic);Endbcd_add_4;architecturebhofbcd_add_4is,底层文件,实现1位BCD码加法,提问:电路图?,.,14,【例】,entitybcd_add_newisport(a,b:instd_logic_vector(7downto0);c_out:outstd_logic;s:outstd_logic_vector(7downto0);err:outstd_logic);endbcd_add_new;architecturebhofbcd_add_newiscomponentbcd_add_4isport(a,b:instd_logic_vector(3downto0);s:outstd_logic_vector(3downto0);c_in:instd_logic;err,c_out:outstd_logic);endcomponentbcd_add_4;,顶层文件,提问:如何元件例化?,.,15,signalerr_1,err_2:std_logic;signalc_out_tmp,c_in_tmp:std_logic;beginc_in_tmpdbus,d_out=data,ctbus=cont);SIGNALqbus:std_logic_vector(31downto0);BEGINd_out=tw_add(abus,bbus)WHENctbus=0ELSEtw_sub(abus,bbus)WHENctbus=1ELSEabus;ENDBLOCKALU;,函数调用,.,25,B1:BLOCKSIGNALs0:std_logic;BEGINs0=C;B2:BLOCKSIGNALS2:std_logic;BEGINS2=AandB;B3:BLOCKSIGNALS2:std_logic;BEGINX=S2;s2=AorB;ENDBLOCKB3;YB(I);ENDGENERATEGEN;,.,37,生成语句产生的8个相同的电路元件,.,38,【例】利用元件例化和FOR_GENERATE语句完成一个8位三态锁存器的设计。(74LS373/74HC373)的工作逻辑进行设计。74373的器件引脚功能分别是:D1-D8为数据输入端;Q1-Q8为数据输出端;OEN为输出使能端,若OEN=1,则Q8-Q1的输出为高阻态,若OEN=0,则保存在锁存器中的信号值;G为数据锁存控制端,若G=1,D8-D1输入端的信号进入锁存器中,若G=0,锁存器将保持原先锁入的信号值不变。,.,39,74LS373引脚图,.,40,.,41,【例】-1位锁存器LATCH的逻辑描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYLATCHISPORT(D:INSTD_LOGIC;ENA:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDENTITYLATCH;ARCHITECTUREONEOFLATCHIS,BEGINPROCESS(D,ENA)BEGINIFENA=1THENQ=D;ENDIF;ENDPROCESS;ENDARCHITECTUREONE;,.,42,-SN74373的逻辑描述LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYSN74373ISPORT(D:INSTD_LOGIC_VECTOR(8DOWNTO1);OEN,G:INSTD_LOGIC;Q:OUTSTD_LOGIC_VECTOR(8DOWNTO1);ENDENTITYSN74373;ARCHITECTUREONEOFSN74373ISCOMPONENTLATCHPORT(D,ENA:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDCOMPONENT;SIGNALSIG_MID:STD_LOGIC_VECTOR(8DOWNTO1);,.,43,BEGINGELATCH:FORINUMIN1TO8GENERATE-用FOR_GENERATE语句循环例化8个1锁存器LATCHX:LATCHPORTMAP(D(INUM),G,SIG_MID(INUM);-位置关联ENDGENERATE;Q=SIG_MIDWHENOEN=0ELSE“ZZZZZZZZ”;ENDARCHITECTUREONE;,.,44,例:用generate语句生成4位异步二进制加法计数器,.,45,libraryieee;useieee.std_logic_1164.all;entityd_tmpisport(ci,d:instd_logic;q,nq:outstd_logic);end;architecturebhofd_tmpissignalq_tmp:std_logic;Signalnq_tmp:std_logic;Begin,process(ci)beginifcieventandci=1thenq_tmp=d;nq_tmp=notd;endif;endprocess;q=q_tmp;nq=nq_tmp;end;,底层设计部分,.,46,.,47,libraryieee;useieee.std_logic_1164.all;entityd_jsqisport(cp:instd_logic;q:outstd_logic_vector(3downto0);end;architecturebhofd_jsqiscomponentd_tmpisport(ci,d:instd_logic;q,nq:outstd_logic);endcomponentd_tmp;,顶层设计,.,48,signaltmp:std_logic_vector(4downto0);begintmp(0)0ANDi/=(m-1)GENERATEdffx:dffPORTMAP(x(i-1),clk,clrn,prn,x(i);ENDGENERATEu2;u3:IFi=(m-1)GENERATEdffx:dffPORTMAP(x(i-1),clk,clrn,prn,b);ENDGENERATEu3;ENDGENERATEshifter;ENDbehave;,.,54,设计中用到的中间信号,.,55,作业1:,用2片2-4译码器实现3-8译码器,.,56,.,57,例二进制加法/减法计数器的描述。,LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.NUMERIC_STD.ALL;ENTITYbinary_up_down_counterISGENERIC(min_count:NATURAL:=0;max_count:NATURAL:=255);PORT(clk:INSTD_LOGIC;reset:INSTD_LOGIC;enable:INSTD_LOGIC;updown:INSTD_LOGIC;q:OUTINTEGERRANGEmin_countTOmax_count);ENDENTITY;,.,58,ARCHITECTURErtlOFbinary_up_down_counterISSIGNALdirection:INTEGER;-定义计数方向信号BEGINProc1:PROCESS(updown)BEGINIF(updown=1)THENdirection=1;ELSEdirection=-1;ENDIF;ENDPROCESSProc1;Proc2:PROCESS(clk)VARIABLEcnt:INTEGERRANGEmin_countTOmax_count;BEGINIF(clkEVENTandclk=1)THENIFreset=1THENcnt:=0;-计数器复位ELSIFenable=1THENcnt:=cnt+direction;-加法/减法计数ENDIF;ENDIF;q=cnt;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论