首页 理论教育 数字系统控制算法的常用工具

数字系统控制算法的常用工具

时间:2023-06-24 理论教育 版权反馈
【摘要】:图11.26ASM及时间图2)算法语言算法语言是一种用语言文件方式描述数字系统控制算法的工具,常用的算法语言有VHDL语言、RTL语言和GSAL语言,它们都属于硬件描述语言。一个RTL语句描述数字系统所处的一个状态时,其操作函数指明数据处理器要求实现的微操作,其控制函数指明控制器发出的命令。RTL语言在数字系统设计中已获得了非常广泛的应用。图11.27寄存器传送操作在数字系统中最常用的RTL语句有以下几类。

数字系统控制算法的常用工具

数字系统的核心是控制器,而控制器的核心是控制算法。采用各种算法设计数字系统的方法称为算法模型方法,是当前数字系统设计的主流方法。目前,采用算法模型方法设计数字系统时的常用工具主要有两类:一类是算法图,一类是算法语言

1)算法图

算法图是一种用图形方式来描述数字系统控制算法的工具,最著名的算法图是ASM图。它是算法状态机图的简称,是一种用来描述时序数字系统控制过程的算法流程图。它由状态框、分支框、条件输出框和状态单元等基本图形组成,与计算机中程序流程图非常相似。

所谓算法状态机本质上是一个有限状态机,也称有限自动机或时序机,它是一个抽象的数学模型,主要用来描述同步时序系统的操作特性。时序机理论不仅在数字系统设计和计算机科学上得到应用,在社会、经济、系统规划等学科领域也有着非常广泛的应用。

ASM图中有三种基本符号:状态框、判断框和条件输出框。

(1)状态框

状态框用来表示数字控制系统序列中的状态,如图11.23(a)所示。图11.23(b)为状态框的实例,S1:状态框名称;010:状态框代码;B←A:寄存器的操作;Z:输出信号。图11.23中的箭头表示系统状态的流向,在时钟脉冲触发沿的触发下,系统进入状态S1,在下一个时钟脉冲触发沿的触发下,系统离开状态S1,因此一个状态框占用一个时钟周期。

图11.23 状态框

图11.24 判断框

(2)判断框

判断框用来表示状态变量对控制器工作的影响,如图11.24所示。它有一个入口和多个出口,框内填判断条件,如果条件是真(1),选择一个出口;若条件是假(0),选择另一个出口。

判断框的输入来自某一个状态框的输出,在该状态框占用的一个时钟周期内,根据判断框中的条件,决定下一个时钟脉冲触发沿来到时,该状态从判断框的哪个出口出去,因此,判断框不占用时间。

图11.25 条件输出框

(3)条件输出框

条件输出框如图11.25(a)所示,条件框的输入必定与判断框的输出相连。在给定的状态下,满足判断条件,才会执行条件框内的寄存器操作或输出。在图11.25(b)的例子中,当系统处于状态S1时,若条件X=1,则寄存器R被清0;否则R保持不变。但不论X为何值,系统的下一个状态都是S2

(4)各种逻辑框之间的时间关系

从图形上看,ASM图与程序流程图很相似,但其实质有很大差别。程序流程图只表示事件发生的先后顺序,没有时间概念;而ASM图则表示事件的精确的时间间隔顺序。在ASM图中,每一个状态图表示一个时间周期内的系统状态,状态框和与之相连的判断框、条件输出框中所规定的操作,都是在同一个时钟周期内实现;同时系统的控制器从现在状态(现态)转移到下一个状态(次态)。图11.26给出了ASM图的各种操作及状态转换的时间图。假设系统中所有触发器都是上升沿触发,在第一个时钟脉冲上升沿到来时,系统转换到S0状态,然后根据条件由判断框输出1(真)或0(假),以便在下一个时钟脉冲上升沿到达时,系统的状态由S0转换到S1、S2、S3中的一个。

图11.26 ASM及时间图

2)算法语言

算法语言是一种用语言文件方式描述数字系统控制算法的工具,常用的算法语言有VHDL语言、RTL语言和GSAL语言,它们都属于硬件描述语言。

所谓硬件描述语言是指能够描述硬件电路的功能、信号连接关系及定时关系的语言,它可以比电路原理图更好地描述硬件电路的特性。利用算法语言设计数字系统,其过程类似于程序设计。

(1)VHDL语言

VHDL语言是硬件描述语言中抽象程度很高的一种语言,特别便于对整个系统的数学模型进行描述。目前的PLD产品大多有配套的VHDL语言文件编译软件,因此在用PLD器件设计数字系统时广泛使用这种语言。

(2)RTL语言

RTL语言是寄存器传送语言的简称,是一种源文件可以直接映射到具体逻辑单元的硬件描述语言。这里的“寄存器”是广义的,不仅包含暂存信息的寄存器,还包括具有寄存功能的其他存储部件,如移位寄存器、计数器(具有递增/递减功能的寄存器)、存储器(寄存器的集合)等。这样,数字系统就可以看作是对各种寄存器所存的信息进行存储、传送和处理的一个系统。

RTL语言适用于描述功能部件级数字系统的工作。这种语言使系统技术要求与硬件电路实现之间建立了一一对应的关系。

用RTL语言描述数字系统中各种部件(如加法器、比较器、寄存器等)间的信号连接关系及定时关系,并由这种连接和定时关系展示出数字系统中信息(包括控制信息和数据信息)的传送流程以及传送过程中相应的操作。

一个RTL语句描述数字系统所处的一个状态时,其操作函数指明数据处理器要求实现的微操作,其控制函数指明控制器发出的命令。因此,一系列有序的RTL语句可以完整地定义一个数字系统。

在RTL语句中一个语句标号对应于时序流程图中的一个状态框,条件转移语句对应时序流程图中的判断框,无条件转移语句描述状态之间的无条件转移……因此用RTL语言能够简明、精确地描述系统内信息的传送和处理。RTL语言在数字系统设计中已获得了非常广泛的应用。

图11.27 寄存器传送操作

在数字系统中最常用的RTL语句有以下几类。

①寄存器相互传送操作:在RTL语言中用大写的英文字母表示寄存器,例如A、B、R和IR等,也可以用图形表示一个寄存器,如图11.27(a)所示。还可以把寄存器的每一个位都表示出来,如图11.27(b)所示,在图中,方括号内是每一位的编号,例如A[2]表示寄存器A的右起第3位。

ⓐ无条件传送语句:P:A←B

箭头表示传送方向,B称为源寄存器,A称为目的寄存器。在图11.27(b)中,A、B是两个3位寄存器,当寄存器A加时钟脉冲CP时,寄存器B中各触发器的内容对应传给寄存器A中的各个触发器,其含义是:

P为控制函数,冒号“:”表示控制函数结束。

传送操作是一个复制过程,不改变源寄存器的内容,是在一定条件下发生的,并不是每个时钟脉冲都伴随发生这种传送。

ⓑ条件传送语句:其中的传送条件常由控制器给出的逻辑函数规定。例如:A←其中“!”和“,”是条件传送语句的专用符,“!”称为隔离符,其含意是隔离符左边和右边的数据之间没有联系;“*”是条件传送语句的连接符,“*”号右边是传送条件。上述语句表示:若则执行A←B。

则执行A←C。

又例如:(B!C)*(F1,F2)←A。(www.xing528.com)

表示:若F1=1,F2=0,则执行B←A。

若F1=0,F2=1,则执行C←A。

若F1=1,F2=1,则执行B←A,C←A。

若F1=0,F2=0,则A不传送到B,也不传送到C。

ⓒ并列传送语句:如要在同一个时钟内同时完成多个传送操作,则可在子句间用逗号分开。例如:P1:A←B,P2:C←D。

②算术运算操作:基本的算术操作为加、减、取反和移位;根据基本的算术操作,可获得其他算术操作,如表11.3所示。

表11.3 算术操作

例如:P:F←A+B,表示寄存器A的内容加上寄存器B的内容,其结果(和)传送给寄存器F。图11.28为实现加法操作的结构图

图11.28 加法操作

③逻辑操作:逻辑操作是两个寄存器对应位之间的操作。为了区别于算术符号,这里的与、或、非分别用∧、∨和字母上方加一横表示。例如:F←A∨B,表示寄存器A和寄存器B对应位进行“或”操作,其结果传送给寄存器F,结构图如图11.29所示。逻辑操作的符号表示方法见表11.4。

图11.29 “或”操作

表11.4 逻辑操作

④移位操作:移位操作分为左移、右移两种,简要介绍如下。

ⓐ左移操作:A←shl A,A[0]←X

寄存器A各位左移1位,丢弃最高位,外加输入信号X移至A的最低位,如图11.30(a)所示。也叫串行左移。

ⓑ右移操作:A←shr A,A[3]←0

寄存器A各位右移1位,丢弃最低位,0移至A的最高位。

ⓒ循环左移操作:A←shl A,A[0]←A[3]

寄存器A各位左移1位,A的最高位移至A的最低位,如图11.30(b)所示。

ⓓ循环右移操作:A←shr A,A[3]←A[0]

寄存器A各位右移1位,A的最低位移至A的最高位。

图11.30 移位操作

⑤输入和输出操作:寄存器传输语言还可以描述系统输入、输出操作,如果将输入线X中的数据传送到A寄存器,则表示为:A←X

把寄存器A的各位传送到输出线时,则采用符号“=”表示:

该语句意味着寄存器输出与输出线Z直接相连。

⑥无条件转移和条件转移:寄存器传输语言中也包含分支语句,分支语句说明下一步要执行多条语句中的哪一条,描述这种操作的语句叫转移语句,通常有无条件转移语句和条件转移语句两种。

ⓐ无条件转移语句:→(S)

表示下一步转向编号为S的语句继续执行。

ⓑ条件转移语句:(f1,f2,…,fn)/(S1,S2,…,Sn

其中f是系统变量的函数,取值为0或1,当fi=1时,执行Si标号的语句;当所有的fi均为0时,顺序执行下一条语句。例如:说明EN=0时,下一步执行语句3;EN=1时,则执行语句5。

ⓒ空操作语句:→NULL

图11.31 分组-按序 算法

不进行任何操作,而是利用它得到一个时钟周期的延迟时间,然后顺序执行下一条语句。

(3)GSAL语言

GSAL语言是分组-按序算法语言的简称,是一种与RTL语言非常接近的硬件描述语言。

所谓分组-按序算法是指包括很多子计算且子计算被分成许多组,执行时组内并行、组间按序的算法,如图11.31所示。图中椭圆框中的每个小圆圈表示一个子计算,每个椭圆框中的子计算为一组;只有当一组子计算都计算完毕时,才启动下一组子计算。

与VHDL语言和RTL语言相比,分组-按序算法语言有简单明了的语法和语义,非常便于理解和使用;采用高级语言结构和数据类型,非常便于系统功能的描述;在实现层次上用该语言描述的算法,可用硬件或固件(微程序)直接实现,非常便于系统功能的实现;把数字系统设计的问题变得类似程序设计,稍具程序设计知识的人即可用它成功地设计数字系统;采用这种算法设计的数字系统,运行速度较高,硬件成本较低,具有较高的性能价格比。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈