当前位置: 首页 > news >正文

5. TCAM学习笔记

L5:TestMax —— 把 SMS「插进」SoC RTL

L1~L4 学的是:macro 是什么、SMS 子系统怎么工作、Server 怎么对外。但真实芯片里,功能 RTL 最初只有一颗裸 macrocore_rtl/core.v里直接例化 TCAM),并没有 Server/Processor/Wrapper。

TestMax干的事就是:读功能 RTL +.masis_c自动规划、生成、插入、连接整套 SMS,并做连通性检查和 BIST 仿真验证。

本 case 入口脚本:run_testmax.shscripts/testmax_sms.tcl,在WORK/目录下跑testmax_shell

本篇(L5)目标:搞懂 TestMax MBIST 流程里每条命令干什么、和 L3 Integrator 的关系、本 case 输入输出是什么、以及 validate 报告怎么读。


0. L5 在全局地图里的位置

L1 .masis_c(接口合同) │ ▼ L2 Macro RTL(黑盒或全模型) │ ▼ L3 Processor + Wrapper ─┐ L4 Server(IEEE1500) ─┤ SMS 子系统(Integrator / core_prj.ish; │ generate_dft 内部也会调同一套 Compiler) │ ▼ L5 TestMax:plan → generate → connect → validate ←── 本篇(焊进 SoC RTL) │ ▼ 插 SMS 后的 core.v + SMS_constraints → 综合/STA/量产 │ ▼ L6 Verifier(validate_dft 里也会调) / L7 YA pattern

一句话:L3+L4 是 SMS 子系统本身;L5 是把它插进 SoC 并做连通/BIST 验证。


1. 本 case 输入 vs 输出

输入(插 SMS 前)

core_rtl/core.v——极简功能顶层,只有时钟 + 1 颗 macro:

module core ( clk1001 ); input clk1001; sadtcs0g4l1p128x68... u_tcam128x68_inst1 ( .CLK(clk1001), ... ); endmodule

另需:

输入路径作用
.masis_cmasis/sadtcs...masis_cTestMax 识别 memory 类型、BIST 口
RTL filelistscripts/sms_rtl.f目前只含core_rtl/core.v
仿真模型sms_sim_model/Verifier 仿真用
标准单元库$ILANE_LIB_PATHNDM lib

输出(connect_dft 后)

输出路径内容
插 SMS 后的 RTLWORK/output/Verilog/core.v顶层冒出 IEEE1500 + SMART BIST pin
StubWORK/output/stub/综合用黑盒 stub
SMS 约束WORK/SMS_constraints/write_dft_constraint写出
报告WORK/tmm_wdir/report/plan / connectivity / memory 等
Verifier 仿真WORK/verifier_project_simulation/verify_mbist_system产物

插完后的顶层端口(节选)——这就是 L4 Server 要对外的口:

clk1001 vl_srv_WRCK, vl_srv_WSI, vl_srv_WSO, vl_srv_SelectWIR, ... vl_srv_smart_bist_srv, vl_srv_fast_mode_srv, ... vl_srv_ready_sms_srv, vl_srv_fail_sms_srv, ... vl_sms_dm0, vl_sms_dm1, vl_sms_dm2

内部层次:core_srv_1core_proc_1core_wrap_...→ macro 黑盒。


2. TestMax 流程(本 casetestmax_sms.tcl

Phase 1:读设计

analyze -format sverilog -vcs "-f ../scripts/sms_rtl.f" elaborate core set_top_module core setup_rtl_flow create_clock -name clkgrp_user_1001 -period 1 { clk1001 } # 1ns = 1GHz

macro 此时是unresolved reference(黑盒),TestMax 仍可通过.masis_c识别 memory 实例。

Phase 2:DFT 配置

set_dft_configuration -mbist enable

set_dft_access_element——把 L3core_prj.ish里的参数告诉 TestMax,保证生成的 SMS 与手工一致:

type本 case 参数
sub_serversrv_smart_bist_en true,enable_hard_repair true
cam_processorsmart_bist_en true,talgo_prog_enable true,treg_algo 1
cam_wrapperadd_user_pins_to_builder_list false

set_mbist_configuration——绑定 SMS 工程资源:

set_mbist_configuration -project_name core_prj set_mbist_configuration -masis_file "../masis" set_mbist_configuration -simulation_models "../sms_sim_model" set_mbist_configuration -allow_module_override on set_mbist_configuration -setup_options { extract_rcl.limited_test_pin_propagation true extract_rcl.connect_proc_clocks 1 extract_rcl.connect_proc_resets 1 extract_rcl.connect_proc_dms 1 }

要点:

  • -masis_file:L1 的.masis_c在此被 TestMax 消费
  • connect_proc_clocks:把 Processor 的clk_sms接到 macro 的CLKclk1001
  • limited_test_pin_propagation:避免 memory 功能 pin 全部 propagate 到 chip top

Phase 3:SMS 三步走

步骤命令内部工具干什么
① 规划plan_dftSTAR Planner读 memory、分组、时钟检查;出dft_memory_report.rpt
② 生成generate_dftIntegrator + Builder生成 Server/Proc/Wrapper RTL(≈ L3core_prj.ish
③ 连接connect_dftrtl_modifier把 SMS 层次插进core.v,连线到 macro BIST 口

本 caseplan_dft结果:1 个 memory 实例core.u_tcam128x68_inst1,时钟clk1001@ 1000 MHz。

Phase 4:约束 + 验证

write_dft_constraint -sms -sms_outdir SMS_constraints validate_dft -check connectivity validate_dft -check verify_mbist_system
检查干什么
connectivity静态分析 Processor→Wrapper→macro 路径是否可达
verify_mbist_systemSTAR Verifier跑 BIST 仿真(bist_allrepair_verification等)

3. 本 case 实际跑通结果

plan_dft/generate_dft/connect_dft

成功(STAR Planner / Integrator / Builder completed successfully)。

validate_dft -check connectivity

统计数值
Total messages1884
Error69
Info(路径 OK)1815

69 个 Error 的原因:macro 是黑盒,RTL 里看不到TWETVBIBISTEQ[67:0]等内部 pin,工具报no design object found。这是blackbox 预期行为,不是 SMS 连错。

真正重要的 Info 路径都 OK,例如:

clk1001 → vl_sms_core_proc_1_sms_1_stp/clk_sms Processor/biste → Wrapper/biste Processor/WSO → Server/sms_wso

validate_dft -check verify_mbist_system

全部PASSED

<signature_reg_check> TEST FLOW PASSED <sms_status> TEST FLOW PASSED <bist_all> TEST FLOW PASSED <bist_all_fail> TEST FLOW PASSED <repair_verification> TEST FLOW PASSED

说明:插 SMS 后的设计能跑通 VLCAM BIST 和 repair 验证(L6 Verifier 细讲)。


4. L3 Integrator vs L5 TestMax

L3(core_prj.ishL5(testmax_sms.tcl
工具Embed-It IntegratorTestMax Shell
输入手工指定组件/参数功能 RTL +.masis_c
输出core_prj/compout/views/WORK/output/Verilog/core.v
连线不连 SoCconnect_dft 自动连线
验证QA sim argsvalidate_dft
关系可单独跑;TestMaxgenerate_dft会调同一套 Compiler自动化端到端

本 case 两者参数对齐:srv_smart_bist_ensmart_bist_entalgo_prog_enable等完全一致。


5. 关键命令速查

命令一句话
set_dft_configuration -mbist enable打开 MBIST client
set_dft_access_element指定 SMS 组件类型和编译参数
set_mbist_configuration.masis_c、仿真模型、Integrator 选项
plan_dft规划 memory 分组和时钟
generate_dft生成 SMS IP(Server/Proc/Wrapper)
connect_dft插入并连接 RTL
write_dft_constraint -sms写 SMS 时序/约束
validate_dft -check connectivity静态连通性
validate_dft -check verify_mbist_systemVerifier BIST 系统仿真

Man page:man -M /global/apps/tmm_2025.06/doc/TESTMAX/man <command>


6. 和 L4/L6/L7 的衔接

L5 connect_dft 后的顶层 IEEE1500 pin ↓ L4 Server 行为(WRCK 移位 BIST_RUN) ↓ L5 validate_dft → 调 L6 Verifier 仿真 ↓ L7 YA 根据 SMS_constraints / UDS 生成 ATE pattern

量产时:TestMax 插完 SMS → 约束给 DC/PT → YA 出 pattern → ATE 从vl_srv_*pin 进 Server 跑 BIST。


7. L5 小结

TestMax = 读裸 macro RTL +.masis_c,自动 plan/generate/connect 整套 SMS 到 SoC,写出带 IEEE1500 端口的core.v,并用 Verifier 验证 BIST 能跑通。本 case 连通性 69 个 error 是黑盒 macro 所致,系统级 BIST 仿真全部 PASS。


8. 自测题

  1. 本 case TestMax 入口脚本?
  2. 插 SMS 前后的core.v顶层端口差多少?
  3. set_mbist_configuration -masis_file指向哪?
  4. plan_dft/generate_dft/connect_dft各调什么工具?
  5. connect_proc_clocks解决什么问题?
  6. 本 case 有几个 memory 实例?
  7. connectivity 69 个 Error 的主要原因?
  8. verify_mbist_system测了哪些 flow?
  9. L3 和 L5 生成的 SMS 参数怎么对齐?
  10. 插 SMS 后的 RTL 输出路径?
答案
  1. run_testmax.shscripts/testmax_sms.tcl
  2. 插前只有clk1001;插后增加~20 个vl_srv_*/vl_sms_dm*DFT pin。
  3. ../masis(含本 macro 的.masis_c)。
  4. Planner /Integrator+Builder/rtl_modifier
  5. 把 Processorclk_sms接到 macroCLK
  6. 1 个u_tcam128x68_inst1)。
  7. macro黑盒看不到TWEBISTE等 BIST pin。
  8. signature_reg_checksms_statusbist_allbist_all_failrepair_verification
  9. 通过set_dft_access_element设与core_prj.ish相同参数。
  10. WORK/output/Verilog/core.v

速查(L5)

  • 脚本:run_testmax.sh·scripts/testmax_sms.tcl
  • 功能 RTL:core_rtl/core.v
  • 插 SMS 后 RTL:WORK/output/Verilog/core.v
  • 报告:WORK/tmm_wdir/report/plan_dft/·validate_dft_connectivity/
  • 约束:WORK/SMS_constraints/
  • Man page:DOC/L5_TestMax/man_pages/*.2
  • 本 case:1×128×68 XYCAM;connectivity 69 err(blackbox);verify_mbist_system 全 PASS

下一篇:L6 — Verifier 仿真验证(fault injection、+chk_bist)

http://www.jsqmd.com/news/1302406/

相关文章:

  • 如何使用Nerdbank.Streams实现进程内通信:FullDuplexStream完全解析
  • 常州本地黄金回收实测|收的顶黄金奢侈品回收,闲置黄金变现省心靠谱 - 一日一测评
  • 河南周边有封闭式正规文武学校吗?2026 武校盘点,附带校区地址、报名方式,支持就近到校参观【招生热线】 - 全国文武学校招生
  • AI 编程工具火了,为什么我的简历还是石沉大海?
  • 5分钟搞定B站视频下载:跨平台神器BilibiliDown完全指南
  • 紧急预警:2024Q3起,未接入动态定价AI的中型餐厅将面临17.2%毛利挤压(附ROI测算工具包)
  • 如何在5分钟内为Unity游戏开启自动翻译:XUnity.AutoTranslator完整使用指南
  • 如何使用PyGraft配置文件:10个关键参数优化知识图谱生成
  • OpenWork扩展与OpenCode集成:构建强大的自定义工作流
  • 北京博亚信诚科技值得推荐吗 - 17328623207
  • 记录一下 Python 连接达梦数据库的整个流程,附 CRUD 示例
  • 系统集成项目管理工程师培训课程适合哪些人? - 众智商学院官方
  • 专业开源Flash反编译工具JPEXS FFDec:5个高效技巧助你完美迁移数字资产
  • Codex 接入真实项目后,我为什么反而更担心“权限与日志”了?
  • 深度剖析:代码混淆加密价值、主流工具横向对比,代码安全未来是否存在替代方案?
  • Mission Planner:5分钟掌握开源无人机地面站的完整使用指南
  • 武汉普通货运道路运输许可证怎么申请?拆解申报卡点,高效拿证 - 招小财
  • 从文本到图表:Mermaid Live Editor如何用代码思维重塑可视化工作流
  • 从85%到5%:嘎嘎降AI双引擎技术如何帮SCI投稿用户稳过iThenticate检测
  • AI 智能电动升降书架智能功率 覆盖主驱动、辅助保护、控制供电的完整选型方案
  • 为什么你的LLM总把“2025-02-29”当成有效日期?深度拆解ISO 8601兼容性漏洞与闰年推理缺陷
  • 挑选武校优先实地考察!河南周边正规文武学校清单,地址与正规报名渠道公示【2026最新招生热线】 - 全国文武学校招生
  • 2026年秦皇岛梵克雅宝回收指南:(185-3117-2838)海港区民族路94号实体店赵掌柜二奢规范服务详解 - 赵掌柜二奢
  • 【国家级智能网联示范区核心架构】:揭秘高并发路口决策引擎的7层安全冗余设计与毫秒级响应机制
  • 北京博亚信诚科技靠谱吗 - 18002239949
  • P5278 算术天才⑨与等差数列 题解
  • OpCore-Simplify:终极黑苹果EFI生成器,15分钟完成专业配置的图形化工具
  • LangGraph工作流踩坑记:权限日志没配好,Agent上线直接崩
  • LoRA训练实战9:Wan2.2人物角色LoRA极简训练法,上手指南!
  • 数据流动安全监测平台泛在监测与全链路防护技术研究