《时序逻辑电路设计.pptx》由会员分享,可在线阅读,更多相关《时序逻辑电路设计.pptx(393页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、6.1 基本D触发器的设计 时序逻辑电路的输出不但和当前输入有关,还与系统的原先状态有关,即时序电路的当前输出由输入变量与电路原先的状态共同决定。为达到这一目的,时序逻辑电路从某一状态进入下一状态时,必须首先设法“记住”原先的状态。作为时序逻辑电路的基本特征,时序逻辑电路应具有“记忆”功能。触发器是时序电路最常用的记忆元件。本章将首先介绍常用触发器的设计方法,然后介绍常用的时序电路:计数器、寄存器、移位寄存器、状态机等。第1页/共393页 任何时序逻辑电路都是以时钟信号为驱动信号的,时序电路通常在时钟信号的边沿到来时才发生状态变化。因此,设计时序逻辑电路时,必须要重视时钟信号。VHDL程序描述
2、时钟有两种基本形式,即将时钟放入进程的敏感信号表和用WAIT语句描述时钟。第2页/共393页 (1)将时钟放入进程的敏感信号描述。只要将时钟信号放入进程的敏感信号表,时钟信号就成为了进程的敏感信号。当时钟有边沿变化时,无论上升沿或下降沿,都会启动进程执行一遍。不同的时序电路对时钟边沿的要求可能不同,有的是上升沿启动,有的是下降沿启动。例如,VHDL程序通常用语句 clk=1 AND clk event第3页/共393页 来描述这种边沿变化,其中event表示信号发生变化;clk=1表示变化后clk的电平为“1”,此语句描述的是上升沿。若要描述下降沿,只要将clk=1改为clk=0就可以了。如
3、PROCESS(clk)BEGIN IF clk=0 AND clk event THEN END IF;END PROCESS;第4页/共393页 此 外,程 序 包 STD_LOGIC_1164内 定 义 了 边 沿 检 测 函 数rising_edge(上升沿检测函数)和fall_edge(下降沿检测函数),只要打开STD_LOGIC_1164库,这些函数就可直接调用。如 IF rising_edge(clk)THEN.END IF;第5页/共393页 当所定义的数据类型为BIT时,用“clk=1 AND clk event”肯定没有问题,因为BIT型数据的取值必然是“0”与“1”中取其
4、一。而当所定义的数据类型为STD_LOGIC时,用边沿检测函数则更加合适,因为STD_LOGIC是一个9值类型,“clk=1 AND clk event”并不能把该类型数据的所有边沿变化全部表达出来。第6页/共393页 (2)用WAIT语句描述clk的变化,如 WAIT UNTIL clk=1 一个进程内部一旦有了WAIT语句,就不要使用敏感信号表,反之亦然。WAIT语句或者置于进程的开始,或者置于进程的最后。第7页/共393页 触发器为具有记忆功能的装置,可储存两种不同的状态:“0”或“1”;借助输入状态的改变,可改变储存的状态。但由于系统需要同步变化,故通常在计时脉冲的上升沿变迁(Posi
5、tive Transition)时刻才容许储存数据改变,其他时刻触发器是被“锁住”的。触发器常被用在计数器、寄存器等器件中。D触发器是最常用的触发器,其他的时序电路(包括其他触发器)都可以由D触发器外加一部分组合逻辑电路转换而来。第8页/共393页(1)基本D触发器。基本触发器的特征方程为 Q n+1=D基本D触发器应具备的脚位:数据输入端:D;时钟输入端:clk;输出端:Q。第9页/共393页 (2)带异步复位/置位端的同步使能D触发器。所谓异步复位,是指只要复位端有效,不需等时钟的上升沿到来就立刻使JK触发器清零。而异步置位是指只要复位端有效,不需等时钟的上升沿到来就立刻使JK触发置位。若
6、异步复位端与异步置位端同时有效,则输出为不定状态。由于实际硬件情况的复杂性,系统刚开始工作时并不能确保处于所需要的初始状态。这一问题在使用了异步复位信号或异步置位信号后得到了解决。当异步复位信号有效时,输出端立刻为“0”;或当异步置位信号有效时,输出端立刻为“1”。第10页/共393页带异步复位/置位端的同步使能D触发器具备的脚位:数据输入端:D;时钟输入端:clk;复位信号端:clrn;置位信号端:prn;使能输入端:ena;输出端:Q。第11页/共393页 表6-1是带异步复位/置位功能D触发器真值表,从表中可以看出,当预置位端prn(或复位端clrn)有效时(低电平),无论时钟和D端的电
7、平情况怎样,输出都为高电平(或低电平)。而当二者同为低电平,即预置位端与复位端同时有效时,输出不定,用“X”表示。当预置位端prn与复位端clrn均无效时,随着上升沿的到来,输出逻辑与输入端D逻辑值相同。第12页/共393页表6-1 异步复位/置位端同步使能D触发器真值表 输 入输 出prnclrnenaclkDQ010111100111XXX011XXX(上升沿)XXXX1010XQn10第13页/共393页 1原理图设计 (1)建立新文件:选取窗口菜单FileNew,出现对话框,选择Graphic Editor file选项,单击OK按钮,进入图形编辑画面。(2)保存:选取窗口菜单File
8、Save,出现对话框,键入文件名dff_g.gdf,单击OK按钮。(3)指 定 项 目 名 称,要 求 与 文 件 名 相 同:选 取 窗 口 菜 单FileProjectName,键入文件名dff_g,单击OK按钮。第14页/共393页 (4)确定对象的输入位置:在图形窗口内单击鼠标左键。(5)引入元件DFFE:选取窗口菜单SymbolEnter Symbol,在Maxplus2max2libprim处双击,在Symbol File菜单中选取DFFE或直接键入DFFE,单击OK按钮。(双击空白区域也可进入Enter Symbol对话框。)第15页/共393页 (6)引入输入和输出脚:按步骤(
9、5)选出输入脚INPUT和输出脚OUTPUT。(7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名,输入脚为D、clk、ena、prn、clrn,输出脚为Q。(8)连接:将各引脚做相应连接,如图6-1所示。第16页/共393页图6-1 D触发器的引脚连接 第17页/共393页 (9)选择实际编程器件型号:选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(10)保存并查错:选取窗口菜单FileProjectSave&Check,即可针对电路文件进行检查。(11)修改错误:针对Massage-Compiler窗口所提供的信
10、息修改电路文件,直到没有错误为止。(12)保存并编译:选取窗口菜单FileProjectSave&Compile,即可进行编译,产生dff_g.sof烧写文件。第18页/共393页 (9)选择实际编程器件型号:选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(10)保存并查错:选取窗口菜单FileProjectSave&Check,即可针对电路文件进行检查。(11)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(12)保存并编译:选取窗口菜单FileProjectSave&Compile,即可进
11、行编译,产生dff_g.sof烧写文件。第19页/共393页图6-2 D触发器的电路符号第20页/共393页 (13)创建电路符号:选取窗口菜单FileCreate Default Symbol,可以产生dff_g.sym文件,代表现在所设计的电路符号。选取FileEdit Symbol,可进入Symbol Edit编辑器,D触发器的电路符号如图6-2所示。(14)创建电路包含文件:选取窗口菜单FileCreate Default Include File,产生用来代表现在所设计电路的dff_g.inc文件,供其他VHDL编译时使用。(15)时间分析:选取窗口菜单UtilitiesAnalyz
12、e Timing,再选取窗口菜单AnalysisDelay Matrix,可以产生时间分析结果。第21页/共393页 2VHDL设计 (1)建立新文件:选取窗口菜单FileNew,出现对话框,选Text Editor file 选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单FileSave,出现对话框,键入文件名dff2.vhd(程序二的文件名为dffe_v),单击OK按钮。第22页/共393页 (3)指定项目名称,要求与文件名相同:选取窗口菜单FileProjectName,键入文件名dff2(程序二则键入dffe_v),单击OK按钮。这一步也可直接按常用工具栏的按钮。(4)
13、选择实际编程器件型号:选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。第23页/共393页(5)输入VHDL源程序:基本D触发器的参考程序为LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dffe2 IS PORT(d,clk:IN STD_LOGIC;q :OUTSTD_LOGIC);END dffe2;ARCHITECTURE a OF dffe2 IS第24页/共393页BEGIN PROCESS(clk,d)BEGIN IF clkevent AND clk=1 THEN q=d;END
14、 IF;END PROCESS;END a;第25页/共393页 可用如下两种描述风格来描述一个异步复位/置位端同步使能D触发器。程序一LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dffe2 ISPORT(d,clk,clrn,prn,ena:IN STD_LOGIC;q :OUTSTD_LOGIC);END dffe2;ARCHITECTURE a OF dffe2 ISBEGIN第26页/共393页 PROCESS(clk,prn,clrn,ena,d)BEGIN IF prn=0 THEN q=1;ELSIF clrn=0 THEN q
15、=0;ELSIF clkevent AND clk=1 THEN IF ena=1 then qd,CLK=clk,CLRN=clrn,PRN=prn,ENA=ena,Q=q);END a;第29页/共393页 (6)保存并查错:选取窗口菜单FileProjectSave&Check,即可检查并保存电路文件。这一步也可直接按常用工具栏的按钮。(7)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(8)保存并编译:选取窗口菜单FileProjectSave&Compile,即可进行编译,产生dff2.sof(或dffe_v.sof)烧写文件。第30页
16、/共393页 (9)进行软件仿真,观察仿真波形是否符合逻辑设计要求。(10)创建电路符号:选取窗口菜单FileCreate Default Symbol,可以产生dff2.sym(或dffe_v.sym)文件,代表现在所设计的电路符号。选取FileEdit Symbol,可进入Symbol Edit画面。第31页/共393页 (11)创建电路包含文件:选取窗口菜单FileCreate Default Include File,产生用于代表现在所设计电路的dff2.inc(或dffe_v.inc文件),供其他VHDL程序编译时使用。(12)时间分析:选取窗口菜单UtilitiesAnalyze
17、Timing,再选取窗口菜单AnalysisDelay Matrix,产生时间分析结果。第32页/共393页 3软件仿真 (1)进入波形编辑窗口:选取窗口菜单MAX+plusWaveform Editor,进入波形编辑窗口。(2)引入输入和输出脚:选取窗口菜单NodeEnter Nodes from SNF,出现对话框,单击list按钮,选择Available Nodes中的输入与输出,按“=”键将D、clk、Q(对异步复位/置位端、同步使能D触发器还需将prn、clrn、ena等)移至右边,单击OK按钮进入仿真波形编辑器。第33页/共393页 (3)设定时钟的周期:选取窗口菜单Options
18、Gride Size,出现对话框,设定Gride Size以决定时钟信号的周期。如输入值为50 ns,则时钟周期为100 ns。单击OK按钮。(4)设定初始值并保存:设定初始值,选取窗口菜单FileSave,出现对话框,单击OK按钮。(5)仿真:选取窗口菜单MAX+plusSimulator,出现Timing Simulation对话框,单击Start按钮,出现Simulator对话框,单击“确定”按钮。这一步也可直接按常用工具栏的 按钮。第34页/共393页 (6)观察输入结果的正确性:单击 按钮,可以在时序图中写字,并验证仿真结果的正确性,如图6-3所示。(7)波形分析:观察仿真结果,在使
19、能端ena=“1”且prn、clrn均为高电平(无效)期间,随着每个时钟上升沿的到来,输出端Q的输出与输入端D的逻辑相同,符合Qn+1=Dn的D触发器特征方程。而当清零端有效clrn有效时,尽管输入是高电平,输出仍被无条件地复位为“0”。图中未列出预置位信号prn置零(有效)时的输出情况,读者可尝试将预置位信号prn置零(有效),观察输出的逻辑情况。第35页/共393页图6-3 异步复位/置位端、同步使能D触发器仿真结果第36页/共393页 4硬件验证 1)下载实验验证 (1)选择器件:打开MAX+plus,选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30T
20、C144-1。(2)锁定引脚:选取窗口菜单AssignPin/Location/Chip,出现对话框,在Node Name中分别键入引脚名称D、clk、Q,clrn、prn、ena,在Pin中分别键入引脚编号68、55、135、67、65、64。其中,引脚68对应输入按键KEY1,其对应的信号灯为LED _KEY1;第37页/共393页 引脚55对应时钟信号,时钟信号可在实验箱现场调整,频率从1 Hz25.6 MHz可选;135引脚连接着输出LED12;67、65、64脚分别对应输入按键KEY2、KEY3、KEY4。(3)编译:选取窗口菜单FileProjectSave&Compile,即可对
21、输入的原理图或VHDL程序进行编译。(4)烧写:选取窗口菜单Programmer,在弹出的对话框内选择Configure进行烧写。烧入烧写文件后,EDA实验箱即开始工作。第38页/共393页 2)观察实验结果 JLE-2型EDA实验箱提供了12个按键作为一部分输入信号,这些键按下时表示向有关引脚输入了“1”信号,此时按键上方的信号灯亮;反之则表示输入的是“0”信号,信号灯灭。该实验箱还提供了12个LED作为一部分输出信号,这些LED信号灯亮时表示输出为“1”,LED信号灯灭时表示输出为“0”。按表6-2所示,按下输入键KEY1KEY4,观察输出LED的结果。第39页/共393页表6-2 D触发
22、器的实验验证结果 输 入输 出输入KEY3prn输入KEY2clrn输入KEY4ena输入KEY1DLED12Q0111110111XX011XXX10亮灭不变亮灭第40页/共393页 3)实验结果解释 如表6-2所示,用“1”代表按键按入,则对应的LED灯亮,“0”代表按键恢复,则对应的LED灯灭。由表可见,输出的逻辑结果与D触发器的逻辑功能一致,因此设计正确。第41页/共393页6.2 JK 触 发 器 (1)基本JK触发器。JK触发器有J和K两个输入端(或称激励端),当时钟出现有效边沿(上升沿或者下降沿)时,JK触发器的输出将如表6-3所示,其他情况(时钟没有出现有效边沿)下,输出保持不
23、变。JK触发器的特征方程为 Qn+1=JQn+KQn 第42页/共393页基本JK触发器应具备的脚位:数据输入端:J,K;时钟输入端:clk;输出端:Q,Qb。第43页/共393页表6-3 基本JK触发器真值表QnJ KQn+10 00 11 01 1Qn01第44页/共393页 (2)带异步复位/置位功能的JK触发器。所谓异步复位,是指只要复位端有效,不需等时钟的上升沿到来就立刻使JK触发器清零;而异步置位,是指只要复位端有效,不需等时钟的上升沿到来就立刻使JK触发器置位。若异步复位端与异步置位端同时有效,则输出为不定状态。表6-4是带异步复位/置位功能的JK触发器的真值表,从表中可以看出,
24、异步复位/置位端都是低电平有效。第45页/共393页 脚位说明:数据输入端为J,K;脉冲输入端为clk;清除输入(复位)端为clr;默认控制(预置位)端为prn;使能输入端为ena;输出端为Q。第46页/共393页表6-4 带异步复位/置位功能的JK触发器真值表输 入输 出enaprnclrclkJKQQb111111101011111001111XXX(上升沿)XXX0011XXX010110X不变01翻转01X不变10翻转第47页/共393页 表6-4是带异步复位/置位功能的JK触发器真值表,从表中可以看出,当预置位端prn或复位端clr二者其一有效时(低电平),无论时钟和J、K端的电平情
25、况如何,输出都为高电平(或低电平)。而当二者同为低电平,即预置位端与复位端同时有效时,输出不定,用“X”表示。当预置位端prn(或复位端clr)均无效时,输出端Q的值与输入端J、K的值有关。若J、K同为低电平,则输出保持不变;若J、K同为高电平,则随着上升沿的到来,输出将作翻转;当J、K电平不同时,输出端Q保持为与输入端J的逻辑值相同。第48页/共393页 1原理图设计 (1)建立新文件:选取窗口菜单FileNew,出现对话框,选Graphic Editor file选项,单击OK按钮,进入图形编辑画面。(2)保存:选取窗口菜单FileSave,出现对话框,键入文件名jkdff.gdf,单击O
26、K按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单FileProjectName,键入文件名jkdff_g,单击OK按钮。(4)确定对象的输入位置:在图形窗口内单击鼠标左键。第49页/共393页 (5)引入元件JKFFE:选取窗口菜单SymbolEnter Symbol,在Maxplus2max2libprim处双击,在Symbol File菜单中选取JKFFE或直接键入JKFFE,单击OK按钮。(或者双击空白区域也可进入Enter Symbol对话框。)(6)引入输入和输出脚:按步骤(5)选出输入脚INPUT和输出脚OUTPUT。(7)更改输入和输出脚的脚位名称:在PIN_NAME处
27、双击鼠标左键,进行更名,输入脚为J、K、clk、ena、prn、clr,输出脚为Q。第50页/共393页 (8)连接:将各引脚做相应连接,带异步复位/置位功能的JK触发器的原理图如图6-4所示。(9)选择实际编程器件型号:选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。(10)保存并查错:选取窗口菜单FileProjectSave&Check,即可针对电路文件进行检查。(11)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。第51页/共393页 (12)保存并编译:选取窗口菜单FileProjec
28、tSave&Compile,即可进行编译,产生jkdff.sof烧写文件。(13)创建电路符号:选取窗口菜单FileCreate Default Symbol,可以产生JKFFE.sym文件,代表现在所设计的电路符号。选取FileEdit Symbol,可进入Symbol Edit编辑器。第52页/共393页图6-4 带异步复位/置位功能的JK触发器的原理图第53页/共393页 (14)创建电路包含文件:选取窗口菜单FileCreate Default Include File,产生用来代表现在所设计电路的jkdff.inc文件,供其他VHDL编译时使用。(15)时间分析:选取窗口菜单Util
29、itiesAnalyze Timing,再选取窗口菜单AnalysisDelay Matrix,可以产生相应的时间分析结果。第54页/共393页 2VHDL设计 (1)建立新文件:选取窗口菜单FileNew,出现对话框,选Text Editor file 选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单FileSave,出现对话框,键入文件名jkdff.vhd(不同的实体有不同的文件名),单击OK按钮。第55页/共393页 (3)指定项目名称,要求与文件名相同:选取窗口菜单FileProjectName,键入文件名jkdff(程序二键入jkdff2),单击OK按钮。这一步也可直接
30、按常用工具栏的按钮。(4)选择实际编程器件型号:选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。第56页/共393页(5)输入VHDL源程序:程序一 (基本JK触发器的参考程序)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jkdff IS PORT(j,k :IN STD_LOGIC;Clk:IN STD_LOGIC;q,qb :OUT STD_LOGIC);END jkdff;ARCHITECTURE a OF jkdff IS第57页/共393页SIGNAL qtmp,qbtmp:STD
31、_LOGIC;BEGINPROCESS(clk,j,k)BEGINIF clk=1 AND clkevent THENIF j=0 AND k=0 THEN NULL;ELSIF j=0 AND k=1 THEN qtmp=0;qbtmp=1;第58页/共393页ELSIF j=1 AND k=0 THEN qtmp=1;qbtmp=0;ELSE qtmp=NOT qtmp;qbtmp=NOT qbtmp;END IF;第59页/共393页 END IF;q=qtmp;qb=qbtmp;END PROCESS;END a;第60页/共393页程序二 (异步复位/置位功能的JK触发器)LIBRA
32、RY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY jkdff2 IS PORT(J,K:IN STD_LOGIC;clk:IN STD_LOGIC;prn,clr:IN STD_LOGIC;q,qb:OUT STD_LOGIC);END jkdff2;第61页/共393页ARCHITECTURE a OF jkdff2 ISSIGNAL qtmp,qbtmp:STD_LOGIC;BEGINPROCESS(clk,prn,clr,j,k)BEGINIF prn=0 THEN qtmp=1;qbtmp=0;第62页/共393页 ELSIF clr=0 THEN
33、qtmp=0;qbtmp=1;ELSIF clk=1 AND clkevent THENIF j=0 AND k=0 THEN NULL;ELSIF j=0 AND k=1 THEN qtmp=0;qbtmp=1;ELSIF j=1 AND k=0 THEN 第63页/共393页 qtmp=1;qbtmp=0;ELSE qtmp=NOT qtmp;qbtmp=NOT qbtmp;END IF;END IF;q=qtmp;qb”键将所有输入和输出脚移至右边(对异步复位/置位触发器、同步使能D触发器,还需将prn、clr、ena等也移至右边),单击OK按钮进入仿真波形编辑器。第70页/共393页
34、(3)设定时钟的周期:选取窗口菜单OptionsGride Size,出现对话框,设定Gride Size为50 ns,则时钟周期为100 ns,单击OK按钮。(4)设定初始值并保存:设定初始值,选取窗口菜单FileSave,出现对话框,单击OK按钮。(5)仿真:选取窗口菜单MAX+plusSimulator,出现Timing Simulation对话框,单击Start按钮,出现Simulator对话框,单击“确定”按钮。这一步也可直接按常用工具栏的 按钮。第71页/共393页 (6)观察输入结果的正确性:单击 按钮,可以在时序图中加入注释,以验证仿真结果的正确性,如图6-7所示。第72页/共
35、393页 图6-7 带异步复位/置位功能的JK触发器的仿真结果第73页/共393页 (7)波形分析:观察仿真结果,在prn、clr均为高电平(无效)期间,随着每个时钟上升沿的到来,输出端Q的输出与输入端J的逻辑相同,符合Qn+1=JQn+KQn的JK触发器特征方程。而当清零端有效时,不等时钟的有效边沿到来,输出立刻被无条件地复位为“0”。同样,当预置位端prn有效时,不等时钟的有效边沿到来,输出立刻被无条件地置位。图中未列出预置位信号与复位信号同时有效时的输出情况,读者可尝试进行仿真并观察输出的逻辑情况。通过以上分析,认为以上的原理图设计和VHDL设计均能实现预期的JK触发器的有关逻辑功能。第
36、74页/共393页 4硬件验证 1)下载实验验证 以VHDL程序jkdff2.vhd为例。(1)选择器件:打开MAX+plus,选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。第75页/共393页 (2)锁定引脚:选取窗口菜单AssignPin/Location/Chip,出现对话框,在Node Name中分别键入引脚名称J、K、clk、Q、clr、prn,在Pin中分别键入引脚编号68、67、55、135、65、64。其中,引脚68、67对应输入按键KEY1、KEY2,其对应的信号灯为LED_KEY1与LED_KEY2;引脚55对应时钟信号
37、,时钟信号可在实验箱现场调整,频率可选;135引脚连接着输出LED12;65、64脚分别对应输入按键KEY3、KEY4。第76页/共393页 (3)编译:选取窗口菜单FileProjectSave&Compile,即可对输入的原理图或VHDL程序进行编译。(4)烧写:选取窗口菜单Programmer,在弹出的对话框内选择Configure进行烧写。烧入烧写文件后,EDA实验箱即开始工作。第77页/共393页 2)观察实验结果 按表6-5所示,按下输入键KEY1KEY5,观察输出LED的结果。第78页/共393页表6-5 异步复位/置位功能的JK触发器的实验验证结果输 入输 出输入KEY4prn
38、输入KEY3clr输入KEY1、KEY2J、KLED12QLED11Qb01111111011111XXX1、10、00、11、0亮灭不变闪烁不变灭亮灭亮不变闪烁不变亮灭第79页/共393页 3)实验结果解释 如表6-5所示,用“1”代表按键按入,则对应的LED灯亮,“0”代表按键恢复,则对应的LED灯灭。由表6-5可见,输出的逻辑结果与JK触发器的逻辑功能一致,所以设计正确。第80页/共393页6.3 带异步复位/置位端的使能T触发器 JK触发器的两个输入端均为高电平时,输出将随时钟的有效边沿作翻转;当JK触发器的两个输入端均为低电平时,输出维持不变。这一功能可用T触发器代替,T触发器的数据
39、输入端T相当于将JK触发器的两个输入引脚连接在一起。一个带异步复位/置位端的同步使能T触发器的脚位有:第81页/共393页数据输入端:T;脉冲输入端:clk;清除输入端:clrn;默认控制端:prn;使能输入端:ena;输出端:Q。第82页/共393页 表6-6给出了异步复位/置位的同步使能T触发的输入/输出逻辑关系。从表中可以看出,当预置位端prn或复位端clrn二者其一有效时(低电平),无论时钟和T端的电平情况如何,输出都为高电平(或低电平)。当二者同为低电平,即预置位端与复位端同时有效时,输出不定,用“X”表示。当预置位端prn(或复位端clrn)均无效时,随着上升沿的到来,若T输入端为
40、“0”,则输出维持不变,反之作取反操作。其特征方程为 Qn+1=TQn+TQn第83页/共393页表6-6异步复位/置位的同步使能T触发器逻辑关系 Qn输 入输 出prnclrnclkTQn+101011 10011 XXX(上升沿)XXX0110XQn第84页/共393页 1原理图输入法 (1)建立新文件:选取窗口菜单FileNew,出现对话框,选择Graphic Editor file选项,单击OK按钮,进入图形编辑画面。(2)保存:选取窗口菜单FileSave,出现对话框,键入文件名tffe_g.gdf,单击OK按钮。(3)指定项目名称,要求与文件名相同:选取窗口菜单FileProjec
41、tName,键入文件名tffe_g,单击OK按钮。第85页/共393页 (4)确定对象的输入位置:在图形窗口内单击鼠标左键。(5)引入元件TFFE:选取窗口菜单SymbolEnter Symbol,在Maxplus2max2libprim处双击,在Symbol File菜单中选取DFFE或直接键入TFFE,单击OK按钮。(或者双击空白区域也可进入Enter Symbol对话框。)(6)引入输入和输出脚:按步骤(5)选出输入脚INPUT和输出脚OUTPUT。第86页/共393页 (7)更改输入和输出脚的脚位名称:在PIN_NAME处双击鼠标左键,进行更名,输入脚为T、clk、ena、prn、cl
42、rn,输出脚为Q。(8)连接:将各引脚做相应连接,如图6-8所示。(9)选择实际编程器件型号:选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。第87页/共393页图6-8 T触发器的引脚连接第88页/共393页 (10)保存并查错:选取窗口菜单FileProjectSave&Check,即可针对电路文件进行检查。(11)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(12)保存并编译:选取窗口菜单FileProjectSave&Compile,即可进行编译,产生tffe_g.sof烧写文件。第8
43、9页/共393页 (14)创建电路包含文件:选取窗口菜单FileCreate Default Include File,产生用来代表现在所设计电路的dff_g.inc文件,供其他VHDL编译时使用。(15)时间分析:选取窗口菜单UtilitiesAnalyze Timing,再选取窗口菜单AnalysisDelay Matrix。第90页/共393页 2VHDL设计 (1)建立新文件:选取窗口菜单FileNew,出现对话框,选Text Editor file 选项,单击OK按钮,进入文本编辑画面。(2)保存:选取窗口菜单FileSave,出现对话框,键入文件名tffe_v.vhd,单击OK按钮
44、。(3)指定项目名称,要求与文件名相同:选取窗口菜单FileProjectName,键入文件名tffe_v,单击OK按钮。第91页/共393页 (4)选择实际编程器件型号:选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。第92页/共393页(5)输入VHDL源程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;LIBRARY ALTERA;USE ALTERA.MAXPLUS2.ALL;ENTITY tffe_v ISPORT(t,clk,clrn,prn,ena:IN STD_LOGIC;q :OUT S
45、TD_LOGIC);END tffe_v;第93页/共393页ARCHITECTURE a OF tffe_v ISBEGINrod1:TFFE PORT MAP(t,clk,clrn,prn,ena,q);END a;第94页/共393页 (6)保存并查错:选取窗口菜单FileProjectSave&Check,即可针对电路文件保存并进行检查。(7)修改错误:针对Massage-Compiler窗口所提供的信息修改电路文件,直到没有错误为止。(8)保存并编译:选取窗口菜单FileProjectSave&Compile,即可进行编译,产生tffe_v.sof烧写文件。第95页/共393页 (9
46、)仿真:进行软件仿真,观察仿真波形是否符合逻辑设计要求。(10)创建电路符号:选取窗口菜单FileCreate Default Symbol,可以产生tffe_v.sym文件,代表现在所设计的电路符号。选取FileEdit Symbol,进入Symbol Edit进行编辑,带有异步复位/置位端的T触发器的电路符号如图6-9所示。此步也可按工具栏 按钮,进入如图6-10所示界面,双击其中的.sym图标,也可进入Edit Symbol进行符号编辑。第96页/共393页 (11)创建电路包含文件:选取窗口菜单FileCreate Default Include File,可以产生代表现在设计的电路函
47、数类型tffe_v.inc文件,供其他VHDL编译时使用。(12)时间分析:选取窗口菜单UtilitiesAnalyze Timing,再选取窗口菜单AnalysisDelay Matrix,产生时间分析结果。第97页/共393页图6-9 带有异步复位/置位端的T触发器的电路符号 第98页/共393页 图6-10 体系显示窗口第99页/共393页 3软件仿真 (1)进入波形编辑窗口:选取窗口菜单MAX+plusWaveform Editor,进入仿真波形编辑器。(2)引入输入和输出脚:选取窗口菜单NodeEnter Nodes from SNF,出现对话框,单击list按钮,选择Availab
48、le Nodes中的输入与输出,按“=”键将T、clk、Q移至右边(对异步复位/置位端同步使能T触发器还需将prn、clrn、ena等也移至右边),单击OK按钮进行波形编辑。第100页/共393页 (3)设定时钟的周期:选取窗口菜单OptionsGride Size,出现对话框,设定Gride Size为35 ns,单击OK按钮。(4)设定初始值并保存:设定初始值,选取窗口菜单FileSave,出现对话框,单击OK按钮。(5)仿真:选取窗口菜单MAX+plusSimulator,出现Timing Simulation对话框,按Start按钮,出现Simulator对话框,单击“确定”按钮。(6
49、)观察输入结果的关系正确性:单击 按钮,可以在时序图中写字,并验证仿真结果的正确性,如图6-11所示。第101页/共393页图6-11 带异步复位/置位功能的T触发器的仿真结果第102页/共393页 (7)波形分析:观察仿真结果,在使能端ena=“1”且prn、clrn均为高电平(无效)期间,若T=“1”,则随着每个时钟上升沿的到来,Q端的输出在不断地翻转;而T=“0”时则输出维持不变,这符合T触发器的特征方程。当清零端clrn有效时,不等时钟的有效边沿到来,输出立刻被无条件地复位为“0”。同样,当预置位端prn有效时,不等时钟的有效边沿到来,输出立刻被无条件地置位。图中未列出预置位信号prn
50、与复位信号同时有效时的输出情况,读者可尝试进行仿真并观察输出的逻辑情况。第103页/共393页 4硬件验证 1)下载实验验证 (1)选择器件:打开MAX+plus,选取窗口菜单AssignDevice,出现对话框,选择ACEX1K系列的EP1K30TC144-1。第104页/共393页 (2)锁定引脚:选取窗口菜单AssignPin/Location/Chip,出现对话框,在Node Name中分别键入引脚名称T、clk、Q,clrn、prn、ena,在Pin中分别键入引脚编号68、55、135、67、65、64。其中,引脚68对应输入按键KEY1,其对应的信号灯为LED_KEY1;引脚55对