《VHDL基础》PPT课件.ppt
《《VHDL基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VHDL基础》PPT课件.ppt(95页珍藏版)》请在装配图网上搜索。
EDA技术与VHDL 第3章VHDL基础 KX康芯科技 3 1VHDL基本语法 3 1 1组合电路描述 图3 1mux21a实体图3 2mux21a结构体 3 1VHDL基本语法 3 1 1组合电路描述 例3 1 ENTITYmux21aISPORT a b INBIT s INBIT y OUTBIT ENDENTITYmux21a ARCHITECTUREoneOFmux21aISBEGINy aWHENs 0 ELSEb ENDARCHITECTUREone 3 1VHDL基本语法 3 1 1组合电路描述 例3 2 ENTITYmux21aISPORT a b s INBIT y OUTBIT ENDENTITYmux21a ARCHITECTUREoneOFmux21aISSIGNALd e BIT BEGINd aAND NOTS e bANDs y dORe ENDARCHITECTUREone 3 1VHDL基本语法 例3 3 ENTITYmux21aISPORT a b s INBIT y OUTBIT ENDENTITYmux21a ARCHITECTUREoneOFmux21aISBEGINPROCESS a b s BEGINIFs 0 THENy a ELSEy b ENDIF ENDPROCESS ENDARCHITECTUREone 3 1 1组合电路描述 3 1VHDL基本语法 图3 3mux21a功能时序波形 3 1 1组合电路描述 3 1VHDL基本语法 3 1 2VHDL结构 例3 4 ENTITYe nameISPORT p name port mdata type p namei port midata type ENDENTITYe name 1 实体表达 3 1VHDL基本语法 2 实体名 3 端口语句和端口信号名 4 端口模式 IN OUT INOUT BUFFER 5 数据类型 3 1VHDL基本语法 6 结构体表达 例3 5 ARCHITECTUREarch nameOFe nameIS 说明语句 BEGIN 功能描述语句 ENDARCHITECTUREarch name 3 1VHDL基本语法 7 赋值符号和数据比较符号 IFaTHEN 注意 a的数据类型必须是booleanIF s1 0 AND s2 1 OR c b 1 THEN 8 逻辑操作符 BIT BOOLEAN STD LOGIC AND 与 OR 或 NAND 与非 NOR 或非 XOR 异或 XNOR 同或 和NOT 取反 3 1VHDL基本语法 9 条件语句 10 WHEN ELSE条件信号赋值语句 赋值目标 表达式WHEN赋值条件ELSE表达式WHEN赋值条件ELSE 表达式 z aWHENp1 1 ELSEbWHENp2 1 ELSEc 3 1VHDL基本语法 11 进程语句和顺序语句 12 文件取名和存盘 IF THEN ELSE ENDIF PROCESS ENDPROCESS vhd adder f vhd 3 2时序电路描述 3 2 1D触发器 3 2时序电路描述 3 2 2时序描述VHDL规则 1 标准逻辑位数据类型STD LOGIC BIT数据类型定义 TYPEBITIS 0 1 只有两种取值STD LOGIC数据类型定义 TYPESTD LOGICIS U X 0 1 Z W L H 有9种取值 3 2时序电路描述 2 设计库和标准程序包 LIBRARYWORK LIBRARYSTD USESTD STANDARD ALL LIBRARY USE ALL LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL 3 2时序电路描述 3 信号定义和数据对象 EVENT 4 上升沿检测表式和信号属性函数EVENT 5 不完整条件语句与时序电路 3 2时序电路描述 例3 7 ENTITYCOMP BADISPORT a1 b1 INBIT q1 OUTBIT END ARCHITECTUREoneOFCOMP BADISBEGINPROCESS a1 b1 BEGINIFa1 b1THENq1 1 ELSIFa1 b1THENq1 0 未提及当a1 b1时 q1作何操作ENDIF ENDPROCESS END 3 2时序电路描述 图3 5例3 7的电路图 3 2时序电路描述 图3 6例3 8的电路图 例3 8 IFa1 b1THENq1 1 ELSEq1 0 ENDIF 3 2时序电路描述 3 2 3时序电路的不同表述 例3 9 PROCESS CLK BEGINIFCLK EVENTAND CLK 1 AND CLK LAST VALUE 0 THENQ D 确保CLK的变化是一次上升沿的跳变ENDIF ENDPROCESS 例3 10 PROCESS CLK BEGINIFCLK 1 ANDCLK LAST VALUE 0 同例3 9THENQ D ENDIF ENDPROCESS 3 2时序电路描述 例3 11 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYDFF3ISPORT CLK D INSTD LOGIC Q OUTSTD LOGIC END ARCHITECTUREbhvOFDFF3ISSIGNALQ1 STD LOGIC BEGINPROCESS CLK BEGINIFrising edge CLK 必须打开STD LOGIC 1164程序包THENQ1 D ENDIF ENDPROCESS Q Q1 在此 赋值语句可以放在进程外 作为并行赋值语句END 3 2时序电路描述 3 2 3实现时序电路的不同表述 例3 12 PROCESSBEGINwaituntilCLK 1 利用wait语句Q D ENDPROCESS 3 2时序电路描述 例3 13 PROCESS CLK BEGINIFCLK 1 THENQ D 利用进程的启动特性产生对CLK的边沿检测ENDIF ENDPROCESS 图3 7例3 13的时序波形 3 2时序电路描述 例3 14 PROCESS CLK D BEGINIFCLK 1 电平触发型寄存器THENQ D ENDIF ENDPROCESS 图3 8例3 14的时序波形 3 3全加器的VHDL描述 3 3 1半加器描述 图3 9全加器f adder电路图及其实体模块 3 3全加器的VHDL描述 3 3 1半加器描述 图3 10半加器h adder电路图及其真值表 3 3全加器的VHDL描述 3 3 1半加器描述 例3 15 LIBRARYIEEE 半加器描述 1 布尔方程描述方法USEIEEE STD LOGIC 1164 ALL ENTITYh adderISPORT a b INSTD LOGIC co so OUTSTD LOGIC ENDENTITYh adder ARCHITECTUREfh1OFh adderisBEGINso NOT aXOR NOTb co aANDb ENDARCHITECTUREfh1 3 3全加器的VHDL描述 例3 16 LIBRARYIEEE 半加器描述 2 真值表描述方法USEIEEE STD LOGIC 1164 ALL ENTITYh adderISPORT a b INSTD LOGIC co so OUTSTD LOGIC ENDENTITYh adder ARCHITECTUREfh1OFh adderisSIGNALabc STD LOGIC VECTOR 1DOWNTO0 定义标准逻辑位矢量数据类型BEGINabcsosososoNULL ENDCASE ENDPROCESS ENDARCHITECTUREfh1 3 3全加器的VHDL描述 3 3 1半加器描述 例3 17 LIBRARYIEEE 或门逻辑描述USEIEEE STD LOGIC 1164 ALL ENTITYor2aISPORT a b INSTD LOGIC c OUTSTD LOGIC ENDENTITYor2a ARCHITECTUREoneOFor2aISBEGINc aORb ENDARCHITECTUREone 3 3全加器的VHDL描述 例3 18 LIBRARYIEEE 1位二进制全加器顶层设计描述USEIEEE STD LOGIC 1164 ALL ENTITYf adderISPORT ain bin cin INSTD LOGIC cout sum OUTSTD LOGIC ENDENTITYf adder ARCHITECTUREfd1OFf adderISCOMPONENTh adder 调用半加器声明语句PORT a b INSTD LOGIC co so OUTSTD LOGIC ENDCOMPONENT COMPONENTor2aPORT a b INSTD LOGIC c OUTSTD LOGIC ENDCOMPONENT SIGNALd e f STD LOGIC 定义3个信号作为内部的连接线 BEGINu1 h adderPORTMAP a ain b bin co d so e 例化语句u2 h adderPORTMAP a e b cin co f so sum u3 or2aPORTMAP a d b f c cout ENDARCHITECTUREfd1 3 3全加器的VHDL描述 3 3 2CASE语句 1 CASE语句 CASEISWhen When WHENOTHERS ENDCASE 3 3全加器的VHDL描述 2 标准逻辑矢量数据类型 B 01100010 B 7 为 0 B 4DOWNTO1 1101 B 4 为 1 B 7DOWNTO4 A B 6 等于A 2 SIGNALC BIT VECTOR 3DOWNTO0 B OUTSTD LOGIC VECTOR 7DOWNTO0 或SIGNALA STD LOGIC VECTOR 1TO4 3 3全加器的VHDL描述 3 并置操作符 SIGNALa STD LOGIC VECTOR 3DOWNTO0 SIGNALd STD LOGIC VECTOR 1DOWNTO0 a 1 0 d 1 1 元素与元素并置 并置后的数组长度为4 IFa d 101011 THEN 在IF条件句中可以使用并置符 3 3全加器的VHDL描述 3 3 3例化语句 COMPONENT元件名ISPORT 端口名表 ENDCOMPONENT文件名 COMPONENTh adderPORT c d INSTD LOGIC e f OUTSTD LOGIC 例化名 元件名PORTMAP 端口名 连接端口名 3 4计数器设计 例3 19 ENTITYCNT4ISPORT CLK INBIT Q BUFFERINTEGERRANGE15DOWNTO0 END ARCHITECTUREbhvOFCNT4ISBEGINPROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENQ Q 1 ENDIF ENDPROCESS ENDbhv 3 4计数器设计 1 程序说明 表式Q Q 1的右项与左项并非处于相同的时刻内 对于时序电路 除了传输延时外 前者的结果出现于当前时钟周期 后者 即左项要获得当前的Q 1 需等待下一个时钟周期 3 4计数器设计 2 数据类型说明 1十进制整数0十进制整数35十进制整数10E3十进制整数 等于十进制整数100016 D9 十六进制整数 等于十六进制整数D9H8 720 八进制整数 等于八进制整数720O2 11010010 二进制整数 等于二进制整数11010010B Q BUFFERNATURALRANGE15DOWNTO0 Q BUFFERINTEGERRANGE15DOWNTO0 3 4计数器设计 3 计数器的其他表述方法 例3 20 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYCNT4ISPORT CLK INSTD LOGIC Q OUTSTD LOGIC VECTOR 3DOWNTO0 END ARCHITECTUREbhvOFCNT4ISSIGNALQ1 STD LOGIC VECTOR 3DOWNTO0 BEGINPROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENQ1 Q1 1 ENDIF ENDPROCESS Q Q1 ENDbhv 3 5一般计数器的VHDL设计方法 例3 21 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYCNT10ISPORT CLK RST EN INSTD LOGIC CQ OUTSTD LOGIC VECTOR 3DOWNTO0 COUT OUTSTD LOGIC ENDCNT10 ARCHITECTUREbehavOFCNT10ISBEGINPROCESS CLK RST EN VARIABLECQI STD LOGIC VECTOR 3DOWNTO0 BEGINIFRST 1 THENCQI OTHERS 0 计数器异步复位ELSIFCLK EVENTANDCLK 1 THEN 检测时钟上升沿IFEN 1 THEN 检测是否允许计数 同步使能 IFCQI 0 大于9 计数值清零ENDIF ENDIF ENDIF IFCQI 9THENCOUT 1 计数大于9 输出进位信号ELSECOUT 0 ENDIF CQ CQI 将计数值向端口输出ENDPROCESS ENDbehav 3 5一般计数器的VHDL设计方法 3 5 1相关语法 SIGNALd1 STD LOGIC VECTOR 4DOWNTO0 VARIABLEa1 STD LOGIC VECTOR 15DOWNTO0 d1 0 a1 OTHERS 0 d1e 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 2程序功能分析 图3 12例3 21的工作时序 3 5一般计数器的VHDL设计方法 3 5 3移位寄存器设计 例3 22 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYSHFRTIS 8位右移寄存器PORT CLK LOAD INSTD LOGIC DIN INSTD LOGIC VECTOR 7DOWNTO0 QB OUTSTD LOGIC ENDSHFRT ARCHITECTUREbehavOFSHFRTISBEGINPROCESS CLK LOAD VARIABLEREG8 STD LOGIC VECTOR 7DOWNTO0 BEGINIFCLK EVENTANDCLK 1 THENIFLOAD 1 THENREG8 DIN 由 LOAD 1 装载新数据ELSEREG8 6DOWNTO0 REG8 7DOWNTO1 ENDIF ENDIF QB REG8 0 输出最低位ENDPROCESS ENDbehav 3 5一般计数器的VHDL设计方法 3 5 3移位寄存器设计 图3 13例3 22的工作时序 3 6数据对象 3 6 1常数 CONSTANT常数名 数据类型 表达式 CONSTANTFBT STD LOGIC VECTOR 010110 标准位矢类型CONSTANTDATAIN INTEGER 15 整数类型 3 6数据对象 3 6 2变量 VARIABLE变量名 数据类型 初始值 VARIABLEa INTEGERRANGE0TO15 变量a定义为常数 取值范围是0到5VARIABLEd STD LOGIC 1 变量a定义为标准逻辑位数据类型 初始值是1 目标变量名 表达式 VARIABLEx y INTEGERRANGE15DOWNTO0 分别定义变量x和y为整数类型VARIABLEa b STD LOGIC VECTOR 7DOWNTO0 x 11 y 2 x 运算表达式赋值 y也是实数变量a b b向a赋值a 0TO5 b 2TO7 3 6数据对象 3 6 3信号 SIGNAL信号名 数据类型 初始值 目标信号名 表达式AFTER时间量 SIGNALa b c y z INTEGER PROCESS a b c BEGINy a b z c a y b ENDPROCESS 3 6数据对象 3 6 4进程中的信号赋值与变量赋值 表3 1信号与变量赋值语句功能的比较 3 6数据对象 3 6 4进程中的信号赋值与变量赋值 例3 23 ARCHITECTUREbhvOFDFF3ISBEGINPROCESS CLK VARIABLEQQ STD LOGIC BEGINIFCLK EVENTANDCLK 1 THENQQ D1 ENDIF ENDPROCESS Q1 QQ END 3 6数据对象 3 6 4进程中的信号赋值与变量赋值 例3 24 ARCHITECTUREbhvOFDFF3ISSIGNALQQ STD LOGIC BEGINPROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENQQ D1 ENDIF ENDPROCESS Q1 QQ END 3 6数据对象 例3 25 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYDFF3ISPORT CLK D1 INSTD LOGIC Q1 OUTSTD LOGIC END ARCHITECTUREbhvOFDFF3ISSIGNALA B STD LOGIC BEGINPROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENA D1 B A Q1 B ENDIF ENDPROCESS END 3 6数据对象 例3 26 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYDFF3ISPORT CLK D1 INSTD LOGIC Q1 OUTSTD LOGIC END ARCHITECTUREbhvOFDFF3ISBEGINPROCESS CLK VARIABLEA B STD LOGIC BEGINIFCLK EVENTANDCLK 1 THENA D1 B A Q1 B ENDIF ENDPROCESS END 3 6数据对象 3 6 4进程中的信号赋值与变量赋值 图3 15例3 26的RTL电路图3 16D触发器电路 3 6数据对象 例3 27 SIGNALin1 in2 e1 STD LOGIC PROCESS in1 in2 VARIABLEc1 STD LOGIC VECTOR 3DOWNTO0 BEGINIFin1 1 THEN 第1行e1 1010 第2行 IFin2 0 THEN 第15 n行 c1 0011 第30 m行 ENDIF ENDPROCESS 例3 28 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmux4ISPORT i0 i1 i2 i3 a b INSTD LOGIC q OUTSTD LOGIC ENDmux4 ARCHITECTUREbody mux4OFmux4ISsignalmuxval integerrange7downto0 BEGINprocess i0 i1 i2 i3 a b beginmuxvalqqqqnull endcase endprocess ENDbody mux4 例3 29 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYmux4ISPORT i0 i1 i2 i3 a b INSTD LOGIC q OUTSTD LOGIC ENDmux4 ARCHITECTUREbody mux4OFmux4ISBEGINprocess i0 i1 i2 i3 a b variablemuxval integerrange7downto0 beginmuxval 0 if a 1 thenmuxval muxval 1 endif if b 1 thenmuxval muxval 2 endif casemuxvaliswhen0 qqqqnull endcase endprocess ENDbody mux4 图3 16例3 28的RTL电路 图3 17例3 29的RTL电路 3 6数据对象 3 6 4进程中的信号赋值与变量赋值 图3 18例3 28中错误的工作时序 3 6数据对象 3 6 4进程中的信号赋值与变量赋值 图3 19例3 29中正确的工作时序 例3 30 LibraryIEEE USEIEEE STD LOGIC 1164 ALL ENTITYSHIFTISPORT CLK C0 INSTD LOGIC 时钟和进位输入MD INSTD LOGIC VECTOR 2DOWNTO0 移位模式控制字D INSTD LOGIC VECTOR 7DOWNTO0 待加载移位的数据QB OUTSTD LOGIC VECTOR 7DOWNTO0 移位数据输出CN OUTSTD LOGIC 进位输出ENDENTITY ARCHITECTUREBEHAVOFSHIFTISSIGNALREG STD LOGIC VECTOR 7DOWNTO0 SIGNALCY STD LOGIC BEGINPROCESS CLK MD C0 BEGINIFCLK EVENTANDCLK 1 THEN接下页 CASEMDISWHEN 001 REG 0 REG 0 REG 7 REG 7 REG 7DOWNTO0 REG REG CY CY 保持ENDCASE ENDIF ENDPROCESS QB 7DOWNTO0 REG 7DOWNTO0 CN CY 移位后输出ENDBEHAV 3 6数据对象 3 6 4进程中的信号赋值与变量赋值 图3 20例3 30中带进位循环左移仿真波形 MD 001 3 7IF语句概述 例3 31 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYcontrol stmtsISPORT a b c INBOOLEAN output OUTBOOLEAN ENDcontrol stmts ARCHITECTUREexampleOFcontrol stmtsISBEGINPROCESS a b c VARIABLEn BOOLEAN BEGINIFaTHENn b ELSEn c ENDIF output n ENDPROCESS ENDexample 例3 32 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYcoderISPORT din INSTD LOGIC VECTOR 0TO7 output OUTSTD LOGIC VECTOR 0TO2 ENDcoder ARCHITECTUREbehavOFcoderISSIGNALSINT STD LOGIC VECTOR 4DOWNTO0 BEGINPROCESS din BEGINIF din 7 0 THENoutput 000 ELSIF din 6 0 THENoutput 100 ELSIF din 5 0 THENoutput 010 ELSIF din 4 0 THENoutput 110 ELSIF din 3 0 THENoutput 001 ELSIF din 2 0 THENoutput 101 ELSIF din 1 0 THENoutput 011 ELSEoutput 111 ENDIF ENDPROCESS ENDbehav 3 7IF语句概述 表3 28线 3线优先编码器真值表 注 表中的 x 为任意 类似VHDL中的 值 3 8进程语句归纳 3 8 1进程语句格式 PROCESS语句结构的一般表达格式如下 进程标号 PROCESS 敏感信号参数表 IS 进程说明部分 BEGIN顺序描述语句ENDPROCESS 进程标号 3 8进程语句归纳 3 8 2进程结构组成 进程说明部分 顺序描述语句部分 敏感信号参数表 3 8进程语句归纳 3 8 3进程要点 1 PROCESS为一无限循环语句 2 PROCESS中的顺序语句具有明显的顺序 并行运行双重性 PROCESS abc BEGINCASEabcISWHEN 0000 sososososoNULL ENDCASE ENDPROCESS 3 8进程语句归纳 3 进程必须由敏感信号的变化来启动 4 进程语句本身是并行语句 3 8 3进程要点 5 信号是多个进程间的通信线 6 一个进程中只允许描述对应于一个时钟信号的同步时序逻辑 3 8进程语句归纳 例3 33 ENTITYmulISPORT a b c selx sely INBIT data out OUTBIT ENDmul ARCHITECTUREexOFmulISSIGNALtemp BIT BEGINp a PROCESS a b selx BEGINIF selx 0 THENtemp a ELSEtemp b ENDIF ENDPROCESSp a p b PROCESS temp c sely BEGINIF sely 0 THENdata out temp ELSEdata out c ENDIF ENDPROCESSp b ENDex 3 9并行赋值语句概述 例3 34 SIGNALseiect INTEGERRANGE15DOWNTO0 Select 0WHENs0 0 ANDs1 0 ELSE1WHENs0 1 ANDs1 0 ELSE2WHENs0 0 ANDs1 1 ELSE3 x aWHENselect 0ELSEbWHENselect 1ELSEcWHENselect 2ELSEd 3 10双向和三态电路信号赋值 例3 36 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYtri sISport enable INSTD LOGIC datain INSTD LOGIC VECTOR 7DOWNTO0 dataout OUTSTD LOGIC VECTOR 7DOWNTO0 ENDtri s ARCHITECTUREbhvOFtri sISBEGINPROCESS enable datain BEGINIFenable 1 THENdataout datain ELSEdataout ZZZZZZZZ ENDIF ENDPROCESS ENDbhv 3 10 1三态门设计 3 10双向和三态电路信号赋值 3 10 1三态门设计 图3 218位3态控制门电路 3 10双向和三态电路信号赋值 例3 36 libraryieee useieee std logic 1164 all entitytri stateisport control instd logic in1 instd logic vector 7downto0 q inoutstd logic vector 7downto0 x outstd logic vector 7downto0 endtri state architecturebody trioftri stateisbeginprocess control q in1 beginif control 0 thenx q elseq in1 x ZZZZZZZZ endif endprocess endbody tri 3 10 2双向端口设计 3 10双向和三态电路信号赋值 例3 37 以上部分同上例 process control q in1 beginif control 0 thenx q q ZZZZZZZZ elseq in1 x ZZZZZZZZ endif endprocess endbody 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三态总线电路设计 例3 38 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYtristate2ISport input3 input2 input1 input0 INSTD LOGIC VECTOR 7DOWNTO0 enable INSTD LOGIC VECTOR 1DOWNTO0 output OUTSTD LOGIC VECTOR 7DOWNTO0 ENDtristate2 ARCHITECTUREmultiple driversOFtristate2ISBEGINPROCESS enable input3 input2 input1 input0 BEGINIFenable 00 THENoutput Z ENDIF IFenable 01 THENoutput Z ENDIF IFenable 10 THENoutput Z ENDIF IFenable 11 THENoutput Z ENDIF ENDPROCESS ENDmultiple drivers 3 10双向和三态电路信号赋值 3 10 3三态总线电路设计 例3 39 libraryieee useieee std logic 1164 all entitytri2isport ctl instd logic vector 1downto0 datain1 datain2 datain3 datain4 instd logic vector 7downto0 q outstd logic vector 7downto0 endtri2 architecturebody trioftri2isbeginq Z q Z q Z q Z endbody tri 3 10双向和三态电路信号赋值 3 10 3三态总线电路设计 图3 26例3 38错误的综合结果 3 10双向和三态电路信号赋值 图3 27例3 39正确的综合结果 3 11仿真延时 3 11 1固有延时 z xXORyAFTER5ns z xXORy B AAFTER20ns 固有延时模型 3 11仿真延时 3 11 2传输延时 B TRANSPORTAAFTER20ns 传输延时模型 图3 28固有延时输入输出波形图3 29传输延时输入输出波形 3 11仿真延时 3 11 3仿真 VHDL仿真器和综合器将自动为系统中的信号赋值配置一足够小而又能满足逻辑排序的延时量 即仿真软件的最小分辩时间 这个延时量就称为仿真 SimulationDelta 或称 延时 从而使并行语句和顺序语句中的并列赋值逻辑得以正确执行 由此可见 在行为仿真 功能仿真乃至综合中 引入 延时是必需的 仿真中 延时的引入由EDA工具自动完成 无需设计者介入 习题 3 1 画出与下例实体描述对应的原理图符号元件 ENTITYbuf3sIS 实体1 三态缓冲器PORT input INSTD LOGIC 输入端enable INSTD LOGIC 使能端output OUTSTD LOGIC 输出端ENDbuf3x ENTITYmux21IS 实体2 2选1多路选择器PORT in0 in1 sel INSTD LOGIC output OUTSTD LOGIC 习题 3 2 图3 30所示的是4选1多路选择器 试分别用IF THEN语句和CASE语句的表达方式写出此电路的VHDL程序 选择控制的信号s1和s0的数据类型为STD LOGIC VECTOR 当s1 0 s0 0 s1 0 s0 1 s1 1 s0 0 和s1 1 s0 1 分别执行y a y b y c y d 图3 304选1多路选择器 习题 3 3 图3 31所示的是双2选1多路选择器构成的电路MUXK 对于其中MUX21A 当s 0 和 1 时 分别有y a 和y b 试在一个结构体中用两个进程来表达此电路 每个进程中用CASE语句描述一个2选1多路选择器MUX21A 图3 31双2选1多路选择器 习题 3 4 给出1位全减器的VHDL描述 要求 1 首先设计1位半减器 然后用例化语句将它们连接起来 图3 32中h suber是半减器 diff是输出差 s out是借位输出 sub in是借位输入 2 以1位全减器为基本硬件 构成串行借位的8位减法器 要求用例化语句来完成此项设计 减法运算是x y sun in diffr 图3 321位全减器 习题 3 5 图3 33是一个含有上升沿触发的D触发器的时序电路 试写出此电路的VHDL设计文件 图3 33时序电路图 习题 3 6 根据图3 34 写出顶层文件MX3256 VHD的VHDL设计文件 图3 34题3 6电路图 习题 3 7 设计含有异步清零和计数使能的16位二进制加减可控计数器 3 8 什么是固有延时 什么是惯性延时 是什么 在VHDL中 有什么用处 3 9 哪些情况下需要用到程序包STD LOGIC UNSIGNED 试举一例 3 10 说明信号和变量的功能特点 应用上的异同点 3 11 在VHDL设计中 给时序电路清0 复位 有两种方法 它们是什么 3 12 哪一种复位方法必须将复位信号放在敏感信号表中 给出这两种电路的VHDL描述 3 13 什么是重载函数 重载算符有何用处 如何调用重载算符函数 习题 3 14 判断下面3个程序中是否有错误 若有则指出错误所在 并给出完整程序 程序1 程序2 SignalA EN std logic ArchitectureoneofsampleisProcess A EN variablea b c integer VariableB std logic beginBeginc a b ifEN 1thenB A endif end endprocess 程序3 libraryieee useieee std logic 1164 all entitymux21isport a b instd logic sel instd logic c outstd logic endsam2 architectureoneofmux21isbeginifsel 0 thenc a elsec b endif endtwo- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL基础 VHDL 基础 PPT 课件
装配图网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文