EDA第4章VHDL设计初步.ppt
《EDA第4章VHDL设计初步.ppt》由会员分享,可在线阅读,更多相关《EDA第4章VHDL设计初步.ppt(37页珍藏版)》请在三一办公上搜索。
1、第4章VHDL设计初步,什么是VHDL?,Very high speed integrated Hardware Description Language(VHDL)是IEEE、工业标准硬件描述语言用语言的方式而非图形等方式描述硬件电路容易修改容易保存,【例4-1】ENTITY mux21a 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;,实体,结构体,4.1 多路选择器VH
2、DL描述,4.1.1 2选1多路选择器的VHDL描述,【例4-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);e=b AND s;y=d OR e;END ARCHITECTURE one;,【例】.ARCHITECTURE one OF mux21a IS BEGIN y=(a AND(NOT s)OR(b AND s);END one;,【例4-3】ENTITY m
3、ux21a 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 s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END ARCHITECTURE one;,图4-3 mux21a功能时序波形,4.1.2 VHDL相关语句说明,1.实体表达,【例4-4】ENTITY e_name ISPORT(p_name:port_m data_type;.端口信号名:端口模式 数据类型);END ENTITY
4、e_name;,2.实体名不能用数字开头定义实体名;不能用中文定义实体名,3.PORT语句(包括端口信号名:端口模式,数据类型),4.端口模式,IN,OUT,INOUT,BUFFER,5.数据类型BIT主要包括:Integer(整数);Boolean(布尔);STD_LOGIC(标准逻辑位数据类型);BIT(位数据类型)BIT数据类型的信号规定的取值范围是逻辑位0、1。在VHDL中,逻辑位0、1 必须加单引号,否则被认定为整数数据类型。,6.结构体表达,ARCHITECTURE arch_name OF e_name IS(说明语句)BEGIN(功能描述语句)END arch_name;,7.
5、信号传输(赋值)符号赋值操作y=a并非立即发生的,而要经过一个模拟器的最小分辨时间后,才将a的值赋给y。赋值符=两边的信号的数据类型必须一致。,8.逻辑操作符AND(与);OR(或);NOT(非);NAND(与非);NOR(或非);XOR(异或);XNOR(同或),9.IF_THEN条件语句IF s=0 THEN y=a;ELSE y=b;END IF;,10.WHEN_ELSE条件信号赋值语句,赋值目标=表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELSE.表达式;,11.PROCESS进程语句和顺序语句PROCESS(a,b,s)只要敏感信号a、b、s某一个发生变化,
6、将启动此进程;执行一遍后,便进入等待状态。,4.2 寄存器描述及其VHDL语言现象,4.2.1 D触发器的VHDL描述,【例4-6】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 DFF1;ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1:STD_LOGIC;-定义一个数据的暂存节点 BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=
7、D;END IF;Q=Q1;-将内部的暂存数据向端口输出 END PROCESS;END bhv;,D触发器,4.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表示强逻辑1;Z表示高阻态;W 表示弱未知的;L表示弱逻辑0;H表示弱逻辑1;-表示忽略。,可综合的,常用,不可综合的,不常用,2.设计库和
8、标准程序包,3.SIGNAL信号定义和数据对象,SIGNAL Q1:STD_LOGIC;前者:规定的数据对象是信号,表示Q1的行为方式和功能特点;后者:表示数据类型是STD_LOGIC,限定了Q1的取值范围。,使用库和程序包的一般定义表式是:LIBRARY;-表示打开设计库USE.ALL;-允许使用设计库中程序包中的所有内容,4.上升沿检测表式和信号属性函数EVENT,关键词EVENT是信号属性,VHDL通过以下表式来测定某信号的跳变边沿:EVENT,5.不完整条件语句与时序电路,【例4-7】ENTITY COMP_BAD IS PORT(a1:IN BIT;b1:IN BIT;q1:OUT
9、BIT);END COMP_BAD;ARCHITECTURE one OF COMP_BAD IS BEGIN PROCESS(a1,b1)BEGIN IF a1 b1 THEN q1=1;ELSIF a1 b1 THEN q1=0;END IF;END PROCESS;END one;,-未提及当a1=b1时,q1作何操作,【例4-8】ENTITY COMP_GOOD IS PORT(a1:IN BIT;b1:IN BIT;q1:OUT BIT);END COMP_GOOD;ARCHITECTURE one OF COMP_GOOD IS BEGIN PROCESS(a1,b1)BEGIN
10、IF a1 b1 THEN q1=1;ELSE q1=0;END IF;END PROCESS;END one;,修改后的条件语句与时序电路,4.2.3 实现时序电路的VHDL不同表达方式,【例4-9】.PROCESS(CLK)BEGINIF CLKEVENT AND(CLK=1)AND(CLKLAST_VALUE=0)THEN Q=D;-确保CLK的变化是一次上升沿的跳变 END IF;END PROCESS;,【例4-10】.PROCESS(CLK)BEGINIF CLK=1 AND CLKLAST_VALUE=0 THEN Q=D;END IF;END PROCESS;,【例4-12】.
11、PROCESS BEGIN wait until CLK=1;-利用wait语句 Q=D;END PROCESS;,【例4-13】PROCESS(CLK)BEGIN IF CLK=1 THEN Q=D;END IF;END PROCESS;,【例4-14】PROCESS(CLK,D)BEGIN IF CLK=1 THEN Q=D;END IF;END PROCESS;,-利用进程的启动特性产生对CLK的边沿检测,-电平触发型寄存器,4.3 1位二进制全加器的VHDL设计,图4-11半加器h_adder电路图,图4-10 全加器f_adder电路图,25,4.3.1 半加器描述和CASE语句,a
12、bsoco0000011010101101,半加器h_adder逻辑功能真值表,1.CASE语句,CASE语句的一般表式是:,CASE ISWhen=;When=;.END CASE;,2.标准逻辑矢量数据类型STD_LOGIC_VECTOR,3.并置操作符,SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL d:STD_LOGIC_VECTOR(1 DOWNTO 0);.a=1 0 d(1)1;-元素与元素并置,并置后的数组长度为4.IF a d=101011 THEN.-在IF条件句中可以使用并置符,在使用STD_LOGIC_VECTOR中,必须注明其
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA VHDL 设计 初步
链接地址:https://www.31ppt.com/p-5428645.html