欢迎来到天天文库
浏览记录
ID:57418604
大小:1.98 MB
页数:170页
时间:2020-08-18
《数字IC系统RTL实现课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章 数字IC系统的逻辑设计—RTL实现3.1RTL设计基础3.2RTL设计指南(Verilog)3.1 RTL设计基础3.1.1 同步电路设计要求RTL设计都采用同步电路设计方式。了解同步电路设计要求,是进行RTL设计的第一步。图3.1给出了一个同步电路的示例。图3.1 同步电路示例组合逻辑实现设计所需的功能。例如,图中的组合逻辑可能是乘法、编码器等复杂的逻辑。寄存器用于暂存数据,它由时钟控制,只有当时钟进行有效跳变时,才将新的数据锁存起来,否则数据一直保持原值。时钟相当于同步电路中的“指挥”。
2、对于图3.1所示的例子,假设该电路都采用时钟的上升沿进行锁存,时钟周期为8ns。从0时刻开始,时钟变为高电平。第一个寄存器中,经过很短的时间(例如0.2ns)到达Ri的Q端,再从Q端送到组合逻辑的输入,跟其他的信号一起进行逻辑操作。这种逻辑操作必须在规定的时间内完成(满足时钟周期的要求)。假设组合逻辑的结果在4ns后稳定下来,则在4.2ns这一时刻,Rf输入端的数据会稳定下来。这时候电路暂时“静止下来”。然后到8ns这一时刻,第二个时钟沿到来,组合逻辑的输出被第二个寄存器锁存,与此同时,新的数据会被送到
3、第一个寄存器。这个过程会一直持续下去。由此可见,在图3.1所示的电路中,时钟保证了电路能按照需要动作,而不是杂乱无章地各行其是。下面先简单介绍一下时钟。时钟一般由晶振产生,或者由外部输入,如果需要,还需要用锁相环进行倍频、移相等操作。实际的时钟不可能是理想的,也就是说,时钟不可能一直保持同一频率,时钟边沿不可以“直上直下”。设计者要根据芯片的要求对时钟提出要求,并根据时钟规范进行设计。例如,假设需要将时钟域A中的数据传递到时钟域B。数据由clka生成,被clkb采样。clka与clkb是异步时钟,周期
4、都是10ns,时钟频率最大为2×10-4。这时候我们需要设计一个异步FIFO。这个FIFO的写入时钟为clka,读出时钟为clkb。假设每次传送的最大包为10KB,FIFO宽度为8位,那么这个FIFO的深度应该是多少呢?考虑最坏情形,时钟clka与clkb最大相差为4×10-4。FIFO的读指针与写指针至少要相差:4×10-4×10K≈4。这样,FIFO的深度至少为8字节。接下来,我们对时序电路中最关键的组成部分——寄存器进行说明。一个寄存器的结构如图3.2所示。图3.2 寄存器的结构图3.3 寄
5、存器的功能示意图寄存器的功能如图3.3所示。由图3.3可知,该寄存器在时钟的跳变沿锁存数据,然后数据会一直保持,直到下一个跳变沿。寄存器要正常工作,必须保证D端数据的变化与时钟的有效沿不能距离太近,否则可能会锁存错误的数据。 在综合库中,规定了数据变化端跟时钟跳变沿最短的时间要求,称为建立时间约束与保持时间约束。建立时间与保持时间是时序电路设计中最重要的两个概念。建立时间规定,在时钟沿到达前的某段时间内,数据必须稳定;保持时间定义了在时钟沿之后的某段时间之后,数据才能发生变化。图3.4给出了建立时
6、间与保持时间的示例。图3.4 建立时间与保持时间一般来说,设计中路径的延时过大,超出设计要求,会引起建立时间的违例。如果设计中时钟树做得不够好,时钟偏移(skew)过大,则会引起保持时间违例。对于一个寄存器来说,除了数据端与时钟端有时序要求,异步复位端与时钟端之间也有时序要求。假设一个寄存器是异步复位的,复位信号低电平有效。当复位信号为低电平时,寄存器被初始化。当复位信号跳高时,寄存器在时钟跳变沿锁存新的数据。如果异步复位信号跳高的时刻距离时钟有效沿太近,那么寄存器可能继续保持复位状态,也可能会锁存
7、新数据,这样,就可能发生锁存错误。因此,有必要定义时钟有效沿与异步复位无效沿之间的时序要求,这就是recovery/removal的时序要求,如图3.5所示。图3.5recovery/removal寄存器中建立时间/保持时间、recovery/removal的时序要求,对设计的最大组合逻辑延时、时钟树的构造、复位树的构造都提出了要求。复位树、时钟树一般由后端工具进行处理。对RTL设计者来说,最需关注的是建立时间的问题。设计中的时序违例通过静态时序分析工具可以检查出来。本书第7章对静态时序分析进行了说明,
8、这里不再详述。3.1.2 RTL设计步骤如何进行RTL设计?RTL设计并非仅仅编写代码那么简单。在RTL设计前,要进行如下工作:(1)仔细阅读设计规范,了解设计的要求,例如芯片的I/O采用何种标准,有多少PIN脚,采用何种封装形式,时序要求是多少,是否需要与其他已有的产品兼容等,规范越清楚越好。(2)了解芯片中是否用到其他IP,这些IP是否满足功能与性能的要求,这些IP是否经过了验证,如何与这些IP进行接口,这些IP是软核还是硬核。
此文档下载收益归作者所有