合成的时间模型和功率模型

Timing modeling

通过布尔或者代数转换后达到最小化,需要去处理电路延时。
引入几个概念:

  1. 传播时间 di
  2. 数据准备 到达时间 ti
  3. 数据所需时间 ti’
  4. slack si

举例一个逻辑网络:
在这里插入图片描述
先知道传播时间:
在这里插入图片描述
数据准备到达时间:
在这里插入图片描述
数据所需时间:
在这里插入图片描述
计算slack:
在这里插入图片描述
所有slack为0的节点组成拓扑关键路径(topological critical path)

假路径检测

在这里插入图片描述

静态时间分析(static timing)

知道了到达时间和所需时间,然后考虑slack。我们可以根据slack定义关键拓扑路径,但是不一定是真。也就是说,路径不一定会传播事件,并引入sensitization概念。
比如下面的网络:
在这里插入图片描述
因为不能传播事件,所以这是个假关键路径
在这里插入图片描述
布尔:慢但最佳
结构:更快但是不够理想

动态灵敏度

更精确

静态灵敏度

很虚弱

启发式方法:technology mapping

将问题分为三个阶段:

  1. Decomposition
  2. Partitioning
  3. Covering
    第一步:先使用标准库
    在这里插入图片描述
    第二步:根据INV和NAND2来组成其他门逻辑像AND2,OR2,NOR2,AOI21等。
    第三步:一共有两种cover:
    一个是寻找最小面积:
    在这里插入图片描述
    一个是寻找最小延时:
    在这里插入图片描述

Power Modeling

Switching activity

例如给一个逻辑门NOR:假设输入逻辑1的几率为0.5,逻辑0的几率为0.5.输出逻辑为1的概率为0.25,输出逻辑为0的概率为0.75.
在这里插入图片描述
Esw = P(O = 0)P(O = 1) + P(O = 1)P(O = 0) = 3/8

例如一个布尔函数 f = abcd,所有输入都一样几率。
电路1:
在这里插入图片描述
对于节点O1:
p(O = 1) = 1/4 p(O = 0) = 3/4
Esw = 2 · p(O = 1) · p(O = 0) = 3/8
对于节点O2:
p(O2 = 1) = p(O1 = 1) · p(c = 1) = 1/41/2=1/8
p(O2 = 0) = 1 − p(O2 = 1) = 7/8
Esw = 2p(O2 = 0)p(O2 = 1) = 2
1/87/8=7/32
对于节点O3:
p(O3 = 1) = p(O2 = 1) · p(d = 1) = 1/8
12=1/16
p(O3 = 0) = 1 − p(O3 = 1) = 1 −1/16=15/16
Esw = 2p(O3 = 1) · p(O3 = 0) = 2
1/16*15/16=15/128

电路2:
在这里插入图片描述
每一个AND门输出O1和O2有相同的switching activity:
Esw =3/8

最后O3:
p(O3 = 1) = p(O1 = 1)p(O2 = 1) = 1/41/4=1/16
p(O3 = 0) = 1 − p(O3 = 1) = 1 −1/116=15/16
Esw = 2p(O3 = 1) · p(O3 = 0) = 2
1/16*15/16=15/128

对比总结:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值