《项目触发器的设计.ppt》由会员分享,可在线阅读,更多相关《项目触发器的设计.ppt(20页珍藏版)》请在三一办公上搜索。
1、1,任务8 D触发器的VHDL设计,2,一、任务分析:D触发器的工作原理,触发器是时序逻辑电路的基本逻辑单元,能够存储1位二进制数据。有两个稳定的状态,在外加触发信号的作用下,可以从一种稳定状态转换到另一种稳定状态,当外加信号消失后,触发器仍维持其现状态不变,具有记忆功能。,最简单并最具代表性的时序电路是D触发器,它是现代可编程ASIC设计中最基本的时序元件和底层元件。D触发器的描述包含了VHDL对时序电路的最基本和典型的表达方式,同时也包含了VHDL中许多最具特色的语言现象。,触发器的分类:(1)按电路的结构形式不同可分为:基本RS触发器,同步RS触发器,主从触发器和边沿触发器等。(2)按功
2、能分为:RS触发器,JK触发器,T触发器,T触发器,D触发器等。,在逻辑代数中,D触发器的逻辑功能可以用下面的布尔方程式来表示:时序逻辑电路中,可用带使能端的D触发器实现锁存器,即把信号暂存以维持某种电平状态。,1、用不完整IF实现时序逻辑电路的描述(教材76),可以用于实现两种或两种以上的条件分支判断。,IF语句当中至少应有一个条件句,条件句可以是一个BOOLEAN类型的标识符,也可以是一个判别表达式。IF语句根据条件语句产生的结果判断结果是”真”还是”假”,有条件的选择执行其后的顺序语句。,格式1(非完整性条件语句):IF 条件 THEN 顺序处理语句;END IF;(条件真则执行,否则直
3、接END跳过)格式2(具有分支的条件语句):IF 条件 THEN 顺序处理语句;ELSE 顺序处理语句;END IF;,常用于时序逻辑电路,常用于组合逻辑电路,格式3(多重IF语句嵌套式条件句):IF 条件 THEN IF 条件 THEN 顺序处理语句.END IF;END IF;END IF语句应该和嵌入的条件句数量一致.,格式4(多分支IF语句):IF 条件1 THEN 顺序处理语句;ELSIF 条件2 THEN 顺序处理语句;ELSE 顺序处理语句;END IF;这一类型语句的特点是可以通过关键词设定多个判定条件,其任一分支顺序语句的执行条件是以上各分支所确定条件的相与,即相关条件同时成
4、立.,此类IF 语句隐含有优先级的关系,可用来设计具有优先权的电路。,2、上升沿的描述(教材43)WAIT UNTIL clock=1;WAIT UNTIL rising_edge(clock);WAIT UNTIL NOT clockSTABLE AND clock=1;WAIT UNTIL clock=1 AND clockEVENT;通常采用第二和第四种格式的IF语句作为边沿的描述。而第一种格式如果采用IF clock=1则表示高电平。,3、进程的使用(教材56)IF语句是顺序语句,故应放在进程中。进程语句是一段复合语句,由一段程序构成,各个进程之间是并行进行的,而进程的内部语句都是顺序
5、执行的。一个结构体中可以包括多个进程语句,多个进程之间依靠信号(SIGNAL)来传递。,进程语句的格式如下:标号:PROCESS(敏感信号表)说明语句;-定义一些局部变量BEGIN顺序语句;END PROCESS 标号;,进程语句的格式如下:标号:PROCESS说明语句;-定义一些局部变量BEGIN顺序语句;WAIT ON 敏感信号表;END PROCESS 标号;,进行进程设计时应注意以下问题:1、进程为一个独立的无限循环语句。它只有两种状态:执行状态和等待状态。满足条件进入执行状态,当遇到end process语句后停止执行,自动返回到起始语句PROCESS,进入等待状态。2、进程语句本身
6、是并行语句。即同一结构体中的不同进程是并行运行的,但不同的结构体是根据自身的敏感信号独立运行的。,Entity mul is port(a,b,c,selx,sely:in bit;data_out:out bit);End mul;architecture ex of mul is signal temp:bit;begin p_a:process(a,b,selx)begin if selx=0 then temp=a;else temp=b;end if;end process p_a;,P_b:process(temp,c,sely)begin if sely=0 then data_
7、out=temp;else data_out=c;end if;end process p_b;End ex;,3、进程中的顺序语句具有明显的顺序/并行运行双重性。即:进程中的顺序语句具有并行执行的性质。如:并行运行:Process(s,a,b,c)Begin Case s Is WHEN00=dddNULL;End Case;End Process;,如:顺序运行:Process(,a,b,c)begin Y=a+b;Z=c-a;Y=b;End process;顺序语句中允许同一信号有多个赋值源,但在并行赋值语句中不允许这种情况。,4、进程必须由一个敏感信号表中定义的任一敏感信 号的变化来启
8、动,否则必须有一个显示的WAIT语 句来激励(wait on 信号表)。且进程只对信号敏 感而对变量不敏感。且信号是多个进程间的通信线。只有信号能 将进程外的信息带入进程或将进程内的信息带出 进程。,【例】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF3 IS PORT(CLK,D1:IN STD_LOGIC;Q1:OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS(CLK)VARIABLE QQ:STD_LOGIC;BEGIN IF CLKEVENT AND CLK=1 THEN QQ:=D1;END IF;Q1=QQ;END PROCESS;END;,【例】.ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ:STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF CLKEVENT AND CLK=1 THEN QQ=D1;END IF;Q1=QQ;END PROCESS;END;,JK触发器与RS触发器的VHDL设计,