龙空技术网

Hello FPGA! 时序逻辑电路的设计与分析

吾心之秋 150

前言:

如今姐妹们对“基于fpga的计数器及时序电路”大概比较关怀,朋友们都需要剖析一些“基于fpga的计数器及时序电路”的相关知识。那么小编同时在网摘上搜集了一些对于“基于fpga的计数器及时序电路””的相关文章,希望我们能喜欢,我们快快来学习一下吧!

1、同步时序电路和异步时序电路

存储电路中根据存储单元改变的特点,可以将时序分为同步时序电路和异步时序电路两大类。在同步时序电路中,所有存储单元的状态改变是在统一的时钟脉冲控制下同时发生的;在异步时序电路中,各存储单元的状态改变不是同时发生的,时钟脉冲只控制存储电路中的部分存储单元,其他则靠输入信号或时序电路内部信号来控制,甚至还有些异步时序电路没有时钟脉冲,只靠输入信号经过内部电路传递去控制存储单元。

在FPGA设计中,大都是采用同步设计方法。异步设计:毛刺无法避免,时序设计过于费时费力,其所需调整的时序路径和需要附加的相关约束相当繁琐,而且现在的EDA工具都是基于时序驱动的优化策略,异步时序电路增加了时序分析的难度,需要确定最佳时序路径所需的计算量超出想象。而同步设计:不仅能有效地避免毛刺的影响,使得设计更可靠;还能够使设计出的同步时序电路更易于分析与实现。不仅仅如此,目前几乎所有的仿真工具都仅能支持同步仿真。

2、时序逻辑电路的分析方法

1)根据已知的电路图写出对应的函数式;

2)根据得到的函数式写出对应的特性表;

3)根据得到的特性表画出对应的状态图;

4)根据得到的状态图分析出对应的逻辑规律。

其中,输出方程Z和是驱动方程W用来描述组合逻辑关系的,而状态方程是用来描述存储电路的新状态Q(n+1)与原状态Q(n)和驱动信号W之间的关系。

3、摩尔(moore)型电路和米里(Mealy)型电路

在时序电路中,根据输出信号的特点,可以分为摩尔(moore)型电路和米里(Mealy)型电路。在摩尔型电路中,输出信号仅仅取决于存储电路的状态;在米里型电路中,输出信号不仅仅取决于存储电路的状态,而且还取决于外部输入信号。

1)摩尔(moore)型电路的分析方法

该电路只有输出没有输入,是一个同步摩尔型时序电路。

驱动方程为:

根据特性表和状态图可以看出,随着CLK脉冲的到来,该电路在七个有效状态中循环变化,而输出Z也在0010111七个数中不断循环。因此,该电路是一个序列信号发生器,能够输出一个周期的数字序列信号。在这里我们还可以看出该电路是一个可自启动电路。所谓可自启动就是时序电路中的所有无效状态经过数个CLK脉冲后都能进入有效状态环。下面我们将这个状态图稍作修改,它就变成了不可自启动电路。下面的状态图是任意修改的,没有任何意义。

从该状态图中可以看出,当电路处于无效状态000/0时,不管经过多少个CLK脉冲,它始终都会处于000—100—000这个状态,我们只有将电路设置为其他的几个状态,它才能正常工作。

2)米里(Mealy)型电路的分析方法

驱动方程为:

输出方程为:

通过特性图可以看出,当外部输入X等于0时,状态转移按00—01—10—11—00循环变化,因此可以实现模4加法计数器的功能;当外部输入X等于1时,状态转移按00—11—10—01—00循环变化,因此可以实现模4减法计数器功能。所以,该电路是一个同步模4可逆计数器。

4、时序逻辑电路的设计方法——以自动售货机为例

我们要求该自动售货机只能投入一元硬币,当连续投入三个硬币后,售货机才会给出一瓶饮料,假如我们投入了两枚硬币,发现没有硬币了,那么自动售货机是不会退币的,直至你投入三枚硬币才会输出饮料。

从前面的要求中,我们可以分析得到,该电路有一个输入和一个输出,是一个米里型电路。这里我们假设X为一元硬币输入,投入一元硬币X为1,未投入一元硬币X就为0;Z为饮料输出,送出饮料Z为1,未送出饮料Z就为0。我们还可以分析得出该电路的状态,这里我们假设S0为初态,S1为投入一元后的状态,S2为投入两元后的状态。

下面我们开始建立状态图。

首先我们假设自动售货机处于S0状态,紧接着我们投入一个一元硬币,X=1,那么电路状态由S0转换到S1,表示已收到一枚硬币,又因为只收到一个一枚硬币,饮料不会送出,Z=0。

当电路处于S1状态,我们同样再投入一个一元硬币,X=1,那么电路状态由S1转换到S2,表示已连续收到两个一元硬币,又因为只连续收到两个,饮料也不会送出,Z=0。

当电路处于S2状态,我们再投入一个一元硬币,X=1,那么电路状态由S2转换到S0,表示已连续收到三个一元硬币。此时,饮料会送出,Z=1。

根据状态图来进行状态编码。我们这里用到了三个状态,即M=3,根据2^(n-1)<M<2^n,可以确定触发器个数,n=2,2个触发器。我们利用两个触发器就可以实现三个不同的状态。两个触发器有四种不同的组合状态00、01、10、11,我们设S0=00,S1=01,S2=10。这样可得编码后的特性表。

5、时序逻辑电路的分析与设计方法

标签: #基于fpga的计数器及时序电路