1986-BDD二元決策圖#
案件摘要#
布林函數的表示是一場戰爭:真值表 \(2^n\) 行、SOP 積項指數——每種表示都撐不住大電路,且「兩個電路是否等價」這個驗證核心問題遲遲無高效解。1986 年,CMU 的 Randal Bryant 在《IEEE Trans. Computers》發表 BDD(二元決策圖)論文:規定變數順序、合併同構子圖、刪除冗餘節點——得到一個典範(canonical)表示:同一函數的 BDD 唯一,因此等價檢查 = 指標比較, \(O(1)\) !加上高效的 Apply 運算子,BDD 讓百萬閘電路的等價檢查、符號模擬、模型檢查第一次可行。這是 EDA 驗證革命(1990 符號模型檢查)的數學地基,也是 Bryant 獲 1998 ACM Turing 時代前最重要的一篇 EDA 論文之一。
前因 -- 為什麼會有這個案子#
- 驗證是瓶頸:1980 年代設計規模達數萬閘,模擬驗證(向量 + 模擬器)覆蓋率無法窮盡——「證明等價」是夢想。
- 表示法的混亂:真值表 \(O(2^n)\) 、SOP/DNF 指數、電路圖非典範(同一函數多種畫法)——沒有一種表示兼顧緊湊與唯一。
- 決策圖的先例:Shannon 展開(1938)的遞迴分解、Lee(1959)的二元決策程式、Akers(1978)的 binary decision diagrams 雛形——概念已存在,缺「典範化」的關鍵一步。
- CMU 的現場:Bryan? (Bryant)研究符號模擬與 MOS 電路驗證,需要能操作「整個輸入空間」的表示法。
線索與推理 -- 數學式、程式、理論#
核心:三條規則鑄成典範#
以固定變數順序 \(\pi\) ,用 Shannon 展開遞迴建樹:
樹會指數爆;Bryant 的三條化簡規則把它壓成 DAG: 1. 冗餘測試:若 \(f|_{x_i=0} = f|_{x_i=1}\) ,刪除該節點(函數不依賴 \(x_i\) ); 2. 同構合併:相同子函數的節點只留一個(hash-consing 唯一化); 3. 順序固定:所有節點沿 \(\pi\) 遞增。
結果:每個布林函數的 ROBDD(約化有序 BDD)唯一——典範性(canonicity):
等價檢查從指數級的 SAT 化為 \(O(1)\) 指標比較——這是驗證的奇蹟時刻。
Apply:布林運算在 DAG 上#
兩 BDD 的 AND/OR/XOR 用記憶化遞迴(memoization)在 DAG 上做:
複雜度 \(O(|BDD(f)| \cdot |BDD(g)|)\) ——雖然最壞指數(乘法器函數是 BDD 的天敵),但控制邏輯實務上極為緊湊(萬閘電路常僅數千節點)。
變數順序:BDD 的阿基里斯腱#
同函數不同順序,BDD 大小可差指數倍(如 \(f = x_1 y_1 + x_2 y_2 + \cdots\) )——變數排序本身 NP-hard,實務用動態重排(sifting, Rudell 1993)。這個弱點最終由 AIG/SAT(2005 案)接手補位。
結案 -- 後果與影響#
- 符號模型檢查的燃料:Burch-Clarke-McMillan(1990)把 CTL 模型檢查的狀態集合用 BDD 表示——工業級驗證自此可行,2007 年 Clarke 等獲 Turing 獎。
- 等價檢查成為流程必備:合成前後、版圖前後的等價性(LEC)工具全部以 BDD/其後繼為引擎——今日驗證流程的心臟之一。
- 學科的合流:BDD 把 Shannon 展開(1938)、圖論(DAG)、動態規劃(Apply 的記憶化)鑄成一體——EDA 驗證自此有了嚴格的數學基礎。
- Bryant 的雙程:BDD(1986)之後,Bryant 又是形式驗證理論與 model checking 的持續推手,2007 年與 Clarke、Emerson、Sifakis 同獲 Turing 級認可(Clarke/Emerson/Sifakis 獲獎;Bryant 獲 1998 ACM Kanellakis 獎)。
關鍵人物與文獻#
- Randal E. Bryant:CMU 教授,BDD 典範化之父,後為 ACM/IEEE 雙會士、DARPA 計畫推手。
- 文獻:
- R. E. Bryant, "Graph-Based Algorithms for Boolean Function Manipulation," IEEE Trans. Computers C-35, 677 (1986).
- S. B. Akers, "Binary Decision Diagrams," IEEE Trans. Computers C-27, 509 (1978)(前身)。
- R. L. Rudell, "Dynamic Variable Ordering for Ordered Binary Decision Diagrams," ICCAD 1993(sifting 重排)。