發展概況,定義,功能設計,程式語言,邏輯算法,模擬,自動化,微程式,組裝設計,邏輯劃分,布局,布線,組成,構造,參考書目,
發展概況
在較早的第二代計算機設計中,用計算機進行邏輯正確性驗證,生成連線表和生成測試模式等輔助設計方法已得到初步套用。積體電路和第三代計算機出現後,設計自動化的內容不斷擴大和更新,已從個別設計階段發展到一切階段,並逐漸形成了設計自動化系統。自70年代後,面向某些設計目標的商品化的設計自動化系統已研製成功。較大的計算機公司都已建立以資料庫為核心的綜合的互動設計自動化系統,如美國IBM公司的 EDS系統已有效地用於新型計算機和大規模積體電路的研製。
定義
計算機設計自動化,就是使用計算機來幫助設計和研製計算機,使設計工作在計算機幫助下,達到自動化或半自動化,從而減輕人的勞動和提高設計質量。使用計算機來幫助設計,亦常被稱為計算機輔助設計。按照問題的性質,有些設計工作是可以由人工預先安排好,編出程式由計算機去自動完成的,因而稱為設計自動化
功能設計
程式語言
一種描述硬體設計對象的形式語言。用這種語言能較方便地描述設計對象的行為、組成、組織和有關的控制特性,建立設計對象的模型。在計算機上,以這種模型作為源程式,通過專門的翻譯程式可以為輔助設計的功能程式提供便於處理的模型內部表示。
在不同的設計對象和目標下,已發展出許多不同的硬體描述語言。按對象分類,有系統描述語言、邏輯描述語言、固件(微程式)描述語言等。按語言特性分類大致有系統級、暫存器傳輸級、門級、電路級等描述語言。各級語言具有各自的側重點。例如,暫存器傳輸語言可以方便地用於描述暫存器、開關、存儲器、解碼器等構件之間的邏輯控制關係和信息傳輸關係,某些暫存器傳輸語言對於系統行為的描述或以邏輯門為構件的硬體描述也有一定能力。這類語言中典型的有DDL、CDL、AHPL等語言。結構式描述語言能分層逐級描述計算機,隨著設計進程的推進而使硬體描述不斷深化,適用範圍也較大,但尚處於研究和局部套用階段。
邏輯算法
套用自動邏輯綜合算法對需要綜合的邏輯函式進行邏輯最小化處理,並最終確定一個符合邏輯設計規範的、由可用的標準組件構成的網路。
早期使用較多的自動邏輯綜合算法是以處理真值表為基礎的奎因-麥克拉斯基法。這種算法比較簡單,但占主存儲器單元太多,執行時間過長,一般只適用於小型網路的邏輯綜合。廣泛採用的方法是用多維體表示邏輯函式,並使用一組算符對多維體進行代數拓撲運算,完成邏輯函式的綜合。現代已出現以資料庫為核心的智慧型化的自動邏輯綜合系統。
模擬
用硬體描述語言或通用程式設計語言建立設計對象的模型,並在計算機上對模型進行試驗,獲取所需的設計數據。
象硬體描述語言一樣,模擬也可以從巨觀到微觀或從粗到精劃分成許多級。系統級模擬主要用於評估計算機(大至計算機網,小到中央處理器)的巨觀特性,以幫助人們對系統設計的性能進行評價和分析,包括對系統設計方案的選擇和改進。暫存器級模擬主要用以考察數據在暫存器中的傳輸情況,常用於檢查操作表的正確性。門級模擬以邏輯門(不限單門)為模型的基本構件,用以考察信號在邏輯門或組件之間的傳輸情況,常用於邏輯設計的正確性驗證。大規模積體電路的出現,使許多組件內部的邏輯關係成為無從知悉的“黑箱”,門級模擬於是發展成以組件功能為構件的功能塊級模擬。電路級模擬以二極體、電晶體和電阻等為構件建立模型,用於邏輯電路瞬態特性的分析。按設計階段分類,對邏輯功能使用的模擬屬於邏輯模擬。此外,故障模擬用以獲取輸入模式的故障回響,生成測試檔案。
模擬技術的關鍵是模擬算法,按程式方式分,有編譯法和表驅動法(解釋法);按控制方式分,有下一事件法、編排級數法和時間映射法等;按狀態值分,有二值、三值、八值等算法。
自動化
微程式
早期使用彙編語言描述微程式,後廣泛使用 CDL等暫存器傳輸語言,並已出現適合固件設計的專用高級語言,同時還產生了各種編譯技術和微程式邏輯綜合技術,自動生成微程式代碼。微程式的最佳化問題有:最佳化微碼,儘量壓縮微指令的字長和字數;微碼變換,使通常稀疏的微碼陣列變換成稠密的微碼陣列。微程式模擬技術已大量用於微程式的正確性驗證。
組裝設計
組裝設計又稱工程化設計或實體設計,目的是把設計好的邏輯線路組合成組裝單元,並交付工廠生產。組裝方式因製造技術而異,一般都由機櫃(底板)、印製板外掛程式、積體電路組件和基本單元電路等若干組裝單元逐級構成。為減少設計的複雜性,組裝設計過程常分成邏輯劃分、布局、布線等若干階段。
邏輯劃分
根據組裝的限制條件和既定的目標,把整個邏輯線路逐級劃分成多個組裝單元或超大規模積體電路晶片,這就是邏輯劃分。經典的劃分方法幾乎完全以減少連線為目標,後又出現一些找近似最優解的逐次試探法。
門分配或組件分配是根據給定的標準組件庫,選擇總代價最小的標準組件的集合,全部實現已劃分的組裝單元。這一分配選擇問題在形式上可化為整數線性規劃問題,實際上也是用試探法求近似最優解。
布局
單元電路在大規模積體電路基片上的布置,組件在外掛程式板上的布置和外掛程式在機櫃底板上的布置,均屬於布局問題。布局可抽象成數學問題,例如在N≤M的條件下把N個元件分配到M個地點,使目標函式最優。對於外掛程式板上的組件布局,較多的算法均以滿足布線約束的總連線長度作為目標函式。布局過程通常是在人工確定的初始布局的基礎上,按一定的算法交換元件位置,直到連線總長度減少到某一近似最優值。常用的布局算法是構造型算法和疊代改進算法。為提高布局的實際效果,廣泛採用圖形顯示人-機互動布局。
布線
布局確定以後,便是按照元件的接線網表在板上布出連線各元件的導線的具體路徑,並滿足給定的限制條件和布線規則,這就是布線。布線過程可以分為分線、分層、定順序和走線四步。
① 分線:把接線網表中要求連線的幾個結點變成n-1對“點對”之間的接線表。減少總連線長度是分線的關鍵問題。常用的解法有推銷員路徑、最小生成樹、斯坦納樹等方法。
② 分層:把接線表中連線的“點對”合理地分配到不同走線層上去,使得各層上的連線互不衝突或衝突最小。分層的主要方法有按交叉點數分層和干涉度分層兩類。
③ 定順序:按照分層結果確定各層上的連線“點對”的走線順序。定順序算法中採用較多的是按長度定先後順序,也有兼顧線長和走線密度的投影密度法等。
④ 走線:按照各層的走線順序,在各自的走線平面上確定具體的走線路徑,最後形成連線表、布線圖等。走線算法很多,使用較廣的有迷路法、線段探索法和通道法等。
組成
從功能上看,一個實用的設計自動化系統主要由四大部分組成:①輸入部分對提供的各種形式的輸入信息(圖形、語言描述等)進行解釋和轉換;②輸出部分產生設計人員和生產製造所需的各種檔案和數據;③功能處理部分包含輔助完成各種設計和設計檢驗的多種功能處理程式;④設計自動化資料庫是核心部分,它是各功能程式進行數據交流所必需的。資料庫按所存的信息性質分為兩種:參考信息資料庫存儲設計的基準數據供程式公用,又稱程式公用資料庫;設計信息資料庫存放與設計過程有關的輸入、輸出和必要的中間信息。
構造
在綜合的設計自動化系統中,各子系統按一定的方法構成。構成方法大致有三類,分別對應三種設計自動化系統。
① 順序結構:這種設計自動化系統的各子系統象流水線那樣順序地處理設計數據。每個子系統獨立地處理由前面子系統送來的數據,並輸出數據供下一個子系統使用。
參考書目
M.A.巴留耳著,中國科學院計算技術研究所設計自動化組譯:《數字計算機設計自動化的理論和方法》,科學出版社,北京,1978。(M.A.Breuer, Design Automation of Digital System,Theory and Techniques,Prentice Hall,New Jersey,1972.)