2.2.2 寄存器传输级(RTL)描述
寄存器传输级描述(如图2.12所示)即RTL描述,就是在描述电路的时候,只需要关注寄存器本身,以及寄存器到寄存器之间的逻辑功能,而不用关心寄存器和组合逻辑的实现细节(具体用了多少逻辑门等)。EDA软件可以将RTL描述逻辑运算映射为具体的电路结构和逻辑器件。RTL描述既隐含了电路的大致结构,又与硬件实现无关。其最重要的特性是它是可综合可移植的一种描述方式。
在不同的约束条件(延时、面积、功耗等条件)下,RTL描述的VHDL程序极有可能得到不同的综合结果。因为,对于不同的约束条件,EDA工具会自动在元件库中寻找既满足逻辑要求又满足约束条件要求的元件组合。例如,若设计者选择芯片面积最小为约束条件,则EDA工具会自动给出既满足逻辑要求又满足面积最小约束条件的电路结构。所以,在不同的综合约束下,同一个源程序可能会得到结构大致相同、细节略有差异的硬件实现。
RTL描述的上述特点使它具有以下两种特别的用途:
①用于形成IP软核。其特点是与工艺完全无关,可以选择不同的物理实现方式。
②RTL描述允许选择不同的ASIC加工工艺线,即在不同的代工厂(Foundry)均可以加工实现同一功能的IC芯片。例如:原来在甲Foundry加工的某IC芯片,因故(如倒闭)甲Foundry不再能继续加工,必须换到乙Foundry加工。这时,可以用该IC芯片的RTL描述在乙Foundry的工艺库支持下重新进行综合并进行自动布局布线(APR),并重新制版、投片,从而在乙Foundry生产出相同功能的芯片。
图2.12 RTL级描述示意
【例2-10】一个五端口电路的RTL描述
根据例2-9的电路功能表和仿真波形图可以得到该五端口电路的真值表,如表2.3所示。
表2.3 一个五端口电路真值表
从上述真值表,可以归纳出该电路输入和输出之间的逻辑关系表达式为:
sum=x⊕y⊕cin
cout=(x⊕y)·cin+x·y
若令s=x⊕y,则:
sum=s⊕cin
cout=s·cin+x·y
从以上表达式可以看出:前述的“一个五端口电路”是一个全加器。
以上表达式给出了全加器中数据从输入端到输出端的运算过程。根据这些表达式可编写出全加器RTL描述的VHDL程序如下:
此程序中共有三个信号赋值语句,其中“<=”为信号赋值符,关键字AND、OR、XOR分别表示逻辑运算“与”、“或”、“异或”。
例2-10的程序描述反映出了一位全加器内部的数据流,属于RTL级建模。另外,全加器还可以由基本门电路的多种其他组合来实现,读者不妨试着自行练习。
一般情况下,EDA设计的第一步为行为级描述,其后才是RTL描述。我们刻意安排的【例2-9】一个五端口电路的行为级描述和【例2-10】一个五端口电路的RTL描述即是有意向读者揭示由行为级描述到RTL级描述是有一定工作量的,并且是需要相关知识的。根据【例2-9】行为仿真结果得出真值表,再根据对真值表的分析,得出信号间的逻辑关系,再根据逻辑表达式写出RTL程序,同时,分析出了该五端口电路是一个全加器。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。