0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

芯片设计里的Multi-Bit FF方法讨论

sanyue7758 来源:艾思后端实现 2023-05-08 09:34 次阅读

在现代的芯片设计里边,工程师在优化功耗和面积上无所不有其极,这里讨论的multi-bit FF 就是其中的一种方法或者称之为一种流程。

MBIT FF vs signle bit FF

Multi-bit顾名思义就是将通常单bit的FF,封装为一个多bit的FF,下面一起来看一下他们之间的异同:

单bit的asyn-clear scan-FF

b8b64c7c-ed1d-11ed-90ce-dac502259ad0.png

针对这种单bit的asyn-clear scan-FF,vendor提供了几种多bit的asyn-clear scan-FF,

multi-bit2 asyn-clear scan-FF

b8e0964e-ed1d-11ed-90ce-dac502259ad0.png

multi-bit4 asyn-clear scan-FF

b90f1ae6-ed1d-11ed-90ce-dac502259ad0.png

multi-bit6 asyn-clear scan-FF

b9372e82-ed1d-11ed-90ce-dac502259ad0.png

multi-bit8 asyn-clear scan-FF

b958565c-ed1d-11ed-90ce-dac502259ad0.png

从cell的原理图上看,multi-bit和signle-bit的区别很小,可以简单理解为将多个signle-bit的FF并排放到了一起,对于scan chain,也天然的安装顺序连接到一起,简单总结如下

b9a45fc0-ed1d-11ed-90ce-dac502259ad0.png

可以看到,这里会有三类pin是共享关系

clock pin

clean/reset pin

SI/SE pin

所以:由于scan是后插入的,这个对于multi-bit的封装不敏感外,当且仅当某一组FF在功能上的clock和reset-clear是共享driver的时候,这一组FF才可以被二次封装成为multi-bit FF

MBIT的优势

由于MBIT对一些common pin的共享机制,由此带来的优势有:

基于共享机制,晶体管级别的面积优化

common pin的使用,减少layout连线损耗

clock tree的leaf变少,降低clock tree长度和功耗

在cell级别,以T12工艺为例,同样功能(Scan D Flip-Flop with Async Clear, drive strenth: X1)的signle bit和MBIT的比较如下(PS:用多个单bit 直接搭建多bit 结构进行功耗面积的比对)

b9ddcd1e-ed1d-11ed-90ce-dac502259ad0.png

如果将signle bit 例化多次进行横比,MBIT大体上都会在面积上:7.4% ~ 12.96%的提高幅度,功耗上:-3.93% ~ 7.32%左右的提升 在了解了multi-bit的机理后,这里需要一起梳理一下multi-bit的流程。

MBIT的流程

RTL 阶段对MBIT的推进

在读入RTL之前,DC里边通过配置 hdlin参数:hdlin_infer_multibit 来对管理multi-bit的RTL阶段的识别,

b9f1f55a-ed1d-11ed-90ce-dac502259ad0.png

上述三种方式,仅仅影响RTL mapping阶段的multi-bit的识别和创建,言下之意:只对第一个compile_ultra (mapping)的结果有影响。 这里推荐的方案是:default_none

如果使用never:这个会完全忽略前端设计人员的意图,可能会丢失directives的信息传递

如果使用default_all:这个会导致DC 会有一些自己研判的方法,会将multi-bit进行自己研判的替换,这里不会丢失设计者的directives,但是可能会对一些总线或者二维数组进行替换,这里会导致两类问题

timing:在第一圈compile_ultra的时候,timing信息并非完整,此时进行multi-bit的替换,势必会导致后续时需优化的障碍。过早打包可能还需要二次拆包

register的命名行为。如果RTL是这样的二维数组定义


reg [7:0] mem[255:0] 正常情况下,DC会把这类二位数组mapping成:

mem_reg[255][7] mem_reg[255][6] ...... mem_reg[255][0] ...... mem_reg[0][7] mem_reg[0][6] ...... mem_reg[0][0] 如果,这个时候如果使用了default_all,DC analyze会对此类数组格式进行multi-bit封装,最终DC compile_ultra生成的instance名字会变得比较奇怪,如下:

# use 4bit register bank mem_reg[255][7:4] ...... mem_reg[255][3:0] ...... mem_reg[0][7:4] ...... mem_reg[0][3:0]

这种命名方式会给formal带来一些的障碍,也有可能带来潜在的timing 隐患 小结:在RTL解析阶段,把RTL directives和hdlin_infer_multibit =default_none结合使用,既尊重原著意思,也可以实现比较可控的multi-bit 替换。如果设计人员不确定哪些一定或者一定不需要去做multi-bit 替换,这里依然使用hdlin_infer_multibit =default_none,这样在第一个RTL步骤,就之后对于RTL 设计人员的需求,在RTL 分析时进行multi-bit 绑定,但是并不一定会产生替换,前提是timing和控制都能满足要求。

R2G里的MBIT的流程

从上面的描述可以看到,MBIT的替换主要是为了面积/功耗收益的同时,时序不受影响(不出violation)。所以在physical aware 的DCT完成后,进行替换,是比较合适的时机:

mapping和逻辑优化基本完成:ICG的影响已经带入,MBIT的控制共享比较清晰

由于是physical aware的DCT,时序信息也基本清楚,这里整体进行MBIT替换可以最大限度的利用MBIT的优势,如果后期(APR)有时序压力,可以使用de-banking来进行降解MBIT,也是有二次操作空间

compile_ultra可以根据需求进行MBIT替换,但是需要遵循下列规则:

ba196cb6-ed1d-11ed-90ce-dac502259ad0.png

基于上述原理,用户可以使用下面的简单流程在综合里边进行MBIT的替换

ba98a544-ed1d-11ed-90ce-dac502259ad0.png

对MBIT操作的核心命令是:identify_register_banks,这个命令在第一步compile_ultra完成后,可以对DCT/DCG里的FF进行MBIT替换,除过cell之间的相同clock和控制位,identify_register_banks命令会将物理位置相近的FF进行MBIT替换,所以,从S家的R2G策略上将,为了保持良好的继承性,用户需要使用DCG流程+ ICC/ICC2 DEF flow(read_def + place_opt -skip_initial_placement)来完成MBIT的替换应用。

只有这样才能把DCG替换FF的物理优势继承下来 当然,用户也可以在ICC/ICC2 进行MBIT的替换,但是由于替换策略都是类似的,也是一定要有cell的初始布局后,才能进行替换,基本流程如下:

bac918c8-ed1d-11ed-90ce-dac502259ad0.png
这里的流程近似可以看作把place_opt进行了拆分,在第一步coarse placement 后,加入了MBIT的替换,用户需要手动sorce 这个 脚本(和identify_register_banks类似的用法)进行MBIT替换,而后再继续执行place_opt剩余的步骤。 无论是在synthesis还是layout阶段,MBIT替换的方式主要是基于两点:

timing

物理位置

只有在timing 有余量,并且物理位置接近的register,才会触发工具的MBIT替换动作,这样可以最大限度的降低对当前数据库的影响,同时也能利用起MBIT的面积和功耗优势

DC 中 MBIT 替换实例

以DCG为例,在第一步compile_ultra完成后,使用identify_register_banks进行MBIT 替换

替换前:

badf7e1a-ed1d-11ed-90ce-dac502259ad0.png

替换后:可以看到,新创建的MBIT位于原始两个single bit的中间

bb26aff6-ed1d-11ed-90ce-dac502259ad0.png

命令运行日志:

bb86eab0-ed1d-11ed-90ce-dac502259ad0.png

这里会打印:

single bit cell 删除信息

MBIT pin 连接信息

可以看到 这里的CLK/RB 等控制信号都是需要 同源的,工具也有内建的防错机制,如果目标single bit的控制端有不同,会以PSYN-1203 的告警进行打印,确保功能不被影响:

bba4e542-ed1d-11ed-90ce-dac502259ad0.png

注:用户可以通过set_multibit_option 来控制compile_ultra 命令的行为,这样在综合增量优化步骤里边,工具可以根据set_multibit_option配置的情形,来做banking和de-banking的操作。

MBIT的命名和管脚映射

工具是通过 identify_register_banks 产生MBIT的替换脚本,对于总线,通常是按照升序的策略进行命名的,当然,由于这个是后处理脚本,用户也可以自己进行修改,但是通常没必要改变默认行为,以免对后续formal产生影响。简单命令如下:

bbbc6d20-ed1d-11ed-90ce-dac502259ad0.png

对于合成后的MBIT cell,对应的Q输出,也是沿用升序的方式:


A[0].Q -> MBIT_A[0]__A[1]__A[2]__A[3].Q1 A[1].Q -> MBIT_A[0]__A[1]__A[2]__A[3].Q2 A[2].Q -> MBIT_A[0]__A[1]__A[2]__A[3].Q3 A[3].Q -> MBIT_A[0]__A[1]__A[2]__A[3].Q4 MBIT通过这样的命名方式,对于后续的formal mapping和gate-sim等工作是有一定帮助的。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片设计
    +关注

    关注

    15

    文章

    897

    浏览量

    54416
  • RTL
    RTL
    +关注

    关注

    1

    文章

    377

    浏览量

    59068
  • DCT
    DCT
    +关注

    关注

    1

    文章

    55

    浏览量

    19737
  • PIN管
    +关注

    关注

    0

    文章

    35

    浏览量

    6222

原文标题:芯片设计里的Multi-Bit FF探究

文章出处:【微信号:处芯积律,微信公众号:处芯积律】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    GC4344 24位音频DAC 24位音频数模转换芯片 CS4344替代料GC4344

    4344 是一款立体声音频数模转换芯片,内部集成数字插值滤波器、multi-bit 数模转换器、输出模拟滤波器。4344 支持大部分的音频数据格式。 4344是基于一个线性模拟低通滤波器的四阶
    发表于 04-21 15:29

    24bit,192KHz 双通道数模转换电路(MS4344)

    的 音频数据格式。MS4344基于一个带线性模拟低通滤波器的四阶 multi-bitΔ-Σ调制器,而且本芯片可以通过检测信号频率和主 时钟频率,在2KHz 和200KHz 之间自动调节采样率
    发表于 01-10 17:10

    瑞盟MS5281D-24bit/192KHz双通道差分音频数模转换芯片-颂扬恒(瑞盟一级代理)

    的四阶multi-bitΔ-Σ调制器,而且本芯片可以通过检测信号频率和主时钟频率,在2KHz 和200KHz之间自动调节采样率。 MS5281D可以工作在3.3V和5V下。这些特性使它成为DVD播放
    发表于 12-29 11:22

    MS4344的相关资料下载

    multi-bitΔ-Σ调制器,而且本芯片可以通过检测信号频率和主时钟频率,在2KHz 和200KHz 之间自动调节采样率。MS4344可以工作在3.3V和5V下。这些特性使它成为DVD播放 解码器、数字通信设备等无线设备的理想选择。MS4344 采用 MSOP10 封
    发表于 01-07 07:19

    GC4344 是一款立体声数模转换芯片,24位DAC

    GC4344 是一款立体声数模转换芯片,内含插值滤波器、multi-bit 数模转换器、输出模拟滤波器。GC4344 支持大部分的音频数据格式。GC4344 基于一个带线性模拟低通滤波器的四阶
    发表于 11-06 14:34

    ADS8422 pdf datasheet(16位4MSPS

    includes a 16-bit capacitor-based multi-bit SAR A/D converter with inherent sample and hold. This converter includes a full 16-
    发表于 08-01 00:48 66次下载

    立体声数模转换芯片MS4344规格书

    multi-bitΔ-Σ调制器,而且本芯片可以通过检测信号频率和主 时钟频率,在2KHz 和200KHz 之间自动调节采样率。 MS4344可以工作在3.3V和5V下。这些特性使它成为DVD播放 解码器、数
    发表于 01-14 10:21 7次下载

    立体声数模转换芯片MS5281D规格书

    的四阶multi-bitΔ-Σ调制器,而且本芯片可以通过检测信号频率 和主时钟频率,在2KHz 和200KHz 之间自动调节采样率。 MS5281D可以工作在3.3V和5V下。这些特性使它成为DVD 播放解
    发表于 01-14 10:23 5次下载

    DP4344立体声2通道输出数模转换芯片简介

    DP4344是一款完整的2通道输出数模转换芯片, 内含插值滤波器、Multi-Bit 数模转换器、输出模拟滤波器,并支持大部分的音频数据格式。基于一个带线性模拟低通滤波器的四阶 Multi-BitΔ∑调制器,自动检测信号频率和主
    的头像 发表于 07-26 14:45 1279次阅读
    DP4344立体声2通道输出数模转换<b class='flag-5'>芯片</b>简介

    Multi-bit Flip Flop(MBFF)修复技巧

    对于一些Timing比较Critical的Path,如果发现上面有一些Multi-bit Flip Flop(MBFF),那么可以考虑用这种方式来修复。
    的头像 发表于 11-09 10:31 2670次阅读

    低功耗设计之multi-bit cell技术简介

    所谓multi-bit cell,可以理解成把多个完全相同的cell合并在一个cell里,如下图所示,集成2bitmulti-bit cell的clock inverter是共享的,那么可以节省2个clock inverter
    的头像 发表于 02-12 10:52 3439次阅读

    DP7344 192K 双通道24位DA转换器芯片

    产品概述 DP7344 是一款完整的2 通道输出数模转换芯片, 内含插值滤波器、Multi-Bit 数模转换器、输出模拟滤波器,并支持大部分的音频数据格式。 DP7344 基于一个带线性模拟
    发表于 03-30 09:38 361次阅读

    MS4344—24bit,192KHz 双通道DAC,兼容CS4344

    低通滤波器的四阶multi-bitΔ-Σ调制器,而且本芯片可以通过检测信号频率和主 时钟频率,在2KHz 和200KHz 之间自动调节采样率。       MS4344可以工作在3.3V和5V下。这些
    发表于 05-17 19:09 703次阅读
    MS4344—24<b class='flag-5'>bit</b>,192KHz 双通道DAC,兼容CS4344

    芯片设计里的Multi-Bit FF探究

    在现代的芯片设计里边,工程师在优化功耗和面积上无所不有其极,这里讨论multi-bit FF 就是其中的一种方法或者称之为一种流程。
    发表于 06-09 16:57 895次阅读
    <b class='flag-5'>芯片</b>设计里的<b class='flag-5'>Multi-Bit</b> <b class='flag-5'>FF</b>探究

    立体声数模转换芯片GC4344的性能有哪些?

    GC4344 是一款立体声数模转换芯片,内含插值滤波器、multi-bit 数模转换器、输出模拟滤波器。GC4344 支持大部分的音频数据格式。GC4344 基于一个带线性模拟低通滤波器的四阶
    的头像 发表于 12-06 15:15 320次阅读
    立体声数模转换<b class='flag-5'>芯片</b>GC4344的性能有哪些?