寄存器传输级

在数位电路设计中，寄存器传输级（）是一种对同步数位电路的抽象模型，这种模型是根据数字信号在硬件寄存器、存储器、组合逻辑装置和总线等逻辑单元之间的流动，以及其逻辑代数运作方式来确定的。

寄存器传输级抽象模型在诸如Verilog和VHDL的硬件描述语言中被用于创建对实际电路的高层次描述，而低层次描述甚至实际电路可以通过高层次描述导出。在现代的数位设计中，寄存器传输级上的设计是最典型的工作流程。逻辑合成工具可以根据寄存器传输级的描述构建更低级别的电路描述。

 寄存器传输级描述 
|图中所示为一个能够按照时间脉冲交替改变输出逻辑电平的简单电路。左边的反相器（带圆点的三角形）构成了组合逻辑（）部分，而右边的寄存器（）则保持当前的状态。
一个同步电路由两个主要元素构成：寄存器和组合逻辑电路。寄存器通常由D触发器组成，按照给定时间脉冲来进行同步时序操作，这个部分使得时序逻辑电路具有记忆的功能。组合逻辑电路则由逻辑门组成，提供电路的所有逻辑功能。

例如，一个非常简单的同步电路如右图所示。寄存器的输出端，通过一个反相器连接到其输入端，这样，每遇到一个时间脉冲的上升沿訊號，输出端的逻辑电平改变一次。在这个电路中，反相器构成了组合逻辑电路部分。

如果使用硬件描述语言来设计数字集成电路，设计人员通常并不在晶体管级进行设计，而是在更高的抽象级别（层次）进行工程设计。在硬件描述语言中，设计人员只需要声明寄存器（就像在计算机编程语言中声明变量一样），然后使用类似程式語言中的条件（if...then...else）、选择（case）等运算符来描述组合逻辑的功能。我们把上述这样级别的设计称为寄存器传输级的设计。这个术语主要是指我们的关注点为訊號在寄存器之间的流动。

例如，上面提到过的这个例子可以用下面的VHDL程式来描述：

D <= not Q;

process(clk)
begin
    if rising_edge(clk) then
        Q <= D;
    end if;
end process;

通过使用电子设计自动化工具来完成逻辑综合，上面的程式描述可以直接被“翻译”为等效的硬體配置，这一步骤可以在专用集成电路或现场可编程逻辑门阵列上实现。逻辑综合工具软件一般还能够将复杂的逻辑进行简化，从而降低成本。

在寄存器传输级，可以分成幾種電路。如果寄存器的输出端和输入端存在环路，这样的电路被称为“状态机”，常被归类到时序逻辑电路中。如果寄存器之间有连接，而没有上述的“回环”，则这样的电路结构被称为“流水线结构”。

 在电路设计流程中的地位 
寄存器传输级流程是集成电路设计（）中进行逻辑设计的步骤。

一个寄存器传输级的描述通常会通过逻辑综合工具转换成逻辑门级电路连线网表的描述。然后，这一步的成果再经过布线等步骤，得到物理的电路。

这一过程通常还会使用逻辑模擬工具验证寄存器传输级描述的功能是否正确。

 参考文献 

R