VHDL第4章寄存器描述.ppt

上传人:小飞机 文档编号:6522934 上传时间:2023-11-08 格式:PPT 页数:22 大小:314.01KB
返回 下载 相关 举报
VHDL第4章寄存器描述.ppt_第1页
第1页 / 共22页
VHDL第4章寄存器描述.ppt_第2页
第2页 / 共22页
VHDL第4章寄存器描述.ppt_第3页
第3页 / 共22页
VHDL第4章寄存器描述.ppt_第4页
第4页 / 共22页
VHDL第4章寄存器描述.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《VHDL第4章寄存器描述.ppt》由会员分享,可在线阅读,更多相关《VHDL第4章寄存器描述.ppt(22页珍藏版)》请在三一办公上搜索。

1、,D触发器真值表(发生在时钟上升沿),0,1,D=1,D=1,D=0,D=0,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;ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1:STD_LOGIC;-类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS(CLK)BEGIN IF CLKEVEN

2、T AND CLK=1 THEN Q1=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;-表示忽略。,4.2.

3、2 D触发器VHDL描述的语言现象说明,2.设计库和标准程序包,使用库和程序包的一般定义表式是:LIBRARY;USE.ALL;,库的种类 VHDL库可分为 5种:1)IEEE 库 定义了四个常用的程序包:std_logic_1164(std_logic types&related functions)std_logic_arith(arithmetic functions)std_logic_signed(signed arithmetic functions)std_logic_unsigned(unsigned arithmetic functions),Type STD_LOGIC:9

4、 logic value system(U,X,0,1,Z,W,L,H,-)W,L,H”weak values(Not supported by Synthesis)X-(not x)used for unknown Z-(not z)used for tri-state-Dont Care,2)STD 库(默认库)库中程序包为:standard,定义最基本的数据类型:Bit,bit_vector,Boolean,Integer,Real,and Time 注:Type Bit 2 logic value system(0,1)3)面向ASIC的库 4)WORK库(默认库)5)用户定义库,4、

5、库及程序包的使用 库及程序包的说明总是放在实体单元前面,默认库及程序包可不作说明。用关健字library 说明要使用的库,用关健字 use 说明要使用的库中的程序包。库及程序包的作用范围:仅限于所说明的设计实体。每一个设计实体都必须有自已完整的库及程序包说明语句。,2 选 1 选择器:,2选1的另一种描述,3.SIGNAL信号定义和数据对象,ARCHITECTURE bhv OF DFF1 IS BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q=D;END IF;END PROCESS;END;,SIGNAL Q1:STD_LOGIC,4

6、.2.2 D触发器VHDL描述的语言现象说明,4.上升沿检测表式和信号属性函数EVENT,关键词EVENT是信号属性,VHDL通过以下表式来测定某信号的跳变边沿:EVENT,CLKEVENT-CLKEVENT AND CLK=1,5.不完整条件语句与时序电路,【例4-7】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 q1=0;-未提及当

7、a1=b1时,q1作何操作END IF;END PROCESS;END;,4.2.2 D触发器VHDL描述的语言现象说明,5.不完整条件语句与时序电路,图4-5 例5-11的电路图,5.不完整条件语句与时序电路,【例4-8】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;END IF;END PROCESS;END,图4-6 例4-12的电路图,4

8、.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-同例5-13 THEN Q=D;END IF;END PROCESS;,4.2.3 实现时序电路的VHDL不同表达方式,【例4-11】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;E

9、NTITY DFF3 IS PORT(CLK:IN STD_LOGIC;D:IN STD_LOGIC;Q:OUT STD_LOGIC);END;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;,4.2.3 实现时序电路的VHDL不同表达方式,【例4-12】.PROCESS BEGIN wait until CLK=1;-利用wait语句 Q=D

10、;END PROCESS;,【例4-13】.PROCESS(CLK)BEGIN IF CLK=1 THEN Q=D;-利用进程的启动特性产生对CLK的边沿检测 END IF;END PROCESS;,4.2.3 实现时序电路的VHDL不同表达方式,图5-8 电平触发型寄存器的时序波形,【例4-14】.PROCESS(CLK,D)BEGIN IF CLK=1-电平触发型寄存器 THEN Q=D;END IF;END PROCESS;,4.2.4 异步时序电路设计,单一时钟的同步时序逻辑,4.2.4 异步时序电路设计【例4-19】,.ARCHITECTURE bhv OF MULTI_DFF IS

11、 SIGNAL Q1,Q2:STD_LOGIC;BEGINPRO1:PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=NOT(Q2 OR A);END IF;END PROCESS;PRO2:PROCESS(Q1)BEGIN IF Q1EVENT AND Q1=1 THEN Q2=D;END IF;QQ=Q2;END PROCESS;,图5-9 例5-19综合的电路,Q1,Q2,比较用5种不同语句的D触发器VHDL程序,Entity test1 isport(clk,d:in bit;q:out bit);end test1;architectur

12、e 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:in bit;q:out bit);end test1;architecture body of test1 isbeginprocess(clk,d)begin if rising_edge(cl

13、k)then q=d;end if;end process;end test1_body;,They are all the same,DFF,Entity test1 isport(clk:in bit;d:in bit;q:out bit);end test1;architecture body of test1 isbeginprocess begin wait until clk=1 then q1=d;end if;q=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;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号