EDA技术实用教程第五章_VHDL设计初步.ppt
《EDA技术实用教程第五章_VHDL设计初步.ppt》由会员分享,可在线阅读,更多相关《EDA技术实用教程第五章_VHDL设计初步.ppt(99页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、EDA技术实用教程第五章_VHDL设计初步 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望z原理图输入与 VHDL文本输入设计的区别yGraphic is what you draw is what you getx“tell me what hardware you want and I will give it to you”yVHDL is what you write is what functional you getx“tell me how your
2、 circuit should behave and the VHDL compiler will give you the hardware that does the job”x but the designer can not control how the circuit implement是什么是VHDL?Very high speed integrated Hardware Description Language(VHDL)y是IEEE、工业标准硬件描述语言y用语言的方式而非图形等方式描述硬件电路x容易修改x容易保存y特别适合于设计的电路有:x复杂组合逻辑电路,如:译码器、编码器
3、、加减法器、多路选择器、地址译码器.x状态机x等等.VHDL的功能和标准的功能和标准z VHDL 描述y输入端口y输出端口y电路的行为和功能zVHDL有过两个标准:yIEEE Std 1076-1987(called VHDL 1987)yIEEE Std 1076-1993(called VHDL 1993)VHDL Synthesis vs.other HDLs SynthesiszVHDL:“tell me how your circuit should behave and I will give you hardware that does the job”zABEL,PALASM,
4、AHDL:“tell me what hardware you want and I will give it to you”Why using VHDL instead of GraphiczEasy to ModifyzIt is more powerful than GraphiczVHDL is a portable language becauseyis device independentythe same code can be applied to Device manufactured by Company A or Company B【例5-1】ENTITY mux21a
5、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 ARCHITECTURE one;实体结构体5.1 多路选择器多路选择器VHDL描述描述图图5-1 mux21a实体实体图图5-2 mux21a结构体结构体5.1.1 2选选1多路选择器的多路选择器的VHDL描述描述5.1.1 2选选1多路选择器的多路选择器的VHDL描述描述【例例5-2】ENTITY mux21a IS PORT(a,b:IN BIT;s:I
6、N BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e:BIT;BEGINd=a AND(NOT S);e=b AND s;y=d OR e ;END ARCHITECTURE one;【例【例5-3】.ARCHITECTURE one OF mux21a IS BEGIN y=(a AND(NOT s)OR(b AND s);END ARCHITECTURE one;5.1.1 2选选1多路选择器的多路选择器的VHDL描述描述【例【例5-4】ENTITY mux21a IS PORT(a,b,s
7、: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.1.1 2选选1多路选择器的多路选择器的VHDL描述描述图图5-3 mux21a功能时序波形功能时序波形5.1.2 VHDL相关语句说明相关语句说明1.1.实体表达实体表达【例【例5-5】ENTITY e_name IS PORT(p_name:port_m data_type
8、;.p_namei:port_mi data_type);END ENTITY e_name;或:或:【例【例5-6】ENTITY e_name IS PORT(p_name:port_m data_type;.p_namei:port_mi data_type);END e_name;5.1.2 VHDL相关语句说明相关语句说明2.2.实体名实体名3.3.PORTPORT语句和端口信号名语句和端口信号名4.4.端口模式端口模式INOUTINOUTBUFFER5.5.数据类型数据类型BITBIT5.1.2 VHDL相关语句说明相关语句说明6.6.结构体表达结构体表达【例【例5-7】ARCHIT
9、ECTURE arch_name OF e_name IS (说明语句说明语句)BEGIN (功能描述语句功能描述语句)END ARCHITECTURE arch_name;或:或:【例【例5-8】ARCHITECTURE arch_name OF e_name IS (说明语句说明语句)BEGIN (功能描述语句功能描述语句)END arch_name;7.7.信号传输信号传输(赋值赋值)符号和数据比较符号符号和数据比较符号5.1.2 VHDL相关语句说明相关语句说明8.8.逻辑操作符逻辑操作符ANDAND、OROR、NOTNOT9.9.IF_THENIF_THEN条件语句条件语句10.10
10、.WHEN_ELSEWHEN_ELSE条件信号赋值语句条件信号赋值语句赋值目标赋值目标=表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHEN 赋值条件赋值条件 ELSE .表达式表达式;11.11.PROCESSPROCESS进程语句和顺序语句进程语句和顺序语句12.12.文件取名和存盘文件取名和存盘5.1.3 VHDL设计的基本概念和语句小节设计的基本概念和语句小节数据类型信号赋值符条件比较符 延时实体结构体端口定义端口模式逻辑操作符IF条件语句并行条件语句进程语句顺序语句并行语句文件取名文件存盘5.2 寄存器描述及其寄存器描述及其VHDL语言现象语言现象5.2.1 D
11、触发器的触发器的VHDL描述描述【例5-9】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS PORT(CLK:IN STD_LOGIC;D:IN STD_LOGIC;Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1:STD_LOGIC;-类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=D;END IF;Q=Q1;-将内部的暂存数据向端口输出 END PROCESS;
12、END bhv;D触发器触发器比较用5种不同语句的D触发器VHDL程序Entity test1 isport(clk,d:in bit;q:out bit);end test1;architecture body of test1 issignal q1:bit;beginprocess(clk)begin if clk=1 AND clklast_value=0 then q1=d;end if;q=q1;end process;end test1_body;LIBRARY IEEE;USE IEEE.std_logic_1164.all;Entity test1 isport(clk,d:
13、in bit;q:out bit);end test1;architecture body of test1 isbeginprocess(clk,d)begin if rising_edge(clk)then q=d;end if;end process;end test1_body;Entity test1 isport(clk:in bit;d:in bit;q:out bit);end test1;architecture body of test1 issignal q1:bit;beginprocess(clk,d)begin if(clk=1)then q1=d;end if;q
14、=q1;end process;end body;Entity test1 isport(clk:in bit;d:in bit;q:out bit);end test1;architecture body of test1 issignal q1:bit;beginprocess(clk)begin if(clk=1)then q1=d;end if;q=q1;end process;end body;How Many Registers?ENTITY reg1 ISPORT(d:in BIT;clk:in BIT;q:out BIT);END reg1;ARCHITECTURE reg1
15、OF reg1 ISSIGNAL a,b:BIT;BEGINPROCESS(clk)BEGINIF clk=1 AND clkevent THENa=d;b=a;q=b;END IF;END PROCESS;END reg1;How Many Registers?ENTITY reg1 ISPORT(d:in BIT;clk:in BIT;q:out BIT);END reg1;ARCHITECTURE reg1 OF reg1 ISBEGINPROCESS(clk)VARIABLE a,b:BIT;BEGINIF clk=1 AND clkevent THENa:=d;b:=a;q=b;EN
16、D IF;END PROCESS;END reg1;用用VHDL设计设计4位计数器位计数器AB01010101取整数数据类型,为什么?整数取值范围端口信号模式取BUFFER,为什么?注意整数和位的不同表达方式!修改后的程序运算符加载注意,信号注意,信号端口模式和端口模式和数据类型的数据类型的改变!改变!注意,引注意,引进内部信进内部信号矢量!号矢量!4位锁存器位锁存器组合电路加组合电路加1器器锁存信号锁存信号输出反馈输出反馈用用VHDL设计设计7段段16进制译码器进制译码器用用CASE语句完成真值表的功能语句完成真值表的功能向向7段数码段数码管输出信号,管输出信号,最高位控制最高位控制小数点小
17、数点注意,此语句必须加入注意,此语句必须加入4位加法位加法计数器计数器7段译码器段译码器8位总线输出位总线输出信信号号输输出出数据对象信号Signal 和变量 VariablezSignal Assignmentyreceive the assign value after a period of timezVariable Assignmentyhappens immediately when the statement is executed,no delaySignals vs.VariablesRepresent CircuitRepresent local storageInterc
18、onnectGlobal Scope(anywhere)Local Scope(inside process)Updated at end of PROCESSUpdated Immediately(new value not available)(new value available)SIGNALSVARIABLES UTILITY:SCOPE:BEHAVIOR:例1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;q:OUT STD_LOGIC);END mux
19、4;ARCHITECTURE body_mux4 OF mux4 ISsignal muxval:integer;BEGINprocess(i0,i1,i2,i3,a,b)beginmuxval=0;if(a=1)then muxval=muxval+1;end if;if(b=1)then muxval q q q q null;end case;end process;END body_mux4;Why?LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT(i0,i1,i2,i3,a,b:IN STD_LOGIC;q:OUT
20、 STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 ISBEGINprocess(i0,i1,i2,i3,a,b)variable muxval:integer range 0 to 3;beginmuxval:=0;if(a=1)then muxval:=muxval+1;end if;if(b=1)then muxval:=muxval+2;end if;case muxval is when 0=q q q q null;end case;end process;END body_mux4;LIBRARY IEEE;USE IEEE.S
21、TD_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 IBEGIN so=(a OR b)AND(a NAND b);co=NOT(a NAND b);END ARCHITECTURE fh1;用一位全加器设计用一位全加器设计1位二进制半加器位二进制半加器1位二进制全加器位二进制全加器内部端口外部端口端口连线5.2.2 D触发器触发器VHDL描述的语言现象说明描述的语言现象说明1.1.标准逻辑位数据
22、类型标准逻辑位数据类型STD_LOGICSTD_LOGICBIT数据类型定义:TYPE BIT IS(0,1);TYPE BIT IS(0,1);STD_LOGIC数据类型定义:TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);STD_LOGIC所定义的9种数据的含义是:UU表示未初始化的;表示未初始化的;XX表示强未知的;表示强未知的;0 0表示强表示强逻辑逻辑0 0;1 1表示强逻辑表示强逻辑1 1;ZZ表示高阻态;表示高阻态;W W 表示弱未知的;表示弱未知的;LL表示弱逻辑表示弱逻辑0 0
23、;HH表示弱表示弱逻辑逻辑1 1;-表示忽略。表示忽略。5.2.2 D触发器触发器VHDL描述的语言现象说明描述的语言现象说明2.2.设计库和标准程序包设计库和标准程序包3.3.SIGNALSIGNAL信号定义和数据对象信号定义和数据对象【例5-10】ARCHITECTURE bhv OF DFF1 IS BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q=D;END IF;END PROCESS;END;使用库和程序包的一般定义表式是:LIBRARY LIBRARY ;USE USE .ALL;ALL;5.2.2 D触发器触发器VHDL描
24、述的语言现象说明描述的语言现象说明4.4.上升沿检测表式和信号属性函数上升沿检测表式和信号属性函数EVENTEVENT 关键词EVENT是信号属性,VHDL通过以下表式来测定某信号的跳变边沿:EVENTEVENT5.5.不完整条件语句与时序电路不完整条件语句与时序电路【例【例5-11】ENTITY COMP_BAD IS PORT(a1 :IN BIT;b1 :IN BIT;q1 :OUT BIT );END;ARCHITECTURE one OF COMP_BAD IS BEGIN PROCESS(a1,b1)BEGIN IF a1 b1 THEN q1=1;ELSIF a1 b1 THEN
25、 q1 b1 THEN q1=1;ELSE q1=0;END IF;END PROCESS;END 图图5-6 例例5-12的电路图的电路图5.2.3 实现时序电路的实现时序电路的VHDL不同表达方式不同表达方式【例【例5-13】.PROCESS(CLK)BEGINIF CLKEVENT AND(CLK=1)AND(CLKLAST_VALUE=0)THEN Q=D;-确保确保CLK的变化是一次上升沿的跳变的变化是一次上升沿的跳变 END IF;END PROCESS;【例【例5-14】.PROCESS(CLK)BEGINIF CLK=1 AND CLKLAST_VALUE=0 -同例同例5-1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 实用教程 第五 _VHDL 设计 初步
限制150内