《VHDL设计初步》PPT课件.ppt
《《VHDL设计初步》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《VHDL设计初步》PPT课件.ppt(99页珍藏版)》请在三一办公上搜索。
1、EDA&CPLD,第5章,VHDL设计初步,原理图输入与 VHDL文本输入设计的区别Graphic is what you draw is what you get“tell me what hardware you want and I will give it to you”VHDL is what you write is what functional you get“tell me how your circuit should behave and the VHDL compiler will give you the hardware that does the job”but
2、the designer can not control how the circuit implement,什么是VHDL?,Very high speed integrated Hardware Description Language(VHDL)是IEEE、工业标准硬件描述语言用语言的方式而非图形等方式描述硬件电路容易修改容易保存特别适合于设计的电路有:复杂组合逻辑电路,如:译码器、编码器、加减法器、多路选择器、地址译码器.状态机等等.,VHDL的功能和标准,VHDL 描述输入端口输出端口电路的行为和功能VHDL有过两个标准:IEEE Std 1076-1987(called VHDL
3、1987)IEEE Std 1076-1993(called VHDL 1993),5VHDL语言,支持行为描述与结构描述的混合使用,描述对象:实体 ENTITY 顶级实体 系统模块 低级实体 低层次的设计模块 高级实体可将低级实体作为元件调用,实体描述:实体说明 ENTITY引导,EDN ENTITY 实体名结束 结构体 ARCHITECHTURE引导,END ARCHITECHTURE 结构体名结束 顺序语句:同普通软件,按排列顺序执行 并行语句:无论多少行,同时执行 结构式:电路元件安装 结构 例程序5.1 行为式:功能和行为 相应结构 例程序5.2 算法式:电路和逻辑功能都不知(适用于
4、高层模块,电路实现时可以有多 种不同的实现方案)例程序5.3,例 1 结构式 BEGINGu1:nand2 PORT MAP(a=set,b=qb,c=q);u2:nand2 PORT MAP(a=reset,b=q,c=qb);,例 2 行为式ARCHTECTURE rs_behav OF rsff ISBEGIN q=NOT(qb AND set);qb=NOT(q AND reset);END rs_behav;,例 3 算法式ARCHTECTURE rs_alg OF rsff ISBEGIN ASSERT NOT(reset=“0”AND set=“0”);-输入为00,输出不定,报
5、告错误 REPORT“Input IS 00”SEVERITY error;IF set=1 AND reset=1THEN 输入为11,输出不变.,VHDL程序基本结构,VHDL Synthesis vs.other HDLs Synthesis,VHDL:“tell me how your circuit should behave and I will give you hardware that does the job”ABEL,PALASM,AHDL:“tell me what hardware you want and I will give it to you”,Why usi
6、ng VHDL instead of Graphic,Easy to ModifyIt is more powerful than GraphicVHDL is a portable language becauseis device independentthe same code can be applied to Device manufactured by Company A or Company B,【例5-1】ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one
7、 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:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS SIGNAL d,e:BIT;BEGINd=a AND(NOT S);
8、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;,并行语句用boolean方程表达,5.1.1 2选1多路选择器的VHDL描述,【例5-4】ENTITY mux21a IS PORT(a,b,s:IN BIT;y:OUT BIT);END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS(a,b,s)BEGIN IF
9、 s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END ARCHITECTURE one;,顺序语句,5.1.1 2选1多路选择器的VHDL描述,四种描述方法 电路结构相同,综合,5.1.1 2选1多路选择器的VHDL描述,图5-3 mux21a功能时序波形,5.1.2 VHDL相关语句说明,1.实体表达,【例5-5】ENTITY e_name IS PORT(p_name:port_m data_type;.p_name:port_m data_type);END ENTITY e_name;或:【例5-6】ENTITY e_name IS PORT(p_
10、name:port_m data_type;.p_namei:port_mi data_type);END e_name;,93版,87版,5.1.2 VHDL相关语句说明,2.实体名 不可用数字开头、中文、已有实体名,3.PORT语句和端口信号名 信号名唯一,4.端口模式(定义端口上数据的流动方向和方式),IN,OUT,INOUT,BUFFER,5.数据类型BIT 0和1加引号,否则为整数INTEGER注:BIT数据类型的定义在标准程序包STANDARD中,STANDARD在标准库STD中,5.1.2 VHDL相关语句说明,6.结构体表达,【例5-7】ARCHITECTURE arch_na
11、me OF e_name IS(说明语句)BEGIN(功能描述语句)END ARCHITECTURE arch_name;或:【例5-8】ARCHITECTURE arch_name OF e_name IS(说明语句)BEGIN(功能描述语句)END arch_name;,7.信号传输(赋值)符号和数据比较符号A、y=a 赋值;以后发生,理解为延时;两边数据类型相同B、S=0比较;输出结果的数据类型BOOLEAN,取值TRUE OR FALSE(1OR 0),5.1.2 VHDL相关语句说明,8.逻辑操作符7种:AND、OR、NAND、NOR、XOR、XNOR、NOT 要求的操作数(操作对象
12、)的数据类型:BIT、BOOLEAN、STD_LOGIC,9.IF_THEN条件语句 顺序语句,10.WHEN_ELSE条件信号赋值语句 并行赋值,赋值目标=表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE.表达式;,11.PROCESS进程语句和顺序语句 合法的顺序语句必须在进程语句中 一个结构体中可以有任意个进程语句,所有的进程语句都是并行语句,而由任一 进程PROCESS引导的语句结构属于顺序语句。,12.文件取名和存盘 文件名同实体名,在元件例化语句中元件名同文件名,5.1.3 VHDL设计的基本概念和语句小节,数据类型,信号赋值符,条件比较符,延时,实体,结
13、构体,端口定义,端口模式,逻辑操作符,IF条件语句,并行条件语句,进程语句,顺序语句,并行语句,文件取名,文件存盘,5.2 寄存器描述及其VHDL语言现象,5.2.1 D触发器的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(C
14、LK)BEGIN IF CLKEVENT AND CLK=1-边沿测试语句,有上升沿结果为true THEN Q1=D;-if不完整条件语句 END IF;Q=Q1;-将内部的暂存数据向端口输出 END PROCESS;END bhv;,D触发器,5.2.2 D触发器VHDL描述的语言现象说明,1.标准逻辑位数据类型STD_LOGIC,BIT数据类型定义:TYPE BIT IS(0,1);,STD_LOGIC数据类型定义:TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);,STD_LOGIC所定义的9种数据的含义是:U表示未初始化的;X表示强未知的;0表示强逻辑0;1表
15、示强逻辑1;Z表示高阻态;W 表示弱未知的;L表示弱逻辑0;H表示弱逻辑1;-表示忽略。,注:在数字器件中实现的有其中4种,X(-)、0、1、Z,5.2.2 D触发器VHDL描述的语言现象说明,2.设计库和标准程序包,3.SIGNAL信号定义和数据对象,【例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;USE.ALL;,LIBRARY IEEE;USE IEEE.STD_
16、LOGIC_1164.ALL;,在IEE库中的STD_LOGIC_1164程序包中定义STD_LOGIC数据类型,SIGNAL Q1:STD_LOGIC;,SIGNAL:定义某标识符为信号Q1 数据对象:信号 数据类型:STD_LOGIC,信号:signal 数据对象 变量:variable 常量:constant,数据对象信号Signal 和变量 Variable,Signal Assignmentreceive the assign value after a period of timeVariable Assignmenthappens immediately when the sta
17、tement is executed,no delay,Signals vs.Variables,Represent CircuitRepresent local storageInterconnectGlobal Scope(anywhere)Local Scope(inside process)Updated at end of PROCESSUpdated Immediately(new value not available)(new value available),SIGNALSVARIABLES,UTILITY:,SCOPE:,BEHAVIOR:,5.2.2 D触发器VHDL描述
18、的语言现象说明,4.上升沿检测表式和信号属性函数EVENT,关键词EVENT是信号属性,VHDL通过以下表式来测定某信号的跳变边沿:EVENT,CLKEVENT 对CLK标识符的信号在时间内发生事件的情况进行检测若:CLK的数据类型为STD_LOGIC,时间内CLK由9种值中任意一值向另 一值跳变,则表达式输出TRUE,否则输出FALSE。,CLKEVENT AND CLK=1 边沿测试语句,5.不完整条件语句与时序电路,【例5-11】比较器(组合电路)ENTITY COMP_BAD IS PORT(a1:IN BIT;b1:IN BIT;q1:OUT BIT);END;ARCHITECTUR
19、E one OF COMP_BAD IS BEGIN PROCESS(a1,b1)BEGIN IF a1 b1 THEN q1=1;ELSIF a1 b1 THEN q1=0;-未提及当a1=b1时,q1作何操作END IF;END PROCESS;END;,5.2.2 D触发器VHDL描述的语言现象说明,当条件不满足时应保持q1的原值不变,为q1配置一寄存器保持原值,5.不完整条件语句与时序电路,图5-5 例5-11的电路图,注:A、利用不完整条件语句是VHDL描述时序电路重要的途径 B、纯组合电路设计时不必要的时序元件:浪费逻辑资源、降低速度、影响可靠性,5.不完整条件语句与时序电路,【例
20、5-12】ENTITY COMP_GOOD IS PORT(a1:IN BIT;b1:IN BIT;q1:OUT BIT);END;ARCHITECTURE one OF COMP_GOOD IS BEGIN PROCESS(a1,b1)BEGIN IF a1 b1 THEN q1=1;ELSE q1=0;-a1b1的情况,完整条件语句 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)T
21、HEN Q=D;-确保CLK的变化是一次上升沿的跳变 END IF;END PROCESS;,【例5-14】.PROCESS(CLK)BEGINIF CLK=1 AND CLKLAST_VALUE=0-同例5-13 THEN Q=D;END IF;END PROCESS;,预定义信号属性:CLK在时刻前为0,5.2.3 实现时序电路的VHDL不同表达方式,【例5-15】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF3 IS PORT(CLK:IN STD_LOGIC;D:IN STD_LOGIC;Q:OUT STD_LOGIC);END;
22、ARCHITECTURE bhv OF DFF3 IS SIGNAL Q1:STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF rising_edge(CLK)-CLK的数据类型必须是STD_LOGIC THEN Q1=D;END IF;Q=Q1;END PROCESS;END;,上升沿测试函数,5.2.3 实现时序电路的VHDL不同表达方式,【例5-16】.PROCESS BEGIN wait until CLK=1;-利用wait语句 Q=D;END PROCESS;,【例5-17】.PROCESS(CLK)BEGIN IF CLK=1 THEN Q=D;-利用进程的
23、启动特性产生对CLK的边沿检测 END IF;END PROCESS;,【例5-18】.PROCESS(CLK,D)BEGIN IF CLK=1-电平触发型寄存器 THEN Q=D;END IF;END PROCESS;,5.2.3 实现时序电路的VHDL不同表达方式,图5-7 边沿型触发器时序波形,图5-8 电平触发型寄存器的时序波形,5.2.4 异步时序电路设计【例5-19】,.ARCHITECTURE bhv OF MULTI_DFF IS SIGNAL Q1,Q2:STD_LOGIC;BEGINPRO1:PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL设计初步 VHDL 设计 初步 PPT 课件

链接地址:https://www.31ppt.com/p-5577302.html