最壞情況設計(worst-case design)
一座橋不是為平常日子裡的平常車設計的。它是為最重的卡車、在最冷的寒流中、用著生鏽的螺栓——而且全部同時發生——而設計的,因為「每件事都出錯」的那一天,正是它絕不能塌的那一天。最壞情況設計對電路而言就是同樣的思維習慣:你不是去確認它在室溫下用典型零件能動,而是去確認當每一個量同時漂到最有害的極端時,它依然能動。你為壞日子而設計,不是為好日子。
實務上你拿每一個變數——每個元件公差、電源電壓的上下擺動、溫度的冷熱、電晶體 beta 的最低與最高、負載的最重——問哪一種組合對你在意的規格最為苛刻,然後驗證電路在那裡仍然通過。這些極端組合就是角點(例如冷、加上高電壓、加上低 beta)。一個用典型電晶體給出完美工作點的偏壓電阻,必須用規格書容許的最低與最高 beta 來檢查,因為從同一捲料拿出來的零件,beta 可能這顆是 100、下一顆是 400。
這正是讓「在你工作台上能動的電路」和「在橫跨四季、十萬名顧客手中都能動的電路」分開的紀律。它刻意悲觀,沒錯,它讓設計變得稍大、稍貴、更保守——那是「不收到一大堆退貨」的代價。誠實的提醒是:真正的最壞情況(所有極端同時對齊)很罕見,可能過於嚴苛,所以工程師常把它和蒙地卡羅模擬配對使用,後者把骰子擲上數千次,看現實究竟多常咬人。在失效不可接受處用最壞情況;在它只是損及良率處用統計。
一個邏輯輸入至少需要 2.0 V 才會讀成高電位。驅動端典型給 2.4 V,但在最壞情況下(低電源、發熱、最弱的零件、加上長走線上的壓降)可能塌到 2.1 V。這仍然高過 2.0 V,所以設計通過了它最差的角點——但只是勉強過關,這就告訴你該加裕度了。
去檢查最殘酷的極端組合,而非那個舒適的典型情況。
真正的最壞情況假設所有極端同時對齊,這在統計上很罕見,可能讓設計做過頭。在失效只損及良率之處,蒙地卡羅模擬往往是更明智、更不浪費的檢查。