1、数字电子技术课程设计串行数据检测器的电路设计12024/6/17 周一一一.设计内容与设计要求设计内容与设计要求1、设计内容设计一个串行数据检测器。要求:连续输入3个或3个以上的1时输出为1,其他输入情况下输出为0。2、设计要求:a.设计思路清晰,给出整体设计框图;b 程序编写简洁,要求给出关键的注释;c 写出设计报告;3、主要设计条件a.QuartusII-6.0开发环境;b.FPGA开发板。22024/6/17 周一 1.基本原理:基本原理:a.JK触发器的基本原理触发器的基本原理:二二.设计总体思路、基本原理和框图设计总体思路、基本原理和框图32024/6/17 周一a.JK触发器的基本
2、原理JKQ*说 明00保持010复位101置位11计数主从主从JK触发器的逻辑功能表触发器的逻辑功能表 42024/6/17 周一2、设计方法、设计方法a、逻辑抽象,得出电路的状态转换图或状态转换表1.分析给定的逻辑问题,确定输入变量、输出变量以及电路的状态数。通常取原因(或条件)作为输入逻辑变量,取结果作输出逻辑变量;2.定义输入、输出逻辑状态和每个电路状态的含义,并将电路状态顺序编号;3.按照题意列出电路的状态转换表或画出电路的状态转换图。b、状态化简 若两个电路状态在相同的输入下有相同的输出,并且转换到同样的一个状态去,则称这两个状态为等价状态。等价状态可以合并,这样设计的电路状态数少,
3、电路越简。c、状态分配状态分配也叫状态编码1.确定触发器的数目n;2.确定电路的状态数M,应满足2n1M2n;3.进行状态编码,即将电路的状态和触发器状态组合对应起来。52024/6/17 周一d、选定触发器的类型,求出电路的状态方程、驱动方程和输出方程1.选定触发器的类型;2.由状态转换图(或状态转换表)和选定的状态编码、触发器的类型,写出电路的状态方程、驱动方程和输出方程。e、根据得到的方程式画出逻辑图f、检查设计的电路能否自启动若电路不能自启动,则应采取下面措施:1.通过预置数将电路状态置成有效循环状态中;2.通过修改逻辑设计加以解决3.时序电路设计步骤:62024/6/17 周一4、总
4、体设计思路a、首先进行逻辑抽像:取输入数据为输入变量,用X表示;取检测结果为输出变量,用Y表示。设电路在没有输入1以前的状态为S0,输入一个1以后的状态为S1,连续输入二个1以后的状态为S2,连续输入3个或三个以上1以后的状态为S3。若以S表示电路的现态,以S*表示电路的次态依据设计要求便可得到表a-1状态转化表和a-2状态转化图。72024/6/17 周一b.进行状态化简:比较一下S2和S3这两个状态便可发现,他们在同样的输入状态下有同样的输出,而且转换后得到同样的状态。因此S2和S3是等价状态,可以合并为一个。从物理概念上也不难理解,当电路处于S2状态时表明已经输入了二个1。如果在电路转换
5、到S2状态的同时输入也改换为下一位输入数据(当输入数据来自移位寄存器的串行输出,而且移位寄存器和数据检测器由同一时钟信号操作时,就工作在这种情况),那么只要下个输入为1,就表明连续输入3个1了,因而无需再设置一个电路状态,于是就得到了图a-3所示化简后的状态转换图。82024/6/17 周一c.状态分配:在电路状态M=3的情况下,根据式:2n1M2n可知,应取触发器的位数n=2。d.选定触发器的类型,求出电路的状态方程、驱动方程和输出方程:如果取触发器状态Q1Q0的00、01和10分别代表S0、S1和S2,并选定JK触发器组成这个检测电路,则可从状态转换图画出电路次态和和输出的卡诺图:9202
6、4/6/17 周一将图a-4所示的卡诺图分解为分别表示Q1*,Q0*和Y的三个卡诺图:102024/6/17 周一经过化简后得到电路的状态方程:由JK触发器的驱动方程可得上式的驱动方程:输出方程:JK触发器的特性方程:Q*=JQ+KQ112024/6/17 周一e.根据得到的方程式设计出电路逻辑图f.检查设计的电路能否自启动:将状态“11”代入状态方程和输出方程,分别求X=0/1下的次态和现态下的输出,得到:由状态转换图a-6可知,此电路可以自启动。由于电路有输入信号,故为米利型时序逻辑电路。122024/6/17 周一三三.单元电路设计(各单元电路图)单元电路设计(各单元电路图)本设计中中用
7、到的单元电路为JK触发器,其电路逻辑图如下图所示:电路结构:逻辑符号:132024/6/17 周一四.总电路设计(总电路图)根据得到的方程式设计总电路图如下图:输出方程:由JK触发器的驱动方程可得上式的驱动方程:经过化简后得到电路的状态方程:142024/6/17 周一五、电路的调试a、QuartusII文本输入调试程序代码:152024/6/17 周一16波形图:2024/6/17 周一 在原总电路图(左)中增加一个D触发器(特性方程:Q*=D)使电 路状态信息的输出与输入数据的改换同步。改进后的电路如图(右)六、电路改进172024/6/17 周一module cxsj(x,clk,r,cout,y);/*x数据输入变量,clk时钟信号,r重置检测器,cout加法计数,y检测结果输出变量*/input x,r,clk;output y;output 4:0cout;reg y;reg 4:0cout;always(negedge clk)beginif(r|!x)/重置检测器begincout=0;y=0;endelse if(x)/计数begincout=cout+1;if(cout!=5b00000&cout!=5b00001&cout!=5b00010)/数据检测beginy=1;endendendendmodule182024/6/17 周一