自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 data汇聚和时钟汇聚的sdc约束

当输入的数据端是两个时钟域的信号汇聚而成时,被同一个时钟采样时,约束如下。当输入的数据端被两个时钟mux后采样,约束如下。abstract_port对于port的约束。

2024-05-24 13:51:09 193

原创 sgdc中sync_cell 通配符问题

因此约束语句sync_cell -name test1 -to_clk "clk[*]"和sync_cell -name test2 -to_clk "clk[*]"其实都是只对clk[2]生效。相当于sync_cell -name test1 -to_clk "clk[2]" 和sync_cell -name test2 -to_clk "clk[2]1.只保留test1作为sync_cell,同时存在clk[1]和clk[2]的cdc路径,结果clk[1]同步失败,clk[2]同步成功。

2024-05-24 13:14:57 144

原创 absrtrac约束到非clk的port上带来的问题

因此sgdc认为di_2没有时钟。2.由于port di_vld未约束时钟,打开了参数use_inferred_abstract_port,工具会给该port上推断一个时钟。1.4port不约时钟,被两个异步时钟采样,打开use_inferred_abstract_port,会在此port上同时i推断出两个采样时钟,报两个unsync。1.2给port约到存在的port上,打开use_inferred_abstract_port,认为port没有时钟,不报ac_unsync。通过实验,得到sg的逻辑如下。

2024-05-24 11:16:39 234

原创 深入理解CDC(五)一文讲透CDC

此文为本人在公司内部作为培训的ppt改编。

2024-01-25 10:18:00 548

原创 深入理解CDC(四)难点理解

可以这么理解,当en为0时,D端输入为0,Q端输出为1。在en拉后的,clk为上升沿时,q输出为0,在很短时间后set端为1,q输出为1,因此会输出一个很短时间的0,所以形成毛刺。如果enbale高有效,当rst释放后en入口为0,en无效,in信号无法通过。enable未做约束时,the Ar_syncrst_setupcheck01 rule reports a warning (如果enbale低有效,当rst释放后en入口为1。当clk和复位/置位信号用同一个en进行gate时,会有潜在的竞争。

2024-01-22 13:46:13 589

原创 深入理解CDC(三)CDC问题分类

2.reset_check:复位规则检查latches, tristate signals, or XOR/XNOR gates in a reset tree。1.data_glitch:数据跨时钟前存在组合逻辑,会导致数据glitch。4.Ac_cdc:跨时钟域数据丢失。快时钟域到慢时钟域采样数据丢失问题。2.clk_glitch:两个时钟直接进行组合逻辑。3.Clock_sync:跨时钟域数据汇聚问题。5.ac_conv:数据跨时钟域后再进行汇聚。1.Ac_unsync:跨时钟域未作处理。

2024-01-04 10:10:53 772

原创 深入理解CDC(二)复位同步

N1为c2时钟域下的复位信号,当在c1时钟域下用作异步复位时,当RST1释放时,产生的复位信号N1属于C2时钟域,N1释放时,复位的recovery time可能不满足,会产生亚稳态问题。下图是一个典型的复位跨时钟域问题,会产生复位的亚稳态。同步器必须和src匹配,如果是来自其他clk时钟域的使能信号,不会倍看作一个有效的同步器。由于第一次同步后的复位信号存在亚稳态,如果目的端复位信号存在多个扇出,同步失败。以上为一个典型的异步复位同步释放电路,in信号通常接为固定的常值。3.典型异步复位同步失败电路。

2023-12-22 17:11:00 472

原创 同源的分数倍时钟是同步还是异步时钟?

前面介绍同步问题时有说明,当信号从快时钟域传递到慢时钟域时,只要慢时钟域能安全采集到从快时钟域传来的信号,就不存在异步问题。但如果信号在快时钟域翻转速率过快,慢时钟域可能不会安全的采集到从快时钟域传来的信号,这也可以认为是异步问题。此时两个时钟间相位差也可能会有多个,例如同源的 7MHz 时钟和 3MHz 时钟,他们之间也会出现多个相位差,时序也难以控制。此类情况下,一个时钟往往是另一个时钟的分频,即便存在相位差也是固定的。由两个不同的时钟源产生的两个时钟是异步的,这是最常见的异步时钟。

2023-12-22 13:58:59 175

原创 逻辑互斥和物理互斥的约束

比如在如下电路中,由于 C1 C2 在 F3 F4 之间是有交互的,而在 F1 F2 之间,只能是 C1-C1 或者 C2-C2,不可能出现 C1-C2 或 C2-C1。如果两个 clock 定义在同一个端口上,那么这两个 clock 在物理层面就是不可能同时存在的,此时就需要声明成 physical exclusive。这时就需要在 MUX 的输出端创建两个 generated clock,然后声明成 physical exclusive。仔细讨论下逻辑互斥和物理互斥的区别。

2023-12-22 09:53:01 243

原创 深入理解CDC系列(一)CDC处理方法

如果这个信号只在刚开始有变化,后面都是常值。如果把同步链的触发器数量配置为3,那么将F4 F5识别为后同步链,同样满足同步链。8.毛刺保护单元同步。同步链作为毛刺保护单元的en端输入。同步链作为使能端,跨时钟信号在数据端。7.and门同步方式。如果是或门加一个非门,也是可以的。以上为跨时钟域处理的方式,当然并不是所有方式都常见。这是最简单也是最常用的方式。5.2mux数据端的保持端为目标时钟域或者常值。同步链用于时钟门控的方案。3.使用同步单元进行同步。

2023-12-20 17:52:02 618

原创 芯片资深IC设计工程师面经系列(八)开放式问题

2.如果有同事不太好打交道,如何处理,或者和领导意见不统一,如何处理。还有一类属于开放式问题,每个人需要结合自身经历进行回答。4.算法实现为RTL的过程中,有没有经验分享。1.遇到过的比较难得问题是什么,如何解决的。3.有没有带过团队,谈谈带团队的经验。5.时序优化的一些经验。

2023-11-20 20:53:47 73

原创 芯片资深IC设计工程师面经系列(七)功耗面积预评估

PR后面积总和mm2。

2023-11-20 20:34:11 123

原创 芯片资深IC设计工程师面经系列(六)DFT设计

3.Scan test 扫描测试(ATPG):主要包括管脚scan_clk,scan_rst,scan_mode,sin,so等信号。DFT的全称是 Design For Test,每个芯片必不可少,虽然一般会配备专业的DFT人员,对于前端工程师也需要配合DFT工程师进行DFT设计。at-speed 就是实速测试, 主要用于 scan 测试-即 AC 测试和 mbist 测试。4.全速测试 at-speed-test(其实是属于扫描测试的一种。由芯片内部的 PLL 产生很快的测试时钟,用于实速测试。

2023-11-15 17:35:53 413

原创 芯片资深IC设计工程师面经系列(五)低功耗设计

2.多阈值逻辑:HVT,高阈值,低漏电电流,速度慢。LVT,低阈值,大漏电电流,速度快。1.多电压设计:动态功耗与电压的平方成比例,降低片上的Vdd有助于显著降低功耗。当ram较小时,控制逻辑占了大部分,由于权值读取次数不多,动态功耗较小,因此减小静态功耗为主要目的。开关功耗是对负载电容充、放电所消耗的功率,短路功耗是由于两个MOS管在开关瞬间同时导通所消耗的瞬时导通功耗。功耗主要分为静态功耗和动态功耗。③buf读写为动态功耗的主要占比,选择复用方式,尽量减小buf读次数。⑤尽量使用单端口sram。

2023-11-14 12:19:46 330

原创 芯片资深IC设计工程师面经系列项目介绍(二)通信芯片

下行:光口->二次解帧->Ramp成型(1.08M)->SRC(4/3滤波器)(1.28M)->跨时钟域(153.64->368.64)->fir1(3倍插值)(3.84M)-->dhb1->fir2(3倍插值)->hb2->hb3->mix_sum(92.16M)-->cfr->hb4->hb5->dpd(368.64M)->pa_protect->DAC。CSI:LS估计->解正交->频域滤波->码本搜索->H矩阵计算->P矩阵->SNR->DSP接口。H矩阵:计算矩阵的期望E。

2023-11-13 21:36:10 65

原创 十年芯片资深IC设计工程师面经系列(四)SDC约束

set_driving_cell:当我们的设计是模块级(Block level)的design时,我们的设计前面一般还有其他的设计,那么前面模块的输出便是我们模块的输入,5.1set_false_path:可以单独的时钟或者路径进行约束。set drive :当我们的设计是芯片级(Chip level)的顶层设计时,芯片外围电路要驱动的是负载较大的IO单元,故需要的驱动能力较强,:set_load 是指output端口的负载,设置的值会影响输出到端口的net上的电容,从而影响相应的路径延时。

2023-11-10 17:27:27 340 1

原创 芯片资深IC设计工程师面经系列(三)CDC分析

面试官通常还喜欢在某个点深入的询问下去,特别是一些通用的的偏终端的问题,作为一个前端设计工程师,仅仅会写RTL代码是远远不够的。

2023-11-09 16:26:23 344 1

原创 芯片资深IC设计工程师面经系列(二)芯片开发流程

TR3:RTL开发,验证、集成、综合等。其中又有50%网表(代码完成)、85%网表(完成所有用例验证)、95%网表(代码freeze)、100%网表(网表交付)包括原始代码、网表、filelist、dont_touch_list、sdc(时序约束文件)、upf(电源域描述文件)、fsdb(仿真波形文件)在代码freze之前,有综合、lint检查、cdc分析、pt分析、帕拉丁平台emu、FPGA原型验证等工作。TR4:后端设计、后仿真、FM(形式化验证)、ECO等工作。问题一,介绍下芯片开发流程。

2023-11-09 14:02:23 311 1

原创 时钟mux电路,gitchfree实现

在数字芯片设计中,存在始终mux时,需要做glitch free处理,下面为某厂的clk_mux glitch free原代码,仅供参考。

2023-11-09 11:41:28 168 1

原创 lint屏蔽erro时屏蔽整个模块或者IP

lint是芯片设计必做的步骤,当遇到外购IP时,lint报出很多warning或者err,如果逐条waive耗时耗力,又无法修改IP代码,怎么办呢?将此命令添加到waive的脚本里,就可以啦,试试看。一个命令可以解决此烦恼。

2023-11-09 10:22:48 69 1

原创 dc面积功耗分析

intrinsic leakage power(固有漏电功耗),由于source-to-drain(源极到漏极)的泄露电流导致。gate leakage power,由于source to gate 或者gate to drain泄露电流导致。Switching Power:由于容性负载充电放电导致的功耗。Internal Power:由于cell内部的电容充电放电引起的功耗以及PN结瞬时短路电流导致的功耗。电路功耗分为动态功耗(Dynamic Power)和静态功耗(Static Power)

2023-10-25 14:28:21 526 1

原创 芯片验证工程师必学linux命令

芯片验证工程师必学linux命令

2023-10-25 14:25:44 142 1

原创 如何解决后端 timing check时endpoints which are not constrained for maximum delay.问题

这种问题一般是由于代码中部分信号tie0,导致部分寄存器综合后为常数。工具会前面自动插入icg,导致时钟无法到达寄存器。后端可通过脚本去除此warning。

2023-10-18 11:36:51 660 1

原创 覆盖率报告分析

芯片行业奋战十余年老兵,芯片大厂验证专家,多年面试官经验,面试官一对一助你转行芯片验证!更多学习视频关注B站 id:605762016 飞哥_芯。2 若是开发代码冗余,直接waiver掉,不补充用例。对于未覆盖的代码和分支,通过分析代码,有两种处理办法。1 若是测试用例不足导致遗漏,需补充测试用例。点击my_dut,可查看dut代码各项覆盖率。Assert:断言覆盖率 无。Line:行覆盖率 100%Toggle:翻转覆盖率。FSM:状态机覆盖率 无。Cond:条件覆盖率。

2023-03-24 22:43:22 513

原创 UVM平台覆盖率收集

10:将vdb波形文件转换成html的网页格式,放到urgReport文件夹中。11:cov 打开覆盖率命令宏定义。1:定义宏变量VCS = vcs。8:com 平台编译命令宏定义。3:编译软件vcs运行参数配置。4:dump 波形所需要的库。6:testcase0名称。7:testcase1名称。12:打开覆盖率报告命令。

2023-03-24 22:31:59 436

原创 vcs编译UVM平台makefile命令

芯片行业奋战十余年老兵,芯片大厂验证专家,多年面试官经验,面试官一对一助你转行芯片验证!更多学习视频关注B站 id:605762016 飞哥_芯。1:定义宏变量VCS = vcs。8:com 平台编译命令宏定义。3:编译软件vcs运行参数配置。4:dump 波形所需要的库。6:testcase0名称。7:testcase1名称。

2023-03-24 22:29:42 904

原创 SystemVerilog在gvim中语法高亮(Linux)

SystemVerilog在gvim中语法高亮(Linux)

2023-03-24 22:17:09 778

原创 数字芯片底层资源介绍

帮助零基础转行芯片验证同学了解芯片底层资源。

2023-03-02 17:22:20 49

原创 IC芯片验证工程师工作内容

那是因为你不知道验证工程师平时都做什么,今天给大家分享验证工程的日常工作内容!零基础转芯片验证不知道应该学什么?

2023-03-02 17:05:23 243

原创 芯片验证工程师GVIM常用命令

芯片验证工程师GVIM常用命令

2023-03-02 15:11:16 223

原创 IC设计综合常用命令

输入 dw 可以从光标处删除至一个单字/单词的末尾输入d$ 从当前光标删除到行末输入 dd 可以删除整一个当前行ndd:n为数字。删除光标所在的向下n行,例如20dd则是删除光标所在的向下20行输入 u 来撤消最后执行的命令,输入 U 来修正整行CTRL-R (先按下 CTRL 键不放开,接着输入 R 键) ,这样就可以执行恢复命令要改变一个单字/单词的部分或者全部,请输入 cw//修改gvim配置g ~chengli/.vimrc搜索类命令输入 / 以及尾随的字符串可以用以在当前文件.

2021-12-20 11:29:27 743

原创 UVM平台,问题总结

验证:1.uvm和dut之间接口是什么?uvm内部接口是啥? interface/TLM2.UVM平台架构和运行机制? 架构包括seqencer、driver、dut、monitor、rf、scorboard,运行机制为phase运行机制,clase内部顺序执行,clase之间并行执行3.sequnce启动方式? 自启动和手动启动5.phase分为task和function,区别是什么?function有返回值,task没有function不能消耗仿真时间,所以...

2021-12-20 11:01:33 767

空空如也

空空如也

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

TA关注的人

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