第1节 组合逻辑和时序逻辑
数字电路(复习)
②C=1、C=0,即C端为高电平(+VDD)、C端为低电平(0V) 时,TN和TP都具备了导通条件,输入和输出之间相当于开关接通 一样,uO=uI 。
2.三态门电路的输出有高阻态、高电平和低电平3种状态
• 三态门逻辑符号控制端电平的约定
A
1
Y
EN
EN
(a)控制端低电平有效
控制端加低电平信号时,三 态门处于工作状态,Y=A, 加高电平信号时禁止,Y=Z
加法器
能对两个1位二进制数进行相加而求得和及进位的逻辑电 路称为半加器。 能对两个1位二进制数进行相加并考虑低位来的进位,即 相当于3个1位二进制数的相加,求得和及进位的逻辑电路称 为全加器。 实现多位二进制数相加的电路称为加法器。按照进位方 式的不同,加法器分为串行进位加法器和超前进位加法器两 种。串行进位加法器电路简单、但速度较慢,超前进位加法 器速度较快、但电路复杂。 加法器除用来实现两个二进制数相加外,还可用来设计 代码转换电路、二进制减法器和十进制加法器等。
数据分配器
数据分配器的逻辑功能是将1个输入数据传送到 多个输出端中的1个输出端,具体传送到哪一个输出 端,也是由一组选择控制(地址)信号确定。 数据分配器就是带选通控制端即使能端的二进 制译码器。只要在使用中,把二进制译码器的选通 控制端当作数据输入端,二进制代码输入端当作选 择控制端就可以了。 数据分配器经常和数据选择器一起构成数据传 送系统。其主要特点是可以用很少几根线实现多路 数字信息的分时传送。
八进制数
0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17
十六进制数
0 1 2 3 4 5 6 7 8 9 A B C D E F
门电路 国标符号 曾用符号 美国符号 表达式
逻辑门电路的组合逻辑和时序逻辑
逻辑门电路的组合逻辑和时序逻辑逻辑门电路是计算机科学中重要的基础组成部分。
它通过逻辑门的组合,实现了我们平日使用的各种逻辑功能。
而这些逻辑门又可以分为两种类型:组合逻辑和时序逻辑。
组合逻辑是指逻辑门的输出仅取决于输入的当前值,与过去的输入值无关。
常见的组合逻辑包括与门、或门、非门等。
例如,与门的输出仅在所有输入都为高电平时为高电平,否则为低电平。
一个典型的组合逻辑电路可以是由多个逻辑门组成的电路网络。
通过将不同的逻辑门进行组合,我们可以实现各种复杂的逻辑功能,如加法器、减法器、多路选择器等。
除了组合逻辑外,时序逻辑是另一种重要的逻辑门电路类型。
与组合逻辑不同,时序逻辑的输出取决于输入的当前值以及过去的输入值。
时序逻辑电路包括存储器、触发器、计数器等。
存储器是一种常见的时序逻辑电路,它可以存储和检索数据。
例如,随机存取存储器(RAM)是一种常见的存储器类型,它可以根据地址存取数据。
而只读存储器(ROM)则是一种无法修改的存储器,其中的数据是预先设置好的。
触发器是时序逻辑中的又一个关键部件。
它可以储存一位二进制信息,并与外界的输入信号进行交互。
根据触发器的不同类型,我们可以实现如锁存器、触发器、移位寄存器等功能。
计数器是在电子设备和计算机中常用的时序逻辑电路。
它可以记录和跟踪计数值,并根据特定条件进行增加、减少和重置。
计数器广泛应用于时序控制、时钟分频等场景。
逻辑门电路的组合逻辑和时序逻辑的应用非常广泛。
从简单的数字电路到复杂的计算机系统,逻辑门电路都发挥着重要的作用。
例如,处理器中的算术逻辑单元(ALU)就是通过逻辑门的组合实现的,它能够执行加法、减法、与、或、非等基本运算。
总结起来,逻辑门电路是计算机领域中的重要基建。
通过组合逻辑和时序逻辑的使用,我们能够实现各种复杂的逻辑功能和时序控制。
在今天数字化的世界中,逻辑门电路无处不在,它让计算机和其他电子设备的功能更加强大和智能化。
组合逻辑电路和时序逻辑电路的区别
组合逻辑电路和时序逻辑电路的区别
一、输入输出关系
组合逻辑电路是任意时刻的输出仅仅取决于该时刻的输入,与电路原来的状态无关。
而时序逻辑电路不仅仅取决于当前的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。
二、结构特点
组合逻辑电路只包含门电路。
而时序逻辑电路是组合逻辑电路+存储电路结合;输出状态必须反馈到组合电路的输入端,与输入信号共同决定组合逻辑的输出..
三、分析方法
组合逻辑电路是从电路的输入到输出逐级写出逻辑函数式,最后得到表示输出与输入关系的逻辑函数式。
然后用公式化简法或者卡诺图化简法得到函数式的化简或变换,以使逻辑关系简单明了。
有时还可以将逻辑函数式转换为真值表的形式。
时序逻辑电路:。
实验二:组合和时序逻辑电路
❖ 通过实践教学引导学生在理论指导下有所创新,为后续 专业课程的学习和今后工作打下必要的根底。
实验方式
❖ 〔1〕学生应根据理论课程环节的相关要求,充分做好实 验预习工作;
❖ 〔2〕进入实验室后,实验开场前指导教师仅仅介绍实验 的相关要求、任务、操作步骤及本卷须知,工作原理不 再重复介绍讲解;
❖ BANK4计数器实验区,用来完成74LS160及其级联实验 ❖ 两片74LS160采用同步级联方式,最大模值100;使用
74LS20四与非门作反响清零/置数; ❖ 拨码开关切换至“ON〞位置时,表示相应反响接通; ❖ 可设计0~99任意模值清零/置数的计数器。
不耐用! 请小心操作
实验板BANK5、6使用说明
111111111 1111 0000 0
14
Y3
011111111 1110 0001 1
×0 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 2
2、水箱水位监测电路实验
2-二、实验原理
优先编码器74LSl47 逻辑功能简介
A0
无
A1
11
A2
12
A3
13
A4
1
A5
2
A6
3
A7
4
A8
5
A9
10
74LS147
16
Vcc
输入
输出
译码输入 显示
15
空
A 1 A 2 A 3 A 4 A 5 A 6 A 7 A 8 A 9 Y3 Y2 Y1 Y0 A3 A 2 A 1 A 0 字符
+
时序逻辑电路
第五章时序逻辑电路前面介绍的组合逻辑电路无记忆功能。
而时序逻辑电路的输出状态不仅取决于当时的输入信号,而且与电路原来的状态有关,或者说与电路以前的输入状态有关,具有记忆功能。
触发器是时序逻辑电路的基本单元。
本章讨论的内容为时序逻辑电路的分析方法、寄存器和计数器的原理及应用。
第一节时序逻辑电路的分析一、概述1、时序逻辑电路的组成时序逻辑电路由组合逻辑电路和存储电路两部分组成,结构框图如图5-1所示。
图中外部输入信号用X(x1,x2,…,x n)表示;电路的输出信号用Y(y1,y,…,y m)表示;存储电路的输入信号用Z(z1,z2,…,z k)表示;存储电2路的输出信号和组合逻辑电路的内部输入信号用Q(q1,q2,…,q j)表示。
图5-1 时序逻辑电路的结构框图可见,为了实现时序逻辑电路的逻辑功能,电路中必须包含存储电路,而且存储电路的输出还必须反馈到输入端,与外部输入信号一起决定电路的输出状态。
存储电路通常由触发器组成。
2、时序逻辑电路逻辑功能的描述方法用于描述触发器逻辑功能的各种方法,一般也适用于描述时序逻辑电路的逻辑功能,主要有以下几种。
(1)逻辑表达式图5-1中的几种信号之间的逻辑关系可用下列逻辑表达式来描述:Y =F(X,Q n)Z =G(X,Q n)Q n+1=H(Z,Q n)它们依次为输出方程、状态方程和存储电路的驱动方程。
由逻辑表达式可见电路的输出Y不仅与当时的输入X有关,而且与存储电路的状态Q n有关。
(2)状态转换真值表状态转换真值表反映了时序逻辑电路的输出Y、次态Q n+1与其输入X、现态Q n的对应关系,又称状态转换表。
状态转换表可由逻辑表达式获得。
(3)状态转换图状态转换图又称状态图,是状态转换表的图形表示,它反映了时序逻辑电路状态的转换与输入、输出取值的规律。
(4)波形图波形图又称为时序图,是电路在时钟脉冲序列CP的作用下,电路的状态、输出随时间变化的波形。
应用波形图,便于通过实验的方法检查时序逻辑电路的逻辑功能。
数字电路第1章数字电路概述
导线连接起来的电路;
集成电路是将元器件及导线均采用半导体工艺 集成制作在同一硅片上,并封装于一个壳体内的 电路。一块芯片上集成的元器件数量的多少,称 为集成电路的集成度。
小规模集成电路(SSI, 数十器件/片) 中规模集成电路(MSI, 数百器件/片)
JHR
第1章 数字电子技术概述
一、本章主要介绍内容
1.数字电子技术与模拟电子技术的区别,数字 信号和数字电路的基本概念。
2.半导体器件(二极管、三极管、MOS管)在 数字电路中主要工作于开关状态,重点介绍它们的 开关运用特性。 3.数字系统中信息可分为数值和文字符号两大 类。数值的计数体制常用的有二进制、十进制、十 六进制,重点介绍它们的
方法二:按位、权值进行转换。 在十进制数中,小数点左侧第一位称为个位,其 权值为100,第二位称为十位,其权值为101,依
此类推。
例如:十进制数3954代表:
3 9 5 4
(3103)+(9102)+(5101)+(4100) (31000)+(9100)+(510)+(41) 3000 + 900 + 50 + 4=3954
3.八进制数
数码:0、1、2、3、4、5、6、7、八个数码。 基数:8 计数规律: 逢八进一、借一当八
n 1
一般表达式: N 8
im
K i 8i
如 .7 ) 8 3 8 2 2 81 5 8 0 7 8 1 (325 ( 213 .875 )10
(N)10=(b2b1b0)2
则
(b2b1b0)2 =(b2×22+b1×21+b0×20)10
此式说明 (N)10÷2=b2×21+b1……余数b0
fpga时序逻辑和组合逻辑
fpga时序逻辑和组合逻辑FPGA(Field-Programmable Gate Array,现场可编程门阵列)是一种集成电路芯片,可以根据需要进行可编程和可重新配置的硬件设计。
FPGA中的逻辑可以分为时序逻辑和组合逻辑。
1.组合逻辑(Combinational Logic):组合逻辑是一种无记忆的逻辑,其输出仅与当前输入有关,没有时序(时钟)要求。
组合逻辑电路由逻辑门组成,例如AND门、OR门、NOT门等。
组合逻辑的输出只取决于当前的输入信号,并且输出的时刻不受电路中其他信号的影响。
组合逻辑电路可以用布尔代数和真值表来描述,可以通过Karnaugh图、逻辑门电路或编程语言进行设计和实现。
对于FPGA而言,组合逻辑通常被用于处理输入信号之间的关系,从而生成输出信号。
2.时序逻辑(Sequential Logic):时序逻辑是一种基于时钟信号的逻辑,它包含电路的状态存储元件(如触发器或寄存器)。
时序逻辑具有一定的记忆功能,可以根据其存储的先前状态和时钟信号来决定输出。
时序逻辑的输出受到电路的当前状态和时钟信号的控制。
时序逻辑电路通常用于需要保留状态信息和实现时序控制的场景。
通过使用时钟信号来同步时序逻辑中不同的部分,可以确保它们在正确的时相进行操作,从而实现复杂的逻辑功能。
在FPGA中,常常将组合逻辑和时序逻辑结合起来实现特定的功能。
组合逻辑用于处理输入信号之间的关系,而时序逻辑则用于实现状态存储和时序控制。
通过在FPGA中使用逻辑元件和触发器等元件,可以构建出复杂的数字电路和逻辑功能。
为了正确设计和实现FPGA逻辑,需要深入了解组合逻辑和时序逻辑的原理和特性,并根据具体应用场景进行合适的设计。
组合逻辑电路和时序逻辑电路
组合逻辑电路和时序逻辑电路
组合逻辑电路和时序逻辑电路的区别:组合逻辑电路可以有若个输入变量和若干个输出变量,其每个输出变量是其输入的逻辑函数,其每个时刻的输出变量的状态仅与当时的输入变量的状态有关,与本输出的原来状态及输入的原状态无关,也就是输入状态的变化立即反映在输出状态的变化。
时序逻辑电路任意时刻的输出不仅取决于该时刻的输入,而且还和电路原来的状态有关。
也就是说,组合逻辑电路没有记忆功能,而时序电路具有记忆功能。
时序逻辑电路简称时序电路,它是由最基本的逻辑门电路加上反馈逻辑回路(输出到输入)或器件组合而成的电路,与组合电路最本质的区别在于时序电路具有记忆功能。
时序电路的特点是:输出不仅取决于当时的输入值,而且还与电路过去的状态有关。
它类似于含储能元件的电感或电容的电路,如触发器、锁存器、计数器、移位寄存器、储存器等电路都是时序电路的典型器件。
第六章时序逻辑电路
CLK异0为步计计数数输器入与端、同Q步0为计输数出器端比,二,进具制有计如数下器 特点: CLK* 1电为计路数简输单入;端、Q3为输出端,五进制计数器 CLK* 1速与Q度0慢相连;、CLK0为输入端、Q3为输出端,十进制计数器
四、任意进制计数器的构成方法 设已知计数器的进制为N,要构成的任意进制计数
圆圈表示电路的各个状态,箭头表示状态表示的方向, 箭头旁注明转换前的输入变量取值和输出值
三、状态机流程图(SM图) 采用类似于编写计算机程序时使用的程序流程图的形
式,表示在一系列时钟脉冲作用下时序电路状态的流程以及 每个状态下的输入和输出。
四、时序图 在输入信号和时钟脉冲序列作用下,电路状态、
输出状态随时间变化的波形图。
电路在某一给定时刻的输出
取决于该时刻电路由的触输发入器保存 还取决于前一时刻电路的状态
时序电路: 组合电路 + 触发器
电路的状态与时间顺序有关
例:串行加法器电路
利用D触发器 把本位相加后 的进位结果保 存下来
时序电路在结构上的特点:
(1)包含组合电路和存储电路两个组成部分
(2)存储输出状态必须反馈到组合电路的输入端,与输入 信号共同决定组合逻辑电路的输出
串行进位方式以低位片的进位输出信号作为高位片的时 钟输入信号;
并行进位方式以低位片的进位输出信号作为高位片的 工作状态控制信号(计数的使能信号),两片的CLK同时接 计数输入信号。
二、异步计数器
B、减法计数器
二、异步计数器
B、减法计数器
根据T触发器的翻转规律即可画出在一系列CLK0脉冲信号 作用下输出的电压波形。
2、异步十进制计数器
J K端悬空相当于接逻辑1电平 将4位二进制计数器在计数过程中跳过从1010到1111这6个状态。
verilog时序逻辑和组合逻辑
verilog时序逻辑和组合逻辑
摘要:
1.组合逻辑简介
2.时序逻辑简介
3.组合逻辑与时序逻辑的区别
4.实例分析
5.总结
正文:
【1】组合逻辑简介
组合逻辑是数字电路设计中的基础部分,它主要研究如何使用布尔代数和逻辑门来实现数字逻辑电路。
组合逻辑电路的特点是,其输出仅依赖于当前时刻的输入,而与之前的输入状态无关。
简而言之,组合逻辑电路不需要考虑时间因素,只需关注输入与输出之间的关系。
【2】时序逻辑简介
时序逻辑是数字电路设计的另一个重要分支,它主要研究如何在电路中处理带有时间约束的逻辑问题。
时序逻辑电路的输出不仅依赖于当前时刻的输入,还与之前时刻的输入状态有关。
这使得时序逻辑电路的设计相比组合逻辑电路更为复杂。
【3】组合逻辑与时序逻辑的区别
组合逻辑和时序逻辑的主要区别在于对时间因素的处理。
组合逻辑不考虑输入信号的历史状态,而时序逻辑关注输入信号的历史状态对电路输出的影
响。
此外,组合逻辑电路的设计相对简单,而时序逻辑电路的设计则更为复杂。
【4】实例分析
以一个简单的触发器为例,触发器的输入信号为A、B,输出信号为Q。
在没有考虑时序约束的情况下,可以使用组合逻辑实现触发器。
但当需要满足一定的时间约束(如设置潜伏期和建立时间)时,组合逻辑无法满足要求,必须采用时序逻辑设计。
【5】总结
总之,组合逻辑和时序逻辑在数字电路设计中具有不同的应用场景。
组合逻辑适用于简单数字电路设计,关注输入与输出之间的关系;而时序逻辑适用于复杂数字电路设计,需要考虑时间约束。
组合逻辑元件和时序逻辑元件
组合逻辑元件和时序逻辑元件
组合逻辑元件和时序逻辑元件是数字电路中两种基本的逻辑元件类型。
组合逻辑元件是一种输出仅取决于当前输入的逻辑元件。
它不包含存储元件,其输出是输入信号的即时函数。
组合逻辑元件的输出在输入变化时立即改变,而不考虑输入信号的变化顺序或时间延迟。
常见的组合逻辑元件包括与门、或门、非门、异或门等。
组合逻辑元件常用于实现数字电路中的逻辑运算、数据选择、编码和解码等功能。
时序逻辑元件则是一种输出不仅取决于当前输入,还取决于过去输入的逻辑元件。
它包含存储元件,可以存储过去的输入信息。
时序逻辑元件的输出是输入信号和存储元件状态的函数,其输出在输入变化时可能会有时间延迟。
常见的时序逻辑元件包括寄存器、计数器、触发器等。
时序逻辑元件常用于实现数字电路中的时序控制、状态机和计数器等功能。
在数字电路设计中,组合逻辑元件和时序逻辑元件通常结合使用,以实现复杂的逻辑功能。
组合逻辑元件用于处理数据的逻辑操作,而时序逻辑元件用于存储和控制数据的流动。
两者的结合使得数字电路能够执行各种复杂的计算和控制任务。
总而言之,组合逻辑元件和时序逻辑元件是数字电路中不可或缺的组成部分。
它们各自具有独特的功能和特点,共同推动了数字电路技术的发展和应用。
组合逻辑 时序逻辑
组合逻辑时序逻辑组合逻辑和时序逻辑是数字电路设计和计算机科学中两个重要的概念。
组合逻辑是指当任何输入发生变化时,输出立即相应地发生变化的逻辑电路。
时序逻辑是指输出还与之前的输入和输出状态有关的逻辑电路。
组合逻辑主要通过逻辑门(如与门、或门、非门等)来实现逻辑运算。
这种逻辑电路通常用于实现任意逻辑函数,例如加法器、比较器和解码器等。
由于组合逻辑只考虑当前输入的值,因此不会存储任何状态信息。
与之相比,时序逻辑电路存储了之前的输入和输出状态。
时序逻辑电路通常由触发器和时钟信号组成。
触发器可以存储二进制值,并根据时钟信号的边沿触发状态变化。
这种电路可以实现状态机、计数器和存储器等功能。
在实际应用中,组合逻辑和时序逻辑常常结合使用。
例如,在计算机的中央处理器(CPU)中,组合逻辑负责执行算术、逻辑运算和控制指令的操作,而时序逻辑则用于存储中间结果和控制电路的状态。
对于数字电路设计师来说,理解组合逻辑和时序逻辑的原理至关重要。
首先,设计师应该能够准确地理解问题的需求,并将其转化为逻辑电路的功能。
其次,设计师应该能够选择正确的逻辑门和触发器,以满足设计要求,同时考虑到功耗和时序等方面的问题。
此外,设计师还需要考虑时序逻辑的时钟和同步问题。
合理的时钟设计可以保证电路的稳定性和可靠性。
而同步电路设计可以确保在时钟的信号边沿发生时,所有触发器都同时触发,避免出现不可预测的状态。
总之,组合逻辑和时序逻辑是数字电路设计中的关键概念。
掌握这两个概念可以帮助我们理解和设计各种数字系统,从计算机硬件到通信设备。
同时,对于从事电子工程和计算机科学等领域的人员来说,深入了解组合逻辑和时序逻辑也是提高技术能力的关键一步。
时序逻辑和组合逻辑的详解
时序逻辑和组合逻辑的详解时序逻辑和组合逻辑是数字电路设计的两种基本逻辑设计方法,它们在数字系统中起着至关重要的作用。
时序逻辑是一种依赖于时钟信号的逻辑设计方法,通过定义在时钟信号上升沿或下降沿发生的动作,来确保逻辑电路的正确性和稳定性。
而组合逻辑则是一种不依赖时钟信号的逻辑设计方法,其输出只取决于当前的输入状态,不受到时钟信号的控制。
本文将分别对时序逻辑和组合逻辑进行详细的阐释,并比较它们在数字电路设计中的应用和特点。
时序逻辑首先来看时序逻辑,它是一种将输入、输出和状态信息随时间推移而改变的逻辑系统。
时序逻辑的设计需要考虑到时钟信号的作用,时钟信号的传输速率影响了时序逻辑电路的稳定性和响应速度。
时钟信号的频率越高,电路的工作速度越快,但同时也会增加功耗和故障率。
因此,在设计时序逻辑电路时,需要充分考虑时钟频率的选择,以及如何合理地控制时钟信号的传输和同步。
时序逻辑电路通常由触发器、寄存器、计数器等组件构成,这些组件在特定的时钟信号下按照预定的顺序工作,将输入信号转换成输出信号。
时序逻辑电路的设计需要满足一定的时序约束,确保信号在特定时间内的传输和处理。
时序约束包括激发时序、保持时序和时序延迟等,这些约束在设计时序逻辑电路时至关重要,一旦违反可能导致电路不能正常工作或产生故障。
时序逻辑的一个重要应用是时序控制电路,它在数字系统中起着至关重要的作用。
时序控制电路通过时序逻辑实现对数据传输、状态转换和时序控制的精确控制,保证系统的正确性和稳定性。
时序控制电路常用于时序逻辑电路的设计中,例如状态机、序列检测器、数据通路等,它们在计算机、通信、工控等领域都有广泛的应用。
时序逻辑还常用于时序信号的生成和同步,如时钟信号、复位信号、使能信号等。
时序信号的生成需要考虑电路的稳定性和同步性,确保各个部件在时钟信号的控制下协调工作。
时序信号的同步则是保证各个时序逻辑电路之间的数据传输和处理是同步的,避免数据冲突和错误。
数字电路与逻辑设计 第3讲
真值表如下: 真值表如下:
输出 Y2 Y1 Y0 GS
1 × × × × × × × × × × × × × × × 0
1 × × × × ×
1 × × × × ×
1 × × × × ×
1 × × × × ×
1 × × × × ×
1 × × × × ×
1 × × × × ×
1 × × × × ×
1 × × × × ×
今后会经常遇到的几种控制信号:(用来增强器件的功能) 今后会经常遇到的几种控制信号: 用来增强器件的功能) EI为使能输入端 低电平有效) 有时也称作片选信号。 为使能输入端( 1 、 EI 为使能输入端 ( 低电平有效 ) , 有时也称作片选信号 。 就 74LS LS148 EI/CS=1 74LS148 来 说 , 当 EI/CS=1 时 , 该 器 件 是 不 工 作 的 , 只 有 在 EI/CS=0时才工作。 EI/CS=0时才工作。 EO为使能输出端 低电平有效) EO只有在 EI=0 为使能输出端( 只有在EI= 2 、 EO 为使能输出端 ( 低电平有效 ) : EO 只有在 EI=0 ( 器件在工 而且所有输入都为1 说明无有效输入) 输出为0 作),而且所有输入都为1(说明无有效输入)时,输出为0。 这时可以将该片的EO接到另一片的EI EO接到另一片的EI上 这时可以将该片的EO接到另一片的EI上(显然这一片的优先权 允许它工作(EI=0 因此实现了扩展。 低),允许它工作(EI=0)。因此实现了扩展。 3 、 GS 为 优 先 编 码 工 作 标 志 ( 低 电 平 有 效 ) : 用 来 区 分 011111111” 此时GS= 编码器处于编码状态) GS=0 I0I1I2…I7=“011111111”(此时GS=0,编码器处于编码状态) I =“011111111 111111111” GS=1 和 I0I1I2…I7=“111111111” 的情况 ( 此时 GS=1 , 编码器处于 I =“111111111 的情况( 此时GS= 非编码状态) 非编码状态)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1节组合逻辑和时序逻辑来源:/book/09-03/8331410070307.html通过前面各章的学习可知,Verilog HDL语言分为面向综合和面向仿真两大类语句,且可综合语句远少于仿真语句,读者可能会有可综合设计相对简单的感觉。
然而事实刚好与此相反,这是因为:首先,可综合设计是用来构建硬件平台的,因此对设计的指标要求很高,包括资源、频率和功耗,这都需要通过代码来体现;其次,在实际开发中要利用基本Verilog HDL语句完成种类繁多的硬件开发,给设计人员带来了很大的挑战。
所有的仿真语句只是为了可综合设计的验证而存在。
为了让读者深入地理解可综合设计、灵活运用已学内容,本章将可综合设计中的基本知识点和难点提取出来,融入Verilog HDL语法以及开发工具等诸多方面,以深入浅出的方式向读者说明设计中的难点本质。
8.1 组合逻辑和时序逻辑数字电路根据逻辑功能的不同特点,可以分成两大类,一类叫组合逻辑电路(简称组合电路),另一类叫做时序逻辑电路(简称时序电路)。
掌握组合逻辑和时序逻辑的区分手段与实现方法是数字系统设计的基本要求。
8.1.1 组合逻辑设计1.组合逻辑概念组合逻辑是Verilog HDL设计中的一个重要组成部分。
从电路本质上讲,组合逻辑电路的特点是输出信号只是当前时刻输入信号的函数,与其他时刻的输入状态无关。
无存储电路,也没有反馈电路,其典型结构如图8-1所示。
从电路行为上看,其特征就是输出信号的变化仅仅与输入信号的电平有关,不涉及对信号跳变沿的处理。
尽管组合电路在功能上千差万别,可是其分析方法却有很多相似之处。
给定逻辑电路后,得到其输入与输出的直接表达式,将输入组合全部带入表达式中计算得到输出结果,并以真值表的形式表达出来,最后根据真值表说明电路功能。
组合逻辑电路的设计就是在给定逻辑功能的前提下,通过某种设计渠道,得到满足功能要求且最简单的逻辑电路。
基于HDL 语言和EDA 工具的组合逻辑电路的设计流程如图8-2 所示。
其中逻辑抽象和HDL 编程是重点环节。
在很多情况下,逻辑问题都是通过文字描述的,逻辑抽象就是对设计对象的输入与输出信号间的因果关系,用逻辑函数的方法表示出来。
HDL 语言编程就是直接通过语句来实现抽象结果。
2.组合逻辑的Verilog HDL 描述根据组合逻辑的电路行为,可以得到两种常用的RTL 级描述方式。
第一种是always 模块的触发事件为电平敏感信号列表;第二种就是用assign 关键字描述的数据流赋值语句。
(1)always 模块的敏感表为电平敏感信号的电路这种方式的组合电路应用非常广泛,几乎可以完成对所有组合逻辑电路的建模。
always模块的敏感列表为所有判断条件信号和输入信号,但一定要注意敏感列表的完整性。
在always 模块中可以使用if、case 和for 等各种RTL 关键字结构。
由于赋值语句有阻塞赋值和非阻塞赋值两类,建议读者使用阻塞赋值语句“=”,详细原因将在8.3.1 节进行说明。
always 模块中的信号必须定义为reg 型,不过最终的实现结果中并没有寄存器。
这是由于在组合逻辑电路描述中,将信号定义为reg 型,只是为了满足语法要求。
下面给出一个组合逻辑实例。
【例8-1】通过Verilog HDL 语言实现一个2 输入比较器,输入分别为d1、d2,输出分别为f1(d1>d2 时为高电平)、f2(d1 = d2 时为高电平)、f3(d1<d2 时为高电平)。
可以看出,组合逻辑就对应着电平触发事件电路。
上述程序在ISE中综合后的RTL级结构图如图8-3所示,可以看出,虽然将输出信号f1、f2以及f3声明为寄存器变量,并且在always模块中进行赋值操作,但在组合逻辑设计中,并没有综合成D触发器。
上述程序在ISE Simulator中的仿真结果如图8-4所示,只要敏感信号电平发生变化,always语句块中所有语句都会被重新执行一次。
(2)assign语句描述的电路利用条件符“?”可以描述一些相对简单的组合逻辑电路,信号只能被定义为wire型。
当组合逻辑比较复杂时,需要很多条assign语句或者多重嵌套“?”,使得代码可读性极差,因此此时推荐第一种组合逻辑建模方式。
下面给出一个由assign 关键字描述的组合逻辑实例。
【例8-2】通过assign语句实现例8-1的比较器。
在ISE中查看其综合后的RTL级结构示意图,可以发现和图8-3一样,其仿真结果也和例8-1的一致。
3.组合逻辑电路的注意事项(1)敏感信号列表在组合逻辑设计中,读者必须重点对待敏感信号列表。
敏感信号列表出现在always块中,其典型行为级的含义为:只要敏感信号列表内的信号发生电平变化,则always模块中的语句就执行一次,因此设计人员必须将所有的输入信号和条件判断信号都列在信号列表中。
有时,不完整的信号列表会造成不同的仿真和综合结果,因此需要保证敏感信号的完备性。
在实际的PLD 器件开发中,EDA 工具都会默认将所有的输入信号和条件判断语句作为触发信号,增减敏感信号列表中的信号不会对最终的执行结果产生影响,因此读者如果期望在设计中通过修改敏感信号来得到不同的逻辑,那就大错特错了。
当敏感信号不完备时,会使得仿真结果不一样,这是因为仿真器在工作时不会自动补充敏感信号表。
如果缺少信号,则无法触发和该信号相关的仿真进程,也就得不到正确的仿真结果。
因此,为了确保仿真和最终实现结果一致,必须要保证组合逻辑电路always 敏感信号列表的完备性。
如果设计人员在设计中,认为列举信号麻烦,则采用下面的语句。
此时,综合工具和仿真工具会自动将所有的敏感信号自动加入敏感信号列表。
ISE 也支持这一用法。
(2)不要在组合逻辑中引入环路在组合逻辑中引入环路会导致电路产生振荡、毛刺以及冲突等问题,从而降低设计的稳定性和可靠性,因此要彻底避免环路。
图8-5 给出一个简单的环路设计,把一个寄存器输出通过组合逻辑后,再次通过两级组合逻辑处理反馈给该组合逻辑的引脚时,就会产生组合环路,要避免该组合环路,可以采用图8-6 所示的逻辑设计示意图,不仅功能结构一致,还取消了组合逻辑环路。
之所以称逻辑环路是一种高风险设计,其原因如下:首先,环回逻辑的延时完全依靠组合逻辑门延迟和布线延迟。
一旦这些传播时延有所变化,则环路的整体逻辑将彻底失效。
其次,环路的时序分析是个死循环过程。
目前的EDA 开发工具为了计算环路的时序逻辑都会主动割断时序路径,引入许多不确定的因素。
目前的综合工具都会给出逻辑环路的警告(Combinational Loops),因此设计人员必须对软件工具的此类报告特别在意。
如果一定要实现环路,则需要通过时序逻辑的寄存器来完成。
8.1.2 时序逻辑设计1.时序逻辑电路的基本知识时序逻辑是Verilog HDL 设计中另一类重要应用。
从电路特征上看来,其特点为任意时刻的输出不仅取决于该时刻的输入,而且还和电路原来的状态有关。
电路里面有存储元件(各类触发器,在FPGA 芯片结构中只有D 触发器)用于记忆信息,如图8-7 所示。
从电路行为上讲,不管输入如何变化,仅当时钟的沿(上升沿或下降沿)到达时,才有可能使输出发生变化。
从图8-7 可以看出,时序逻辑电路由组合逻辑电路和存储电路这两部分组成,其中存储电路由各类触发器(JK 触发器、D 触发器以及T 触发器等类型)构成,并将组合逻辑的部分输出反馈到输入逻辑的输入端口。
时序电路可通过表达式(电路输出端的输出逻辑表达式、存储电路触发器输出端的驱动或激励表达式,以及表示触发器状态的状态方程)、状态转移表、状态转移图、时序图以及HDL 行为描述语言等来描述。
若将输入变量和各级触发器状态的全部组合列出,分别代入各级触发器的状态方程和电路的输出方程,则可以计算出各级触发器的次态值和当前输出值,把相应的计算结果列成真值表就可得到状态转移表。
对于读者最关心的HDL 行为描述代码,可在时序图的基础上快速得到。
分析一个时序电路,就是要找出给定时序电路的逻辑功能。
具体地说,就是要求找出电路的状态和输出状态(一般指进位输出、借位输出等)在输入变量和时钟信号作用下的变化规律。
为了直观地说明上述方法,下面给出一个简单的时序逻辑电路,通过分析得到其常用的描述形式。
【例8-3】完成图8-8 所示的简单时序逻辑电路的分析。
(1)首先,列出输出方程、驱动方程,即由于电路采用T 型触发器,因此其特征方程为:将驱动方程代入特征方程,可以得到式(8-4)所示的状态方程。
(2)计算并列出状态转移表图示电路有一个输入X和1级触发器,因此输入与触发器初态的取值组合只有4组,即00、01、10和11。
把这些取值带入式(8-4)和式(8-1),可计算出触发器的次态和电路的输出值,其相应的状态转移表如表8-1所列。
(3)画出状态转移图和时序图状态转移图直观、形象地显示出了时序逻辑电路的特点和逻辑功能,本例的状态转移图如图8-9所示。
其中,圆圈内的数字表示电路的状态,箭头表示状态转换的方向,箭头旁注明了状态转换的输入条件和输出结果,输入条件位为斜线上方,而输出结果位于斜线下方。
时序图就是通过数字信号波形直观表示时序逻辑电路的特点和逻辑功能,可根据状态方程、状态转移表等多方面得到,用于判断设计结果的正确性。
图8-10(a)、(b)分别给出了触发器初始状态为0和1的时序图。
从图8-10中可以看出以下两点:首先,时序电路的输出信号不仅取决于电路当时的输入,还取决于电路原来的状态,体现了“记忆”特性。
其次,在同步时序逻辑电路中,触发器由时钟信号CP来触发,控制其翻转时刻,而对触发器翻转到何种状态并无影响。
2.时序逻辑的Verilog HDL描述时序电路的行为决定了其只能通过always块语句实现,通过关键词“posedge”和“negedge”来捕获时钟信号的上升沿和下降沿。
在always语句块中可以使用任何可综合的标志符。
下面首先以D触发器为例,给出基本单元触发器的Verilog HDL实例,读者可自行完成其余常用触发器(RS触发器、JK触发器以及T触发器等)的Verilog HDL实现。
【例8-4】通过Verilog HDL实现D触发器。
同步D触发器的功能为:输入D只能在时序信号clk的沿变化时才能被写入到存储器中,替换以前的值,常用于数据延迟以及数据存储模块中。
由于D触发器只有一个输入端,在许多情况下,可使触发器之间的连接变得非常简单,因此使用十分广泛。
上述程序在ISE中综合后的RTL级结构图如图8-11所示。
上述程序的仿真结果如图8-12所示。
从中可以看出,在时钟上升沿,D触发器都将输入数据接收并寄存。
在给出时序逻辑设计最基本的电路后,下面给出图8-8所示电路的Verilog HDL实现,和例8-3的描述方法进行比较。