数字系统各模块之间的连接不能直接用组合电路和时序电路中采用的方法进行描述,需要采用更高一级的描述方法。寄存器传输语言(Register Transfer Language)就是既表示了寄存器传输操作,又和硬件之间有简单对应关系的一种设计工具,它能够简明精确地描述系统内部信息的传输和处理。
在寄存器传输语言中,寄存器是基本的逻辑单元,这是一个广义的定义,在寄存器传输语句中,术语寄存器不仅包括普通的暂存信息的寄存器,还应包括具有特定功能的寄存器,如移位寄存器﹑计数器﹑存储器等。
用RTL语句来描述数字系统所处的状态,一个RTL语句描述系统的一个状态。RTL的操作指明数据子系统要实现的微操作,其控制函数指明控制子系统发出的命令。微操作是寄存器传输中的最基本的操作,每个基本语句通常为一次微操作。在RTL中,时序流程图中的一个状态框对应一个语句标号,用条件转移语句表示时序流程图中的判断框,用无条件转移语句表示状态之间的无条件转移等。下面介绍寄存器传输语言所用到的基本操作及其基本语句。
在RTL中,用大写英文字母表示寄存器,也可以用图形把寄存器的每一位都表示出来,如图10-17所示。
图10-17 寄存器表示法
(1)无条件传送语句。
无条件传送语句的格式为:
A←B
其中的箭头表示传送动作,B表示源寄存器,A表示目的寄存器。该语句的具体含义是,将n位的B寄存器中的内容,在一个时钟周期内传送到A寄存器。传送操作是一个复制过程,不改变源寄存器的内容,无条件传送的操作一般与时间无关,在一定条件下发生。
(2)条件传送语句。
条件传送语句的格式为:
X:A←B
其中X是传送条件,传送条件通常由控制器给出的逻辑函数指出。如:
XY:A←B
表示的含义是:当X=Y=1时,将B寄存器内的内容存入A寄存器。
在数字系统中所涉及的基本算术操作是加、减、取反和移位。将其语句格式列表如表10-6所示。
表10-6 算术运算操作语句格式
语句格式 |
语句含义 |
语句格式 |
语句含义 |
F←A+B |
将A与B之和传送给F |
F←A+B'+1 |
将A与B的补码的和传送给F |
F←A-B |
将A与B之差传送给F |
A←A+1 |
加1运算 |
B←B'+1 |
求寄存器B存数的补码 |
A←A-1 |
减1运算 |
B←B' |
求寄存器B存数的反码 |
|
|
逻辑操作是两个寄存器对应之间的操作,包括与、或、非,为了区别于算术运算符号,这里的与、或、非分别用符号“∧”、“∨”、“'”来表示。逻辑操作的语句格式如表10-7所示。
表10-7 逻辑操作的语句格式
语句格式 |
语句含义 |
语句格式 |
语句含义 |
F←A' |
非操作 |
F←A∨B |
或操作 |
F←A∧B |
与操作 |
F←AB |
异或操作 |
移位操作分为向左移位和向右移位两种。
(1)向左移位操作的语句:
A←shlA,A[0]←0
(2)向右移位操作的语句:
A←shrA,A[3]←0
(3)循环左移操作语句:
A←shlA,A[0]←A[3]
(4)循环右移操作语句:
A←shrA,A[3]←A[0]
RTL还可以描述系统的输入/输出操作,如果要将输入线X的数据传送到A寄存器,则表示为:
A←X
把寄存器A的各位传送到输出线Z时,则表示为:
Z=A
该语句意味着寄存器输入与输出线Z之间直接相连。
(1)无条件转移语句:
→(S)
表示下一句转向编号为S的语句继续执行。
(2)条件转移语句:
(F1,F2,…,Fn)/(S1,S2,…,Sn)
其中F为系统函数的变量,取值为0或1。当Fi=1时,执行标号为Si的语句,当所有的Fi均为0时,顺序执行语句。
(3)空操作语句:
→NULL
表示不进行任何操作,而是利用它得到一个时钟的延迟时间,然后顺序执行下一条语句。
RTL语句可以直接翻译成逻辑电路。寄存器是由触发器构成的,寄存器的每一位对应一个触发器,在寄存器传送语言中,箭头指向的是触发器的新态,于是可以直接根据RTL语句写出触发器的新态方程,从而实现硬件连接。
【例10-5】 设有两个由D触发器组成的4位寄存器,需实现以下逻辑功能:
A←A'Gb,B←X
设计该电路。
解:根据题目中RTL语句所描述的逻辑功能,可以写出触发器Ai和Bi的状态方程为:
QAi*=QAi'gQBi
QBi*=Xi
其中,i=1,2,3,4。
又根据D触发器的状态方程:
Q*=D
可以得到驱动方程:
DAi=QAi'gQBi
DBi=Xi
由此可以画出逻辑电路图,如图10-18所示。
图10-18 4位寄存器逻辑电路图