华为同步电路设计规范(full permission)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

深圳市华为技术有限公司

研究管理部文档中心

文档编号 产品版本 密级

V1.0 秘密

产品名称:同步电路设计技术及规则

共27页

同步电路设计技术

及规则

(仅供内部使用)

FPGA GROUP

文 档 作 者: 周志坚

日期:1999/11/18 研 究 部: 日期: 文档管理员:

日期:

深圳市华为技术有限公司

版权所有 不得复制

日期修订版本描述作者1999/11/18 1.00 初稿完成周志坚

目 录

1 设计可靠性4

2 时序分析基础4 3同步电路设计5

3.1同步电路的优越性5

3.2 同步电路的设计规则6

3.3 异步设计中常见问题及其解决方法6

3.4 不建议使用电路17 4SET和RESET信号处理18

5 时延电路处理19

6 全局信号的处理方法20

7 时序设计的可靠性保障措施24 8ALTERA参考设计准则25

同步电路设计技术及规则

1 设计可靠性

为了增加可编程逻辑器件电路工作的稳定性,一定要加强可编程逻辑器件设计的规范要求,要尽量采用同步电路设计。对于设计中的异步电路,要给出不能转换为同步设计的原因,并对该部分异步电路的工作可靠性(如时钟等信号上是否有毛刺,建立-保持时间是否满足要求等)作出分析判断,提供分析报告。

2 时序分析基础

电路设计的难点在时序设计,而时序设计的实质就是满足每一个触发器的建立/保持时间的要求。

REG2(D)

REG2(Q)

图1.1

如上图所示,以REG2为例,假定

触发器的建立时间要求为:T_setup,保持时间要求为:T_hold,

路径①延时为:T1,路径②延时为:T2,路径③延时为:T3,

时钟周期为:T_cycle,

Ts =(T_cycle + △T)-T1,Th =T1-△T,

令 △T =T3-T2,则

条件1.如果T_setup < Ts ,即 T_setup < (T_cycle + △T)-T1,这说明信号比时钟有效沿超过T_setup 时间到达REG2的D端,满足建立时间要求。反之则不满足;

条件2.如果T_hold < Th ,即T_hold < T1-△T ,这说明在时钟有效沿到达之后,信号能维持足够长的时间,满足保持时间要求。反之则不满足。

从条件1和2我们可以看出,当△T > 0 时,T_hold受影响;当△T < 0 时,T_setup 受影响。

如果我们采用的是严格的同步设计电路,即一个设计只有一个CLK,并且来自时钟PAD或时钟BUFF (全局时钟),则△T对电路的影响很小,几乎为0;如果采用的是异步电路,设计中时钟满天飞,无法保证每一个时钟都来自强大的驱动BUFF(非全局时钟),如下图所示,则△T影响较大,有时甚至超过人们想象。这就是为什么我们建议采用同步电路进行设计的重要原因之一。

CLK

图1.2

3 同步电路设计

3.1 同步电路的优越性

1.同步电路比较容易使用寄存器的异步复位/置位端,以使整个电路有一个确定的初始状态;

2.在可编程逻辑器件中,使用同步电路可以避免器件受温度,电压,工艺的影响,易于消除电路的毛刺,使设计更可靠,单板更稳定;

3.同步电路可以很容易地组织流水线,提高芯片的运行速度,设计容易实现;

下图是一个设计中所要准备采用的电路,该设计采用Xilinx的FPGA器件4062xla来实现,工作频率是32.768MHz(即图中CLK频率)。设计原打算在每隔60ns输出一个数据,即DATA。然而,我们在设计之前,考虑到256x7的同步RAM延时可能比较大,如果在加上其后的同步RAM延时的话,估计在60ns 之内很难完成。该部分电路是整个设计中的一个关键路径,因此,我们在进行具体设计之前,先对这种电路结构进行了验证,事实证明我们的担心是对的。正确的做法是,采用流水线方法,在256x7的RAM 之后再加一个触发器,每个RAM都按60ns的速度读取数据,整个流程滞后60ns输出DATA。其它相关信号(在其它模块中)也随之滞后60ns输出。

CLK

图1.3

4.同步电路可以很好地利用先进的设计工具,如静态时序分析工具等,为设计者提供最大便利条件,便于电路错误分析,加快设计进度。

1.1 同步电路的设计规则

1.尽可能在整个设计中只使用一个主时钟,同时只使用同一个时钟沿,主时钟走全局时钟网络。

2.在FPGA设计中,推荐所有输入、输出信号均应通过寄存器寄存,寄存器接口当作异步接口考虑。

3.当全部电路不能用同步电路思想设计时,即需要多个时钟来实现,则可以将全部电路分成若干局部同步电路(尽量以同一个时钟为一个模块),局部同步电路之间接口当作异步接口考虑。

4.当必须采用多个时钟设计时,每个时钟信号的时钟偏差(△T)要严格控制。

5.电路的实际最高工作频率不应大于理论最高工作频率,留有设计余量,保证芯片可靠工作。

6.电路中所有寄存器、状态机在单板上电复位时应处在一个已知的状态。 1.2 异步设计中常见问题及其解决方法

异步电路设计主要体现在时钟的使用上,如使用组合逻辑时钟、级连时钟和多时钟网络;另外还有采用异步置位、复位、自清零、自复位等。这些异步电路的大量存在,一是增加设计难度,二是在出现错误时,电路分析比较困难,有时会严重影响设计进度。

很多异步设计都可以转化为同步设计,对于可以转化的逻辑必须转化,不能转化的逻辑,应将异步的部分减到最小,而其前后级仍然应该采用同步设计。下面给出一些异步逻辑转化为同步逻辑的方法:

1.组合逻辑产生的时钟

Q

D

组合

逻辑

.

.输

图1.4 组合逻辑产生的时钟

组合逻辑的时钟如果产生毛刺,易使触发器误翻转。 2.行波计数器/行波时钟

Q

D

Q

D

Q

D

clk

Q1Q2

Q0

·

·

··

·

图1.5 行波计数器

相关文档
最新文档