97第八章 时序逻辑电路设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

唐进北京邮电大学自动化学院bittrinity@gmail.com时序逻辑电路设计2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿组合逻辑电路和时序逻辑电路¾组合逻辑电路:是指数字电路在任何时刻的输出仅仅取决于该时刻数字电路的输入,而与电路原来的状态无关。¾时序逻辑电路:是指数字电路在任何时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说和以前的输入有关。¾主要组合电路:基本门电路、编码器、译码器、选择器、分配器和运算器等。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿码制变换译码器¾8421-BCD码转换成十进制译码器LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYdecoder8421_10ISPORT(a,b,c,d:INstd_logic;y:OUTstd_logic_vector(9DOWNTO0));ENDdecoder8421_10;2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿ARCHITECTUREarcOFdecoder8421_10ISSIGNALcomb:std_logic_vector(3DOWNTO0);BEGINcomb=d&c&b&a;PROCESS(comb)BEGINCASEcombISWHEN0000=y=0000000001;WHEN0001=y=0000000010;WHEN0010=y=0000000100;WHEN0011=y=0000001000;WHEN0100=y=0000010000;WHEN0101=y=0000100000;WHEN0110=y=0001000000;WHEN0111=y=0010000000;WHEN1000=y=0100000000;WHEN1001=y=1000000000;WHENOTHERS=y=XXXXXXXXXX;ENDCASE;ENDPROCESS;ENDarc;2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿运算器¾数字系统设计中用来完成运算功能的电路。是设计中经常使用到的电路之一。¾常见的运算器:加法器、减法器、乘法器、比较器、逻辑运算器和求补器等。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿加法器举例¾通用加法器:指对两个加数的具体位数没有限制,但要求加数的位数必须相等。当调用通用加法器的时候,需要使用参数传递语句将加数的位数传递给调用的通用加法器元件即可。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿VHDL程序LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYadderNISGENERIC(n:INTEGER:=7);PORT(A:INstd_logic_vector(nDOWNTO0);B:INstd_logic_vector(nDOWNTO0);Cin:INstd_logic;Co:OUTstd_logic;S:OUTstd_logic_vector(nDOWNTO0));ENDadderN;ARCHITECTUREstructure_arcOFadderNISCOMPONENTfull_adderPORT(A:INstd_logic;B:INstd_logic;Cin:INstd_logic;Co:OUTstd_logic;S:OUTstd_logic);ENDCOMPONENT;SIGNALcarry_tmp:std_logic_vector(n-1DOWNTO0);2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿BEGING1:FORiIN0TOnGENERATEP1:IF(i=0)GENERATE--最低位的特殊处理adderx:full_adderPORTMAP(A(i),B(i),Cin,carry_tmp(i),S(i));ENDGENERATEP1;P2:IF(i=n)GENERATE--最高位的特殊处理adderx:full_adderPORTMAP(A(i),B(i),carry_tmp(i-1),Co,S(i));ENDGENERATEP2;P3:IF((i/=0)AND(i/=n))GENERATEadderx:full_adderPORTMAP(A(i),B(i),carry_tmp(i-1),carry_tmp(i),S(i));ENDGENERATEP3;ENDGENERATEG1;ENDstructure_arc;2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYfull_adderISPORT(A,B:INstd_logic;Cin:INstd_logic;Co:OUTstd_logic;S:OUTstd_logic);ENDfull_adder;ARCHITECTURErtlOFfull_adderISSIGNALtmp1,tmp2:std_logic;BEGINtmp1=AXORB;tmp2=tmp1ANDCin;S=tmp1XORCin;Co=tmp2OR(AANDB);ENDrtl;--一位全加器2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿时序逻辑电路¾时序逻辑电路:是指数字电路在任何时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说和以前的输入有关。¾主要特点:具有记忆功能,驱动信号为时钟信号。¾主要时序逻辑电路:触发器、锁存器、寄存器、计数器和存储器等。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿时钟信号的VHDL描述方法¾任何时序电路都是以时钟信号为驱动信号。¾时钟边沿分为上升沿和下降沿,一般时序的电路同步点在上升沿。¾描述时钟边沿是上升沿还是下降沿,使用时钟信号的属性描述来达到。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿VHDL语言的预定义属性¾属性:是指关于设计实体、结构体、数据类型、信号等对象的指定特征。¾优点:利用这些预定义属性可以使VHDL程序简明扼要、易于理解、并且可以减少设计人员的工作量。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿举例1.数值类属性T’left--左边界;T’right--右边界T’high--上限值;T’low--下限值书写格式:客体’属性名TYPEnumberisINTEGERRANGE31DOWNTO0Number’left--值为31Number’right--值为0Number’high--值为31Number’low--值为02011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿2.函数类属性„数据类型的属性函数„数组的属性函数„信号的属性函数2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿信号属性函数¾信号属性函数主要用来得到有关信号的行为功能信息。‰信号‘event:函数返回值为“true”或者“false”。如果在当前的一个相当小的时间间隔内有信号事件发生,返回“true”,否则返回“false”。‰信号‘active:函数返回值为“true”或者“false”。如果在当前的一个相当小的时间间隔内信号活跃,返回“true”,否则返回“false”。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿ActiveVSEvent¾活跃(active):信号值从′1′变为′0′是一个活跃实例,而从′1′变为′1′也是一个活跃,唯一的准则是发生了某件事。¾事件(event):某个信号发生了事件,是指该信号值发生了变化;信号值从′1′变为′0′是一个事件,但从′1′变为′1′则不是一个事件。¾所有的事件都是活跃,但并非所有的活跃都是事件。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿信号属性函数¾信号名′Last_Event:返回从该信号前一个事件发生到现在所花费的时间。¾信号名′Last_Value:返回该信号在最近一个事件发生以前的信号值。¾信号名′Last_Active:返回该信号从前一个事项处理发生到现在所花费的时间。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿信号类属性¾信号名′Stable[(t)]:建立一个Boolean类型信号,当该引用信号在t个时间单位内没有事件发生时,其值为True。¾信号名′Delayed[(t)]:建立与该引用信号同样类型的信号,其值为该引用信号延迟t个时间单位后的值。¾信号名′Quiet[(t)]:建立Boolean类型信号,若该信号已静待t个时间单位不活跃,则返回True;否则,返回False。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿利用属性的实例¾稳定性:„signal_name′Last_Event=10ns;--信号上次事件至少发生在10ns前„signal_name′Stable(10ns);--最少已稳定10ns2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿时钟脉冲上升沿的描述2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿时钟脉冲下降沿的描述¾IFclk=‘0’ANDclk’eventANDclk’last_value=‘1’2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿时钟边沿的一般性描述方法IFclk_signal=current_valueANDclk_signal’last_valueANDClk_signal’event2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿时钟边沿常见的描述方法¾检查时钟上升沿(对于Bit类型clk信号):„clk′EventANDclk=′1′;--一种可能途径„NOTclk′StableANDclk=′1′;--另一种可能途径¾检查时钟下降沿(对于Bit类型clk信号):„clk′EventANDclk=′0′;--一种可能途径„NOTclk′StableANDclk=′0′;--另一种可能途径2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿触发器¾数字电路中,能够存储一位信号的基本单元电路就被称为触发器。¾根据电路结构形式和控制方式分类:D触发器、JK触发器、T触发器、锁存器和RS触发器2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿D触发器¾数字电路中最常见的一种基本时序逻辑电路。¾分类:1、基本的D触发器2、同步复位的D触发器3、异步复位的D触发器4、同步置位/复位的D触发器5、异步置位/复位的D触发器2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿同步和异步复位的概念:同步复位:当复位信号有效,并且在给定的时钟边沿来到时,触发器才被复位。异步复位:一旦复位信号有效,触发器就被复位。异步复位的描述特点:„在进程敏感信号列表中除时钟信号外还应加上复位信号。„用IF语句描述复位条件;„在ELSIF段描述时钟信号边沿的条件,并加上EVENT属性。2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿基本D触发器¾电路符号和功能表2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿基本D触发器VHDL程序:ARCHITECTURErtl_arcOFbasic_dffISBEGINPROCESS(clk)BEGINIF(clk’eventANDclk=‘1’)THENq=d;qb=NOTd;ENDIFENDPROCESS;ENDrtl_arc;2011年12月15日北京邮电大学自动化学院电子线路设计与仿真讲稿同步复位的D触发器¾电路符号和功能表2011年12月1

1 / 100
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功