加载中...
ViT模型片外访存分析
ViT模型片外访存分析对于ViT-tiny模型,其embedding大小为192。输入的patch_size为16,对于一张(256, 256)的图片而言,其总共包含1025个token(算上CLS token之后)。 考虑一个边缘端芯片,其总共的memory size一般<1Mb。若input_activation的memory与weight memory都为512Kb,且IA量化为8bit,weight量化为4bit的情况下。统计两个memory各自的访存。 ViT-tiny backbone layer计算$Q,K,V$将input feature map以170个token为1组放到片上,此时weight memory可以存下所有的QKV矩阵。生成的Q, K, V立即发出片外。总共的offchip access为 $ 170 \times 192 \times 8 \times 4 \times 6 = 11.95 Mb $,其中8为input activation (IA)的quantization bits, 4为load input feature map, off ...
Twin-8T CIM Macro
Twin-8T CIM Macro文章名:A Twin-8T SRAM Computation-in-Memory Unit-Macro for Multibit CNN-Based AI Edge Processors 这篇文章设计了一个基于电流的CIM Macro。提出了Twin-8T架构支持多比特输入(1,2,4)位。这些多bit的输入会被DAC转化为WL上不同的电平:VDDWL。而不同的VDDWL电平会在BL与BLB上产生不同的电流,这种架构面临的挑战是:当bit-level过多之后,bltline上的signal margin会降低。 上图(a)是一个典型的基于电流的CIM架构,在预充电阶段,BL会被充电到一个固定的电压,每个SRAM cell输出的电流分成多个权重位。多个权重位的累加可能导致单个cell的贡献信号更小,当更多的电流组合存在之后,相邻结果之间的差距($ \Delta LSB $)就会变小。另外,bitline上的电压必须高于一个write-margin (WM) 的电压值,以防止过低的BL电压改写cell中已经存好的值 (write disturb)。 这个 ...
关于FP-INT mixed神经网络加速器设计的work
关于FP-INT mixed神经网络加速器设计的work[清华大学 ISSCC2025] An 88.36TOPS/W Bit-Level-Weight-Compressed Large-Language-Model Accelerator with Cluster-Aligned INT-FP-GEMM and Bi-Dimensional Workflow Reformulation该工作对Transformer神经网络的activation采用了BF16量化,weight采用INT8量化。 因为BF16量化后的activation他们的exponent位存在很高的相似性。所以该work将每32个activation和它们对应的weight分为4个cluster。每个cluster中activation的exponent相差不超过3。之后每个cluster中的activation和weight单独做INT的乘法。对齐操作由对weight进行zero-extension完成,而不是对activation进行左移。而由于weight用了特殊的coding进行处理,zero exten ...
开关电容的charge injection与clock feedthrough
开关电容的charge injection与clock feedthrough当MOSFET关断后,沟道中的电荷会注入到MOSFET的source端。若source端连接着采样电容,那么该电容的采样电压便会不准确。这个误差被称为charge injection。另外在MOSFET 中,栅极金属和源极扩散区之间在栅氧化层之上的重叠区域形成的寄生电容(gate-source overlap capacitance)。这个寄生电容会和采样电容产生coupling,同样会造成采样电压的不准确,这个误差被称为clock feedthrough。 以sample-and-hold电路为例,当M1关断后,charge injection与clock feedthrough将会对hold Capacitor造成误差。 参考:J. Yu, ”CHARGE INJECTION AND CLOCK FEEDTHROUGH“
AMS仿真流程
AMS仿真流程
对定制CIM macro的建模分析
对定制CIM macro的建模分析
后端版图中的闩锁效应及解决方案
后端版图中的闩锁效应及解决方案该部分的详细知识在博客https://www.cnblogs.com/yeungchie/p/13961469.html已阐述的很清晰,这里根据自己的经验做一些补充。 对闩锁效应的简单解释:N-Well和P-Substrate之间形成了一个PN结。为了使得管子工作正常,该PN结需要被反向偏置形成二极管隔离区域。所以N-Well需要接VDD而P-Substrate需要接GND。 但如果工作期间,电荷在N-well中积聚。它会改变 P 沟道器件的电位差,从而可能导通这个PN结被正向偏置(Forwad Bias)。
Digital Bridge工程小结
Digital-Bridge工程小结自今年3月底,我全程高强度参与了 EPFL 脑机接口(Brain-Computer Interface, BCI)芯片的设计与开发工作。如今,项目已顺利收官。这是迄今为止我所参与过规模最大、复杂度最高的一次芯片流片任务,过程中经历了诸多挑战与反复。借此机会,我将这段宝贵的经验做一次系统性总结,以便今后进行自我复盘。 首先贴出该芯片的一些spec: 芯片面积为 $3.1\times3.2 mm^2$,其中数字部分占 $1.2\times3.2 mm^2$ ,包含定制的AFE(Analog Front End),(CIM)Compute-In-Memory模块以及台积电提供的Low power low leakage SRAM单元。 数字部分采用Digital-as-a-top流程进行设计,将各个CIM模块建模为包含时序信息的reference model,然后与其他模块进行联合仿真。 片上包含一个End-to-end的神经网络,用于脑皮层电图(ECoG)信号的分析。 加入了用于可测性的Scan chain,可以对神经网络的每一层单独进行调试。 参数 ...
Nature 2023: 用脑-脊髓接口让脊髓损伤病人正常行走
Walking naturally after spinal cord injury using a brain–spine interface文章来子EPFL的Henri Lorach教授团队。临窗上一些病人面临chronic tetraplegia(慢性四肢瘫痪)。 使用了WIMAGINE technology,
多电压域设计中power stripe与power rail延长线的设置
多电压域设计中power stripe与power rail延长线的设置选中FFT电压域,在Stripe boundry上面选择Each selected block/domain/fence,便可以对该电压域打上power stripe。 如果不做任何处理,由下图可见,图中的红色区域为FFT电压域,该电压域的power stripe本应延长到block ring上,但它们截止在了电压域的边界。 可以在Add Stripes中选择Mode,并选择Extend to closest target,重新添加Stripes,即可解决这个问题。
Digital as a top流程
Digital as a top流程编写.lib文件input pin的timing constraint如下图所示: 其含义为,当遇到CLKA上升沿时, output pin constraint 这里input delay包含setup与hold两类timing check。以setup time check 0.099为例,信号变化需要至少在clock上升沿之前0.099ns。同理以hold time check 0.072为例,信号变化需要至少在clock上升沿之后0.072ns。 output delay的含义为 output delay设置需要包含路径延迟以及外部寄存器的setup time requirements。 什么是时序弧的unateness?在编写.lib文件时,遇到timing_sense的条目。在TSMC SRAM的输出pin QA的定义中,timing_sense设置为non_unate,这是什么意思呢? unateness主要用于回答这个问题:如果input发生了变化(比如input置为1),该output会发生什么行为?(output置1?置0?还是 ...
VCS+Verdi仿真流程
VCS+Verdi仿真流程vcs -v asic.v 在RTL中引用了一些module,如果从当前目录中找不到,就在asic.v中找。 vcs -y /usr/ 让vcs在目录中找module。在RTL中注明具体module的位置:uselib directory = /usr/。在编译时,同时碰到-y和uselib,以uselib为主。 vcs +libext+.vh+.v 在-y注明的文件夹中搜索.vh文件和.v作为module的来源。 vcs +incdir+”.”,在RTL中写了`include的话,用该选项指明路径。“-incdir”用在库文件中,用来声明逻辑库。比如在Designware的仿真文件中,存在下面的语句1`include "DW_div_function.inc"在VCS makefile中加入以下语句:12VCS_OPTS += +incdir+/softs/synopsys/dc/2022.03/dw/sim_verVCS_OPTS += -y /softs/synopsys/dc/2022.03/dw/sim_ver +libext+. ...
公告
欢迎来到我的博客,这里会定期更新有关神经网络算法与芯片设计技术相关的内容,希望你能得到收获\\\x7e ☀️### 公告