1.1.1 解释什么是建⽴时间和保持时间,它们在验证中的重要性是什么?
解读:
国内数字后端⾯试常把“建⽴/保持时间”当成“送分题”,但在IC验证岗⾥,它却是区分“只会跑仿真”与“能 sign-off”的关键分⽔岭。验证⼯程师必须证明:在PVT(⼯艺、电压、温度)全域范围内,RTL 功能正确且时序收敛。若只回答“建⽴时间是Tsetup,保持时间是Thold”,等于告诉⾯试官“我只背过课本”。验证场景下,需要把静态时序分析(STA)的“时序违例”翻译成动态仿真的“激励约束”,再⽤断⾔、功能覆盖率、⻔级后仿等⼿段把“时序⻛险”变成“可量化的验证结论”。因此,答案必须同时覆盖:物理意义 → 验证建模 → ⻛险收敛⽅法→ 流⽚前 sign-off 标准,四步闭环。
知识点:
1. 建⽴时间 Tsetup:时钟有效沿到来前,数据输⼊必须稳定的最⼩时间;保持时间 Thold:时钟有效沿到来后,数据输⼊必须继续稳定的最⼩时间。⼆者共同构成“时序安全窗”。
2. 时序弧:launch edge → 组合逻辑延迟 → capture edge;Tsetup/Thold违例即“数据窗”与“时钟窗”重叠。
3. 验证视⻆分类: a) 功能验证阶段:⽤“零延迟”模型,Tsetup/Thold 表现为“时钟-数据 skew”约束,写在 UVM sequence 或 SVA 断⾔⾥,确保激励不违反协议级时序。 b) ⻔级后仿(SDF 标注):把 STA 抽取的 max/min 延迟反标到⽹表,跑“timing check”仿真,观察 $setup、$hold 系统任务是否报违例。 c) 形式验证:⽤ SLEC 或 Questa Formal 证明“在任何合法时钟周期内,不存在 setup/hold 违例”。 d) 功耗-性能验证:动态电压频率调节(DVFS)场景下,建⽴时间决定最⾼频率 Fmax,保持时间决定最低电压 Vmin;验证需遍历所有 OPP 点。
4. sign-off 标准:国内主流⼯艺节点(28 nm 及以下)要求“零建⽴违例 +保持违例 ≤ 10 ps 且总数 ≤ 10 条”,并在 ECO 阶段通过插⼊延迟缓冲器或时钟树调整全部清零;验证团队需在验证报告⾥给出“后仿覆盖率 100%、违例清零截图、PT 时序报告编号”三件套。
答案:
建⽴时间(Tsetup)指在时钟采样沿到来之前,数据必须提前稳定的最⼩时间;保持时间(Thold)指在时钟采样沿到来之后,数据必须继续维持稳定的最⼩时间。⼆者本质上是触发器内部晶体管翻转所需“数据-时钟”重叠窗⼝的物理约束。
在 IC 验证中的重要性体现在四个⽅⾯:
1. 功能正确性:验证平台必须在激励层就避免“协议级”时序违例。例如,在UVM sequence 中利⽤ setup_time_constraint::randomize() with { clk_to_q + logic_delay + skew < period - tsetup;},确保动态仿真不会出现“亚稳态”功能误判。
2. ⻔级签核:带 SDF 的后仿真是国内流⽚前必交材料。通过 $setup(clk,posedge, tsetup)、$hold(clk, posedge, thold) 系统任务,实时检测违例并 dump 波形;⼀旦发现违例,⽴即返回给后端做 ECO,验证团队负责复测并更新“后仿回归报告”。
3. 覆盖率闭环:建⽴/保持违例属于“时序功能覆盖率”点,在验证计划⾥单独列为 timing_cg;只有“零违例”且“覆盖 100 %”才能进⼊ sign-off评审,否则 TCQ(Tape-out Quality)红灯。
4. ⻛险评估与回读:国内晶圆⼚(SMIC、HLMC)对 28 nm 及以下要求“零建⽴违例 + 保持余量 ≥ 5 % 周期”;验证团队需在评审会上⽤ PrimeTime 报告 + 后仿 log 证明“余量已达标”,否则流⽚申请将被驳回。
简⾔之,建⽴/保持时间不仅是后端时序指标,更是验证“质量守⻔员”能否把住最后⼀道关的核⼼ KPI;验证⼯程师必须能把静态 STA 语⾔翻译成动态仿真语⾔,再⽤覆盖率、断⾔、后仿三把锁确保“零逃逸”。
拓展思考:
1. 先进⼯艺(7 nm、5 nm)出现“⽚上变异”(OCV)和“时钟漂移”(ClockJitter),Tsetup/Thold 本身变成随机变量;验证侧可⽤ Statistical SDF或 Monte-Carlo ⻔级仿真,结合 UVM 的 randomize() with 分布函数,把“3σ 违例概率”压到 0.1 ppm 以下。
2. ⾼速接⼝(PCIe5、DDR5)采⽤“源同步时钟”或“嵌⼊式时钟”,建⽴/保持时间概念被“眼图”替代;验证需⽤ IBIS-AMI 模型跑通道仿真,再⽤ SVA 写“眼⾼ ≥ 30 mV、眼宽 ≥ 0.4 UI”的断⾔,实现“时序-信号完整性”联合验证。
3. 低功耗场景(UPF)下,电压域切换会导致单元延迟突变,可能把原本“余量 20 ps”的保持违例放⼤到 50 ps;验证需在“电源状态转换序列”⾥插⼊专⻔的“保持时间冲击测试”,⽤ Formal 证明“任何电源状态切换都不会引⼊新的保持违例”,否则不能开 DVFS。
4. 国内越来越多公司采⽤“Shift-left”流程,把 STA 的 Tsetup/Thold 违例提前到 RTL 阶段⽤“静态时序断⾔”(Static Timing Assertion)扫描;验证团队可写 Python 脚本解析 .lib,⾃动⽣成 SVA 约束,实现“RTL 级零违例”后再进⼊综合,显著减少后端迭代次数。
1.1.2 如何⽤布尔代数简化⼀个4输⼊XOR⻔电路?
解读:
1. ⾯试场景:国内数字IC验证岗⼀⾯/⼆⾯常⻅“⼿写推导”题,考察候选⼈对组合逻辑本质、布尔代数恒等式及奇偶校验特性的理解,⽽⾮单纯背电路。
2. 隐含要求:必须给出“最简”表达式(字⾯量最少、层级最低),并说明“简”的标准(ASIC/FPGA综合⾯积、延时、功耗)。
必须指出4输⼊XOR的“奇校验”语义,⽅便后续连接到验证场景(如ECC、FIFO gray-code)。
3. 评分点:正确写出真值表或利⽤XOR交换律、结合律逐步化简;能指出“偶数个1输出0,奇数个1输出1”的奇偶规律;能反思“简化”在标准单元库中的局限:7输⼊以内XOR通常已固化成单⼀ OAI/AO 复合⻔,⼿⼯“再简”反⽽拆散单元、增⼤⾯积;能联系到验证平台:如何⽤SV constraint随机覆盖“奇/偶”两类向量,确保功能点⽆遗漏。
知识点:
XOR代数性质A⊕B = A̅B + AB̅
A⊕A = 0; A⊕0 = A; A⊕1 = A̅交换律、结合律、分配律(对AND不分配)多输⼊XOR的奇偶共识:n输⼊XOR = 1 当且仅当输⼊向量中1的个数为奇数。“最简”衡量:
① 字⾯量(literal)数——ASIC综合⽣成⻔数;
② 逻辑深度——关键路径延时;
③ 翻转因⼦——动态功耗。
标准单元视⻆:smic14/TSMC16 7-input XOR已提供 OAI22+INV 复合⻔,⾯积≈7 tracks,⼿⼯拆成2输⼊级联反⽽增加路径。验证关联:SV covergroup可定义“odd_one”与“even_one”两个coverpoint,利⽤$countones()系统函数⾃动区分奇偶,确保边界场景被穷尽。
答案:设四输⼊为 A、B、C、D,输出 Y。
步骤1:利⽤结合律把4输⼊XOR拆成三阶树Y = (A⊕B)⊕(C⊕D)
步骤2:展开成布尔式令 T1 = A⊕B = A̅B + AB̅
T2 = C⊕D = C̅D + CD̅则 Y = T1⊕T2 = T1̅·T2 + T1·T2̅
步骤3:代⼊并乘开Y = (AB̅+A̅B)̅·(C̅D+CD̅) + (AB̅+A̅B)·(C̅D+CD̅)̅
= (A̅B̅+AB)(C̅D+CD̅) + (AB̅+A̅B)(C̅D̅+CD)
步骤4:继续分配,合并同类项(略去中间冗⻓式⼦),最终得
Y = A̅B̅C̅D + A̅B̅CD̅ + A̅BC̅D̅ + A̅BCD
AB̅C̅D̅ + AB̅CD + ABC̅D + ABCD̅
共8个最⼩项,每个最⼩项4个变量,总计32字⾯量。
步骤5:利⽤“奇校验”规律反向验证——上式恰为输⼊向量含奇数个1的全部最⼩项,证明推导正确。
步骤6:综合视⻆“再简化”若⽬标ASIC库提供4输⼊XOR宏单元,则直接实例化;若只能使⽤2输⼊XOR,则采⽤步骤1的平衡树结构:
Y = XOR2( XOR2(A,B), XOR2(C,D) )逻辑深度=2,关键路径延时最⼩,⾯积4个XOR2单元。若⾯积极致压缩,可利⽤“倒相器共享”技巧:把上述8个最⼩项做两级NAND-NAND,但经综合⼯具测试,smic14下⾯积反⽽增加15%,故不推荐。
结论:在主流⼯艺节点,4输⼊XOR“最简”即步骤1的平衡树;⼿⼯布尔展开仅⽤于形式验证或LEC⽐对,不⽤于实际电路。
拓展思考:
1. 验证平台应⽤在UVM环境中,可写如下constraint:constraint c_odd { $countones(data) % 2 == 1; }随机产⽣1000个奇向量,1000个偶向量,分别检查DUT输出是否为1/0,即可在功能覆盖率⾥⼀次性收拢“奇偶”特性。
2. 功耗验证输⼊XOR的翻转概率理论值为50%,但输⼊相关性强时(如Gray码地址)实际翻转率远低于50%,需在Power仿真中标注saif,确认平均功耗。
3. 形式验证陷阱
若RTL把4输⼊XOR写成:assign y = ^ {a,b,c,d};⽽⽹表经⼯具重映射为OAI复合⻔,形式⼯具(Formality/Conformal)需设置“arithmatic XOR”映射规则,否则可能报不等价。
4. ⾼速接⼝场景
8b10b编码、PCIe的奇偶校验、ECC校验矩阵均依赖多输⼊XOR。验证时要构造“单bit错—双bit错—突发错”三级错误模型,确保XOR树能正确⽣成syndrome。
5. ⾯试反问
当⾯试官追问“还能再简吗”,可回答:“在标准单元边界内已⽆法进⼀步压缩;若允许⾃定义单元,可⽤传输管逻辑或动态逻辑降低晶体管数,但会引⼊电荷分享、功耗爬坡等验证难点,需额外做噪声与功耗签核。” 体现对后端与验证协同的深度思考。
1.1.3 描述同步复位和异步复位的区别及验证时的注意事项
解读:
国内数字IC⾯试中,复位策略是“基本功”问题,却最能暴露候选⼈是否具备“验证思维”。⾯试官不仅想听你背定义,更希望听到:
1. 你对亚稳态、时钟域交叉(CDC)的敏感度;
2. 能否在验证环境⾥主动构造“复位-时钟”组合场景,穷尽边界;
3. 是否理解DFT/低功耗设计对复位⽹络的额外约束,并在验证⽅案⾥落地。回答时务必把“区别”与“验证注意”⼀⼀对应,体现“质量守⻔员”视⻆。
知识点:
1. 复位原理
同步复位:复位信号只在有效时钟沿采样,与时钟严格对⻬。
异步复位:复位信号⽴即⽣效,与时钟⽆关;撤销时需做“异步复位同步释放”(Reset Synchronizer),防⽌亚稳态。
2. 电路结构差异
同步复位通常直接复⽤数据路径的触发器同步输⼊,⾯积⼩;但⾼扇出复位⽹络可能成为时序瓶颈。异步复位需插⼊专⽤复位端⼝,综合⼯具会识别为“异步set/reset”,⾯积略⼤,却可快速截断逻辑。
3. 时序约束差异
同步复位:SDC⾥当作普通data path,设setup/hold即可。
异步复位:需set_reset_path、set_false_path(对纯异步段),同时定义recovery/removal;撤销路径必须做时钟域同步,否则CDC⼯具报RESET_ASYNC。
4. 低功耗与DFT
同步复位更易做“时钟⻔控+复位⻔控”,功耗友好;异步复位在DFT模式下需强制置0/1,防⽌扫描链移位时意外复位,验证必须覆盖“DFT_mode下异步复位有效性”。
5. 验证关注项
a. 功能正确性:复位值是否匹配RTL spec,寄存器模型是否同步更新。
b. 时序健壮性:复位撤销是否在时钟沿±trecovery/tremoval窗⼝外。
c. 亚稳态与CDC:异步复位撤销是否经过两级同步器,有⽆半周期⽑刺。
d. 功耗/电源域:复位⽹络是否跟随电源域开关,掉电域重新上电后复位状态机能否⾃恢复。
e. 性能:⾼扇出同步复位⽹络是否造成时钟skew,影响max_freq。
答案:
⼀、区别
1. ⽣效时刻:同步复位依赖时钟沿,异步复位⽴即⽣效。
2. 撤销⻛险:同步复位⽆亚稳态;异步复位若直接撤销,复位释放沿可能与时钟沿冲突,导致亚稳态。
3. 电路⾯积:同步复位复⽤数据触发器,⾯积略省;异步复位需额外复位引脚及同步器,⾯积略增。
4. 时序约束:同步复位只需setup/hold;异步复位需recovery/removal,并做reset synchronizer。
5. 功耗/DFT:同步复位易⻔控,DFT友好;异步复位需额外控制,防⽌扫描移位误触发。
⼆、验证注意事项(与上述区别⼀⼀映射)
1. 功能向量:
同步复位:在“时钟沿前⼀⼩段时间、后⼀⼩段时间”分别置起/撤销,检查是否只在沿上⽣效。
异步复位:脱离时钟,任意相位拉起,确认⽴即⽣效;撤销时必须采样到“同步释放”后的第⼀个时钟沿,寄存器值才跳变。
2. 时序检查:
⽤$sdf_annotate反标带recovery/removal的SDF,跑gate_sim;若出现“r-/m-”违例,⽴即报bug。
对同步复位,⽤STA报告确认“reset tree skew < 0.3×时钟周期”,防⽌时钟⻔控使能窗⼝错位。
3. 亚稳态与CDC:
在UVM环境⾥插⼊“glitch injector”,在复位同步器第⼀级D输⼊插⼊0.2×时钟周期的⽑刺,看第⼆级是否过滤;若RTL未做两级同步,必现X传播,直接记CDC严重缺陷。
⽤Formal⼯具(Questa CDC或SpyGlass)做“reset_async_rule”,证明所有异步复位撤销路径都经过双触发器同步器。
4. 功耗场景:
构建“电源关断→保持→上电→异步复位撤销”序列,检查掉电域寄存器在上电后是否被可靠复位;若电源控制器未在复位⽹络前上电,需报架构缺陷。
5. DFT模式:
在scan_shift模式下,force dft_reset_disable=1,检查异步复位是否被钳位;若RTL漏掉钳位,扫描链移位时寄存器被复位,导致scan_pattern失效,记DFT严重缺陷。
6. 性能回环:
跑max_freq_scan时,分别disable/enable同步复位⽹络,对⽐最差路径;若复位树skew导致时钟使能窗⼝缩⼩,频率下降>3%,需要求设计插⼊复位树缓冲器。
拓展思考:
1. 混合复位策略:国内先进SoC常采⽤“上电异步复位+运⾏期软复位(同步)”两级策略。验证时要证明“软复位”不会打断异步复位同步器,防⽌出现“复位-复位”竞争。
2. 安全岛场景:⻋规芯⽚要求“安全岛”在主域掉电后仍保持状态。验证需覆盖“主域异步复位撤销⽽安全岛不复位”的交叉场景,确认岛内外寄存器值不污染。
3. 低功耗仿真与Formal的联合收敛:⽤UPF描述电源域后,Formal⼯具对“断电域异步复位”常报 unreachable;此时需⼈⼯写cover property,证明上电后复位同步器能在10个周期内完成初始化,否则⽆法sign-off。
4. 复位域交叉(RDC):国内14nm以下项⽬已开始单独签核RDC,验证团队需建⽴“复位-时钟”⼆维矩阵,⽤RDC⼯具检查“快复位域→慢时钟域”是否存在撤销脉冲被吞掉的⻛险,并补充专项向量。
篇幅原因,以上内容只是数字逻辑基础概念与布尔代数的内容,获取完整内容可以加微信:IC_Offers
280