网表逆向:组合逻辑与时序分析实战
📚 共计 30 章节
01
网表逆向工程概述
什么是网表逆向?应用场景(IP分析、安全审计、设计恢复)。挑战与工具链概览。
概念
工具链
02
数字电路基础回顾
组合逻辑 vs 时序逻辑。基本门电路 (AND, OR, NOT, NAND, NOR, XOR)。真值表与布尔代数。
门电路
布尔代数
03
网表格式解析
SPICE网表 (.subckt, 器件声明, 节点连接)。Verilog网表 (module, wire, gate实例化)。EDIF格式简介。
SPICE
Verilog
EDIF
04
网表解析实战
使用Python (pyverilog, spicelib) 解析网表。构建图、节点、边数据结构。
Python
数据结构
05
组合逻辑识别基础
从网表中提取组合逻辑锥。识别标准单元 (AND, OR, MUX, XOR等)。
逻辑锥
标准单元
06
组合逻辑功能提取
从晶体管级网表提取逻辑功能。从门级网表提取布尔表达式。
功能提取
布尔表达式
07
组合逻辑化简
布尔代数化简。卡诺图在逆向中的应用。使用Python (sympy) 进行逻辑化简。
化简
sympy
08
多级组合逻辑分析
逻辑深度与扇入扇出分析。关键路径的静态时序分析 (STA) 基础。
STA
关键路径
09
时序元件识别
锁存器 (Latch) 与触发器 (Flip-Flop) 结构识别。时钟与复位信号追踪。
Latch
Flip-Flop
10
时序逻辑提取
从网表中提取有限状态机 (FSM)。状态转移图的逆向构建。
FSM
状态转移
11
时钟树分析
时钟缓冲器链识别。时钟分频器与门控时钟逆向。
时钟树
门控时钟
12
复位树分析
同步复位与异步复位识别。复位信号传播路径分析。
复位
同步/异步
13
存储器单元逆向
SRAM与寄存器堆 (Register File) 结构识别。地址译码器与读写控制逻辑。
SRAM
Register File
14
数据通路分析
加法器、乘法器、移位器识别。数据通路位宽与对齐分析。
数据通路
位宽
15
控制逻辑分析
控制器状态机提取。微码与微架构逆向推测。
控制器
微架构
16
层次化网表逆向
模块 (Module) 边界识别与划分。自顶向下与自底向上分析策略。
层次化
模块划分
17
网表等价性检查
组合逻辑等价性验证 (EC) 基础。使用工具 (ABC, Yosys) 验证。
EC
Yosys
18
时序约束逆向
从网表提取时序约束 (时钟周期、输入/输出延迟)。约束文件生成。
时序约束
SDC
19
静态时序分析 (STA) 入门
建立时间与保持时间分析。时序路径分类 (输入到输出、寄存器到寄存器)。
STA
setup/hold
20
STA工具实战
使用OpenSTA或PrimeTime进行网表时序分析。报告解读 (slack, violation)。
OpenSTA
PrimeTime
21
时序优化与修复
关键路径识别与优化。插入缓冲器、调整驱动强度。
优化
缓冲器
22
功耗分析基础
动态功耗与静态功耗。翻转率 (Toggle Rate) 提取。
功耗
翻转率
23
功耗优化技术
门控时钟、多阈值电压单元。从网表识别低功耗设计意图。
门控时钟
多阈值
24
网表逆向中的脚本自动化
使用Tcl/Python自动化网表分析任务。批量处理与报告生成。
Tcl
Python
25
网表可视化
使用Graphviz绘制电路图。交互式网表浏览工具开发思路。
Graphviz
可视化
26
安全审计中的网表逆向
硬件木马检测。后门逻辑识别。
安全
木马检测
27
IP核分析与保护
第三方IP核网表级分析。混淆与反混淆技术。
IP核
混淆
28
综合与网表生成
逻辑综合流程回顾。从RTL到网表的映射过程。
综合
RTL
29
网表逆向项目实战 (一)
对简单计数器网表完整逆向:从解析到功能提取。
项目
计数器
30
网表逆向项目实战 (二)
复杂通信接口网表逆向:综合运用组合逻辑与时序分析。
项目
通信接口