寄存器传输级
在数位电路设计中,寄存器传输级(英语:register-transfer level, RTL)是一种对同步数位电路的抽象模型,这种模型是根据数码信号在硬件寄存器、存储器、组合逻辑装置和总线等逻辑单元之间的流动,以及其逻辑代数运作方式来确定的。
寄存器传输级抽象模型在诸如Verilog和VHDL的硬件描述语言中被用于创建对实际电路的高层次描述,而低层次描述甚至实际电路可以通过高层次描述导出。在现代的数位设计中,寄存器传输级上的设计是最典型的工作流程。[1]逻辑合成工具可以根据寄存器传输级的描述构建更低级别的电路描述。[2]
寄存器传输级描述
[编辑]![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Register_transfer_level_-_example_toggler.svg/300px-Register_transfer_level_-_example_toggler.svg.png)
一个同步电路由两个主要元素构成:寄存器和组合逻辑电路。寄存器通常由D触发器组成,按照给定时间脉冲来进行同步时序操作,这个部分使得时序逻辑电路具有记忆的功能。[3]:113组合逻辑电路则由逻辑门组成,提供电路的所有逻辑功能。
例如,一个非常简单的同步电路如右图所示。寄存器的输出端,通过一个反相器连接到其输入端,这样,每遇到一个时间脉冲的上升沿讯号,输出端的逻辑电平改变一次。在这个电路中,反相器构成了组合逻辑电路部分。
如果使用硬件描述语言来设计数字集成电路,设计人员通常并不在晶体管级进行设计,而是在更高的抽象级别(层次)进行工程设计。在硬件描述语言中,设计人员只需要声明寄存器(就像在计算机编程语言中声明变量一样),然后使用类似编程语言中的条件(if...then...else)、选择(case)等运算符来描述组合逻辑的功能。我们把上述这样级别的设计称为寄存器传输级的设计。这个术语主要是指我们的关注点为讯号在寄存器之间的流动。
例如,上面提到过的这个例子可以用下面的VHDL程式来描述:
D <= not Q;
process(clk)
begin
if rising_edge(clk) then
Q <= D;
end if;
end process;
通过使用电子设计自动化工具来完成逻辑综合,上面的程式描述可以直接被“翻译”为等效的硬件配置,这一步骤可以在专用集成电路[3]:257或现场可编程逻辑门阵列[3]:146-147上实现。逻辑综合工具软件一般还能够将复杂的逻辑进行简化,从而降低成本。
在寄存器传输级,可以分成几种电路。如果寄存器的输出端和输入端存在环路,这样的电路被称为“状态机”,常被归类到时序逻辑电路中。如果寄存器之间有连接,而没有上述的“回环”,则这样的电路结构被称为“流水线结构”。
在电路设计流程中的地位
[编辑]寄存器传输级流程是集成电路设计(Integrated circuit design)中进行逻辑设计的步骤。
一个寄存器传输级的描述通常会通过逻辑综合工具转换成逻辑门级电路连线网表的描述。然后,这一步的成果再经过布线等步骤,得到物理的电路。
这一过程通常还会使用逻辑模拟工具验证寄存器传输级描述的功能是否正确。
参考文献
[编辑]- ^ Frank Vahid. Digital Design with RTL Design, Verilog and VHDL 2nd. John Wiley and Sons. 2010: 247. ISBN 978-0-470-53108-2.
- ^ Samir Palnitkar. Verilog HDL: A Guilde to Digital Design and Synthesis. 电子工业出版社. : 10. ISBN 7-121-00468-2.
- ^ 3.0 3.1 3.2 邓元庆,关宇,贾鹏,石会. 数字设计基础与应用(第2版). 清华大学出版社. ISBN 978-7-302-21406-9.