自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(499)
  • 资源 (6)
  • 收藏
  • 关注

原创 PrimeTime (PT Shell) report_timing 报告全字段完整解析

clk_iregA/Q0.15ns1.25nsrisingsetup30.042pF0.08ns0.12ns0.015pF2.50ns0.05ns0.25ns1.10+0.05nsSS0.72VU123net_abc检查Incr最大节点 → 优化组合逻辑或插入流水级。分析Dtrans和Cap→ 增强驱动或减小负载。关注Delta和Derate→ 调整OCV约束或增加缓冲延迟。过高 → 优化时钟树综合(CTS)。Latency不均 → 平衡时钟路径。Fanout或Cap超标 → 手动布局或调整布线策略。

2025-07-11 17:39:06 256

原创 非2幂次异步asyncFIFO的指针转grayCode

在设计异步FIFO时,必须要处理指针同步的问题,常规做法就是将。

2025-06-20 21:55:21 288

原创 异步fifo的最小深度计算及指针同步

asyncFifo的读写两端的时钟是异步时钟,设读周期为Tr,写周期为Tw。那么aFifo所在的通路中性能受限于max(Tr, Tw)。如果aFIFO的深度不能保证当写带宽低时的写连续或者读带宽低时的读连续,那么就会造成通路的性能损失。设aFifo的深度为D。要保证写的连续性就是保证写不能full。那么最低要求我们从空开始写,写指针同步到读【读当拍判断not-empty】开始读,到读返回读指针在wr clk domain内判断出aFifo not full,我们设这段时间为T_interval_0。

2025-06-19 17:35:46 704 1

原创 icg真的只能用latch不能用Flip-flop吗

从timing分析,用latch对setup更友好,因为用latch锁存EN | TE可以做setup的整周期check,而用flip-flop只能做clk的半周期check;而用flip-flop的hold是比较宽松的,有半个时钟周期留给hold。从功能上看不出有什么区别,那就要从实现上分析,两种cell哪个更快(transition,Propagation Delay),哪个更容易收timing?下面解释一下为什么latch明明用的clk低电平触发,为什么可以做整周期的setup检查?

2025-06-13 14:38:12 353

原创 latch/ff的电路结构及setup/hold/tpd、clkWidht/recovery/remove

用verilog描述如下:这个代码应该是可综合的,但是需要其他逻辑保证 s | r!

2025-06-11 12:03:53 411

原创 DFT测试之TAP/SIB/TDR

tap全称是test access port,是将jtag接口转为reset、sel、ce、ue、se、si、tck和so这一系列测试组件接口的模块。上面的信号才是Jtag的接口信号,每一个信号都对应一个IOPAD。在设计中常会遇见tdo_en信号,这个信号是控制IOPAD在没有输出时,输出高阻态。它并不是实体的IO信号。也有可能会遇见tdi_en信号,控制IOPAD没有输入时,输入为高阻。单一般不会控制IOPAD的输入。那么TAP就是把这些Jtag接口,主要是通过解析TMS的指令。

2025-06-06 22:08:26 1108

原创 python脚本处理excel文件

分别尝试用perl和python处理excel文件,发现perl的比较复杂,比如说read excel就有很多方式不同的method,对应的取sheet的cell方式也不一样。更复杂的是处理含有中文内容的Excel。用perl目前没有成功过。对于python来说就比较简单,目前使用openpyxl库,处理起来清晰明了。

2025-03-25 21:13:19 543

转载 AMBA总线(2)—— AHB协议

AHB5手册的最后一章是User信号,分为HAUSER、HWUSER、HRUSER三组,但协议开头就说:“通常本规范建议不使用User信号。AHB协议没有定义这些信号的功能,如果两个组件以不兼容的方式使用相同的User信号,就会导致互操作性问题。”啊这……在章节后面,手册又说道:“建议在互连上包含User信号,但是没有要求在Master或Slave上包含它们。该规范建议互连组件包括对User信号的支持,以便它们可以在Master和Slave之间传递。

2025-03-20 21:53:08 963

原创 linux stdout/stderr重定向到文件,>或tee

正常情况下直接使用 '>'或者tee命令只能把stdout的终端输出重定向到文件中,而stderr的输出是无法写到文件中的。比如在使用svn up时遇到svn 报错的错误,svn ERROR/WARNING用下面的语句是不会将ERROR/WARNING行写到svn.log的要想同时将这两类输出都写到文件中,可以如下操作。

2025-01-14 15:55:24 469

原创 linux下中文输入法ibus

一般设对了环境变量就可以正确使用,如果有的软件可以,有的不行,可能需要到软件中设置。比如Firefox浏览器【经过实测设了环境变量之后,FireFox就可以输入中文了,如果你遇到不行的情况,可以接着看下文】。编辑Firefox的启动脚本以确保它使用IBus输入法。在IBus设置中,确保已添加并启用了中文输入法(如智能拼音)。,可以使用文本编辑器打开并添加以下环境变量:bash。这将启动IBus守护进程,并确保它在后台运行。保存并退出后,重新启动Firefox。确保IBus输入法已正确安装并配置。

2025-01-10 20:08:50 1251

转载 万子长文和你一起探索Arm调试架构

从图中可以看出的是,当core正在处于(由一个debug event,比如breakpoint,触发的)debug exception中时,可以通过设置MDSCR_EL1.SS和PSTATE.SS都为1来让core在退出exception时进入单步调试,并在执行完一条指令后并重新触发debug exception,这就完成了一次单步调试。然而,据我了解,GPR在Arm的产品中很少出现,我只在一些Cortex-M core based subsystem中找到了它们。

2024-12-07 21:22:30 450

转载 万文长字带你搞懂JTAG的门门道道

JTGA这个东西IC和嵌入式靓仔们肯定是有用过的,但是对于JTAG内部的东西,以及实现如果不了解的,可以看看这篇文章。之前和coresight有了解过的靓仔,了解了对于ARM内部的调试,知道了对于调试的入口在于那个JTAG Port,但是对于外部的JTGA Port你真的又了解多少,是否真的就是那么简单的一个port?不知道coresight的可以看看【来跟着前辈看看coresight】这篇文章。

2024-12-07 19:30:36 2139 1

转载 SerDes知识详解

可以阅读。

2024-11-28 15:56:30 1064

原创 excel按行排序

使用excel对一列数据进行排序比较简单,但是有时需要按行排列,更进一步有多行的时候,按照某一行排列是,相应的其他行也跟着变化,举个例子,下面有两行分别是。第一行1-6,第二行a-f,将第一行降序排列时第二行也跟着重拍,可以按以下步骤处理。然后在主要关键字中选择行1。点击选项,选择按行排序。

2024-11-08 17:40:21 768

原创 用awk将包含key1不包含key2的行及下一行输出/awk&sed删除匹配的块

有时候在vim中搜索和替换并不好做,这个时候可以充分利用shell的grep,sed,awk这些现成的命令。如果不知道怎么使用这些高级命令,可以问aiChat,这种一般会给出正确的脚本。

2024-11-05 20:43:36 240

转载 【精讲】PCIe基础篇——BAR(Base Address Register)详解

Bios可以为设备预留大于BAR要求的地址空间,而PCI规范中建议为需要的地址空间少于4KB的设备分配4KB的地址空间。我们发现PCI这种地址自然地要求为设备分配的地址空间要跟BAR定义的大小对齐,因此PCI设备的映射空间始终是跟BAR的大小对齐的。系统中的每个设备中,对地址空间的大小和访问方式可能有不同的需求,例如,一个设备可能有256字节的内部寄存器/存储,应该可以通过IO地址空间访问,而另一个设备可能有16KB的内部寄存器/存储,应该可以通过基于MMIO的设备访问。当该设备确认某一个请求(

2024-10-15 22:01:28 937

原创 PCIE基础概念BAR/in/outbound/空间映射/Post/CPLD

我们称pcie endpoint所在的芯片为设备,上位机为主机。pcie可以把设备上的内存空间和寄存器空间映射到Host上。这样Host就可以直接访问设备的内存空间和寄存器空间。空间映射是不会占用host原有的物理内存空间的,比如说Host有24GB的DDR+1GB寄存器空间,pcie设备有128GB的HBM+2G的寄存器空间。那么映射之后host可以看到Host的24GB的DDR+Host的1GB寄存器空间+128GB的设备HBM+2G设备寄存器空间。

2024-10-15 21:56:24 2304

转载 简单介绍SPI/Dual SPI/Quad SPI(SPF)几种通讯模式的差异

初接触Nor Flash的工程师可能会对SPI/Dual SPI/Quad SPI等传输方式有些困惑,下面以MX25L25645G为例,从硬件接口及传输时序简单分析这些通讯方式的差异。通过以上对SPI/Dual SPI/Quad SPI通讯在硬件接口及cmd+add+data的传输时序存在的差异比较,可以对SPI在不同模式下的通信方式进行区分。Dual SPI和Quad SPI 是半双工通信,数据可以在两个方向上传输,但是同一时间数据只能在一个方向上传输。

2024-10-12 18:56:01 1230

转载 数控振荡器的基本结构以及电路原理解析

随着处理越来越广泛的应用,数字锁相环DPLL(Digital Phase Lock Loop)在现代设计中也越来越普遍,特别是在数字信号和这类高性能应用中,数字锁相环更是一种必不可少的电路。与传统的锁相环(Phase-Locked Loop)相比,由于数字锁相环较少采用高阻值以及电感等非线性器件,可以采用与高速数字逻辑电路相兼容的制造工艺来设计和制造,也更加容易在数字系统中应用。一个典型的数字锁相环结构如图1所示,Oscillat)是其中最关键和核心的部分。

2024-09-30 18:37:27 1295

原创 DPLL的DCO与PLL的VCO(数控振荡器与压控振荡器)

无论DPLL还是PLL都是由PD,LPF和DCO/VCO组成。PD:鉴相器,是将VCO/DCO输出的频率信号分频后与refclk进行相位比对,输出一个相位差信号LFP:是将相位差信号转换为VCO的压控信号或DCO的延迟信号。VCO:根据不同的输入电压【注意不是电源电压而是输入的控制电压】产生不同的输出频率DCO:根据不同的输入延迟控制信号,控制DCO内部环路的延迟,以输出不同的频率以前一直有三个误解本文主要介绍振荡器,VCO由于涉及模拟器件,比较复杂。

2024-09-30 18:35:05 2111

原创 linux shell的$()作用-将一个命令结果输出给另个命令

在Shell脚本中,$()是一种命令替换的语法,它允许你执行一个命令,并将命令的输出插入到当前的命令行中。这种特性使得你能够在一个命令的输出基础上构建另一个命令。

2024-09-05 17:48:21 682

原创 spyglass-lint关闭(disable/stop/waiver)规则

其中xxx就是被disable的某一项规则。在disable_block和enable_block之间的verilog code就是作用区域。如果没有enable_block语句,则disable_block的默认作用范围到endmodule。而且会报一个un-paired block waiver pragma defined for rule 'xxx'

2024-08-27 21:43:07 3280

原创 rule ‘flopEConst‘和vcst-lint的disable

先从vcst-lint的一个warning开始:这个含义是存在不配对的块waiver语法,flopEConst。什么叫不配对的语法呢?我们打开对应的verilog代码可以看到有下面的语句但是没有找到对应的enable_block语句。这就表示一个disable_block会一直起作用。

2024-08-26 10:58:06 551

原创 Jira使用指南(高级搜索JQL/统计/面板设计)

上面的pdf比较详细的介绍了Jira的使用,目录如下:或者从Jira的中文官网获得更多的使用指南。

2024-08-23 18:34:21 2468

原创 dc/dc_shell的keep和donot touch区别

在半导体设计和综合工具中,donottouch和keep属性通常用于指定综合和布局阶段的特定要求。sizeonly是keep属性的一个可能值。以下是donottouch和keep属性以及sizeonlydonottouchkeepsizeonlyhierarchykeepkeepsizeonlydonottouchkeepdonottouchkeepsizeonlydonottouchkeepsizeonlydonottouchkeep在实际使用中,选择donottouch还是keep属性(以及keep。

2024-07-06 19:04:12 1259

原创 Excel中按行排列(VBA脚本)

要求对4列数据按照第一行abcd的顺序排列。

2024-07-03 19:16:39 1205

转载 sram的min period

sram除了setup/hold的检查,还需要进行min_period的检查。这个min_period是sram里给bitline进行预充电留足时间。如果两次读间隔period太近,那么第二次读就不能正确读出。minPeriod是sram的bitCell器件预充电时间决定的,和clk的transition也有一定的关系。如下图:clk的transition影响较小。

2024-06-01 17:22:54 1273

转载 数字IC后端实现的一些基本概念

2)place之后,假设setup和hold都正好为0ns,然后插入时钟树,树的完全平衡的,WC的时钟树insertiondelay是0.2ns,BC的insertion delay是0.1ns,这时做STA,会看到timingviolation吗?cloning是在有多个sink的情况下,不改变逻辑功能把当前cell复制一份,分别驱动下一级的cell,这样可以减少当前单元的负载,从而获得更好的时序,有时是为了placement的考虑,譬如几个sink的方向不同,缺点是会增加上一级的负载。

2024-06-01 16:40:09 2134

转载 Python的类(class)

(1)类(class):用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,类对象的类型。类是抽象的概念,而对象是一个你能够摸得着,看得到的实体。两者相辅相成,谁也离不开谁。(2)类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。(3)数据成员:类变量或者实例变量,用于处理类及其实例对象的相关数据。

2024-06-01 11:18:04 447

转载 Python中的yield关键字

yield的高级用法包括生成器的状态保存,允许无限递增或递减的生成器。还可以与条件结合使用,用于过滤生成的值,仅生成符合特定条件的值。最重要的是,yield支持懒惰计算,允许在需要时计算值,而不是一次性计算所有值,从而节省内存和计算资源。在处理大型数据集、无限序列或需要逐个生成值的情况下,yield是一个强大的工具。通过深入理解yield,可以更好地利用生成器和懒惰计算,提高代码的效率和可维护性。

2024-06-01 11:10:31 99

转载 python之多进程(multiprocessing)

Multiprocessing.Pool可以提供指定数量的进程供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来执行它。Pool类用于需要执行的目标很多,而手动限制进程数量又太繁琐时,如果目标少且不用控制进程数量则可以用Process类。processes: 是要使用的工作进程数。如果进程是None,那么使用返回的数字os.cpu_count()。

2024-06-01 11:08:42 1016

转载 Python Lambda 用法大全

Lambda表达式可以作为参数传递给key,定义更复杂的列表排序规则。map函数和Lambda表达式常常一起使用,可以对序列中的每个元素应用Lambda表达式,并返回结果序列。filter函数接收一个Lambda表达式和一个序列,它会返回序列中所有偶数组成的新序列。filter函数和Lambda表达式组合使用可以实现对序列中符合特定条件的元素进行筛选。reduce函数可以对序列中的元素依次累加,Lambda表达式可以定义累加过程。Lambda表达式可以作为函数的返回值,用于构造更为复杂的计算过程。

2024-06-01 10:44:07 97

原创 csdn的insCode怎么用IDE和linux终端 服务器

右边有个终端,点击即可出现linux的xterm终端。找到我的项目,没有项目的话可以新建一个。1.进入insCode,选择工作台。

2024-05-25 20:10:53 313

原创 计算机如何将输入文字显示出来的?渲染Image rendering

渲染图像,可以理解为用cpu/gpu构造出原本不存在的图像。比如输入计算机的英文字符都是ASCII码,而我们在屏幕上看到显示的字符对应的应该是RGB/YUV的像素。计算机把ASCII字符转化成像素的过程就是文字渲染。又比如我们GPU用多个2D图片渲染出3D图片,图片亮度根据时间自动调整阳光的强度,阴影等。原图像中不存在的信息,这个是GPU的渲染。渲染图像和sonser直接采样进来的RGB/YUV图像帧显示是不一样的。

2024-05-24 20:23:21 1359

转载 Power Gating的设计(概述)

对于multi-processor CPU,每当一个core完成自己的task,都可以power gating,清除自己的cache,但是big-little的core调用。对于cache cpu system,Power gating可以很大程度的减少leakage,消除dynamic power,但是cache内容的复原,需要花费。外部power gating,要求板级中有多个voltage regulator,带来相应的RC,增大了板级负担,而且,switch time花费的太多。

2024-05-23 19:39:41 1940

转载 浅谈power signoff之什么是IR drop

芯片中的电源VDD和 VSS)通过metal rail和metal stripe均匀分布,称为电源传输网络(Power Delivery Network,PDN)或power grid。PDN 中使用的每个金属层都具有一定的电阻率。当电流流过供电网络时,一部分施加的电压将根据欧姆定律在 PDN 中下降。电压降的量将是 V = I.R,称为 IR drop。图 1 显示了电源网络中的 IR drop。任何金属网络都可以假设为小 的R 和 C 的组合。图1 金属网络中的IR drop。

2024-05-23 19:35:43 6133

转载 【低功耗】电压域和电源域

cluster内的PPU也处于该电源域,因为PPU需要能够在保持活动的同时关闭包括PDCLUSTER在内的其他域的电源。因此,PDTOP电源域必须在任何其他电源域通电之前通电,并且必须仅在其他电源域断电之后断电。每个L3高速缓存片被放置在其自己的独立电源域(PDSLICE)中,以允许高速缓存片的逻辑和RAM在不需要时断电。指使用同一个电压源的模块合集,如果几个模块使用相同的电压源,就认为这几个模块属于同一个电压域。一个单独的电压域中,同时支持DynamIQ cluster中的每个核都采用独立的电压域。

2024-05-23 19:18:02 867

原创 关于div/mod除法和取余的化简及硬件实现

在硬件设计中常会用到整数之间的除法和取余操作,一般而言除法和取余的两个操作数都是变量时,这个算法的实现复杂度包括时间复杂度和空间复杂度是O(N)的,N是被除数和除数的最大位宽【这个复杂度的结论不一定是准确的】。对于有限常量集的div/mod,它们的复杂度可以做到o(logN).所以硬件在做div/mod的时候,如果发现除数或被除数是比较少的集合,可以不用变量除div/mod这种通用电路。时间复杂度体现在硬件实现上就是分多少次基础的加减计算上,基础计算越多就需要更多的clk,否则时序无法收敛。

2024-05-22 14:10:52 465

转载 傻白入门芯片设计,Substrate/RDL/Interposer/EMIB/TSV(三)

Substrate 是芯片的基底,是芯片的基础构件。它通常是一块硅片或其他半导体材料,用于承载芯片上的元件和连接器。Interposer 是一种中间层技术,用于连接两个芯片。它通常是一块硅基底,上面带有微型连接器,用于将两个芯片连接在一起。Interposer 可以用于提高芯片的性能和带宽,以及使芯片更加紧凑。RDL(Redistribution Layer)是芯片上的一层连接层,用于将芯片上的电路重新分配。RDL 可以用于提高芯片的性能和效率,以及使芯片更加紧凑。

2024-05-14 16:16:51 4164 1

转载 芯片封装---Seal ring

常见的seal ring会将工艺中所有的层都列出来,并标明 dark or clear,用这里的dark和clear去对照工艺制作过程中这些layer的dark或clear,如果同为dark或clear则seal ring上面有这层,反之则seal ring上没有这层。这是工艺中实际实验出来的最优的方案。今天我们就来讲一讲看似简单却又不可缺少的Seal ring在这其中的作用,当我们完成整个芯片的版图设计后往往要在外围给它加个围墙,保护最为珍贵的它不受到伤害,就像是中间的房子盖好了,外面再拉一个围墙一样。

2024-05-14 15:13:18 13202

锁存器和触发器的分类和电路

该文档给出了各类锁存器和寄存器的的电路原理 包括主从,SR,JK等类型 电平触发,脉冲触发和边沿触发

2025-03-07

数字控制振荡器-多级反相延迟组成DCO

设 计 了一 个用 于时钟 产 生的全数 字锁 相 环 (ADPLL),其数 控 振 荡器 (DCO)采 用 9级 环 形振 荡器,每级延迟单元的延 迟时间均是可调的,详细介绍了设计原理

2024-09-30

问题跟踪神器-Jira使用指南

可以使用JQL语言来进行高级搜索,创建过滤器 问题的导入导出,批量操作 生成饼图 问题统计 面板管理等

2024-08-23

sdf语法语义,如何看懂sdf

英文文档详细介绍了sdf的含义,内容格式,教你如何读懂sdf

2019-03-11

线性方程组的迭代解法.pdf

讲述了矩阵方程求解的定常迭代算法 - 经典(定常,不动点)迭代法: Jacobi/Gauss-Seidel,SOR,AOR等 - Krylov子空间迭代法: CG,MIRES,GMRES,BiCGStab等

2020-06-13

JPEG 文件编/解码详解

JPEG 文件编/解码详解,同时对JPEG的码流结构进行了分析

2023-11-24

异步FIFO设计与使用

异步FIFO的设计 基本知识 和异步fifo复位以及flush的处理

2023-10-27

DRA829/TDA4VM Technical Reference Manual (Rev. C)

TI的adas芯片 DRA829/TDA4VM的技术参考手册

2023-04-13

TI的TDA4VM dataBook

TDA4VM Jacinto Processors for ADAS and Autonomous VehiclesSilicon Revisions 1.0 and 1.1的中英文手册

2023-02-22

High Definition Audio Specification

High Definition Audio Specification Revision 1.0a June 17, 2010

2023-02-10

NVIDIA Jetson AGX Orin Series

NVIDIA Jetson AGX Orin Series Ampere GPU + Arm Cortex-A78AE CPU + LPDDR5 + 64GB eMMC5.1 Data Sheet & nvidia-jetson-agx-orin-technical-brief

2023-02-10

arm coreSight soc-400 R3P1 技术参考手册

arm coreSight soc-400 R3P1 技术参考手册 pdf文档

2023-02-08

mipi dpi+cphy的spec

mipi dpi+cphyv1.2的specification 其中cphy的1.2版本规格说明书是mipi最新的cphy版本

2023-02-07

xilinx的jtag2axi databook

文档给出了xilinx的jtag2axi master的IP的使用及生成 databook

2023-02-07

xilinx的hdmi 1.4/2.0 产品指导书

xilinx的hdmi 1.4/2.0 产品指导书

2022-12-27

TSMC 18um的std cell的dataBook

该文档给出了18um 工艺下的stdCell的电器特性和时序图

2022-12-22

systemVerilog的vim语法高亮脚本

在vim中source该文件,vim可以对systemverilog的语法高亮

2022-02-22

后端设计各种文件说明

ASIC后端设计各种文件说明(CIF,LEF,DEF,SDF,SPEF,ALF,PDEF,TLF等)

2019-01-03

芯片命名规则

描述了一般芯片命名的规则,每个字段的含义

2019-03-08

setup hold英文介绍

setup hold分析,全英文直观解释了 launch capture

2019-03-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除