【文章內(nèi)容簡介】
S y s t e m CC / C + +算 法 和 構(gòu) 架設(shè) 計 仿 真 工 具V H D LV e r i l o g H D LS y s t e m V e r i l o g設(shè) 計 輸 入 工 具R T L 檢 查 工 具驗 證 工 具仿 真 工 具綜 合 數(shù) 據(jù) 庫S y s t e m V e r i l o g綜 合 工 具時 序 分 析 工 具驗 證 工 具仿 真 工 具等 效 性 檢 查 工 具后 端 數(shù) 據(jù) 庫布 局 布 線 和參 數(shù) 提 取 工 具S y s t e m V e r i l o g 驗 證 仿 真 工 具 圖 14 ASIC 設(shè)計流程和各個步驟所使用的軟件工具 EDA 技術(shù)與 VHDL 程序開發(fā)基礎(chǔ)教程 ? 8 ? CPLD/FPGA設(shè)計 CPLD(Complex Programmable Logic Device,復雜可編程邏輯器 件 )和 FPGA(Field Programmable Garry Array,現(xiàn)場可編程門陣列 )隨著 EDA技術(shù)的發(fā)展已經(jīng)成為電子設(shè)計領(lǐng)域的重要角色,其應(yīng)用相當廣泛,同時也是本書介紹的重點。高集成度、高速度和高可靠性是CPLD/FPGA最明顯的特點。 隨著工藝的進步和特征尺寸的縮小,可編程器件的時鐘延時已經(jīng)小至 1ns甚至 ps 量級,加上結(jié)合并行工作的方式, CPLD/FPGA 在超高速應(yīng)用領(lǐng)域和實時監(jiān)控方面有著非常廣闊的前景。與 ASIC設(shè)計相比, CPLD/FPGA最顯著的優(yōu)勢就是開發(fā)周期短、投資風險小、產(chǎn)品上市快和 硬件升級余地大。圖 15 給出了一個 CPLD/FPGA的簡要設(shè)計流程,可以看出,對工程師而言其工序相對于 ASIC設(shè)計有明顯的減少。 功 能 定 義( F u n c t i o n a l S p e c . )硬 件 描 述( H D L )布 局 和 布 線( P l a c e amp。 R o u t e )綜 合( S y n t h e s i s )下 載 驗 證( D o w n l o a d amp。 V e r i f i c a t i o n )行 為 仿 真( B e h a v i o r a l S i m u l a t i o n )時 序 分 析( S t a t i c T i m i n g A n a l y s i s ) 圖 15 CPLD/FPGA 的一般設(shè)計流程 業(yè)內(nèi)的一些美國 IT 公司認為,一個 ASIC 設(shè)計的 80%的功能可用于 IP 核的構(gòu)建,而CPLD/FPGA僅僅是各類再應(yīng)用邏輯與 IP 核的拼裝,因而可以在很短時間內(nèi)完成十分復雜的設(shè)計,使產(chǎn)品快速進入市場,搶占市場份額。這些特性使它的發(fā)展前景一片光明。 EDA 工程的設(shè)計流程 一 個完整的 EDA工程通常涉及系統(tǒng)建模、邏輯綜合、故障測試、功能仿真、時序分析、形式驗證等內(nèi)容。而對于設(shè)計工程師而言,系統(tǒng)建模中的器件模型由生產(chǎn)廠商給出,工程師只需要完成系統(tǒng)設(shè)計、邏輯綜合、布局布線、仿真驗證和下載測試幾個步驟。 第 1 章 EDA 概 述 ? 9 ? 設(shè)計輸入 計算輔助設(shè)計的作用就是省去了大量的圖紙并可以隨時隨地對當前設(shè)計進行更改,然后進行加工制造,所以“設(shè)計輸入”是 EDA 技術(shù)中最基本也是非常重要的一環(huán)。舉一個簡單的例子,假如有一棟樓房需要建造。首先,建筑設(shè)計師需要用各種設(shè)計圖紙把將要建造的建筑表示出來;之后,相關(guān)財務(wù) 根據(jù)設(shè)計進行建筑預(yù)算;然后,根據(jù)具體的建筑設(shè)計圖紙和財務(wù)預(yù)算進行施工策劃和融資;之后,建筑隊根據(jù)最終的施工圖進行建造;當然最后還要進行最重要的一項就是“驗收”,以保證所建筑的房屋符合設(shè)計要求和安全性。 由上可知,對于目標器件為 FPGA/CPLD 的 EDA 工程設(shè)計,其設(shè)計流程也應(yīng)該有相似的步驟。首先,對描述具體電子系統(tǒng)的源程序進行“編輯輸入和編譯”,這些程序是用硬件描述語言編寫,通過特定的邏輯表達手段將目標系統(tǒng)表示出來;然后, EDA會通過相關(guān)的算法對源程序進行“邏輯綜合”,這個步驟可以理解為將第一步生成的邏輯表 達式進行一系列的分解和優(yōu)化,以形成更加簡單的邏輯表達式如“與或非”;接下來, EDA軟件將“邏輯綜合”生成的一系列邏輯表達式對應(yīng)于目標器件 FPGA/CPLD 進行“布線和適配”,即利用網(wǎng)表表示在具體的邏輯器件中實現(xiàn)“邏輯綜合”所生成的邏輯關(guān)系表達式;之后,工程師利用EDA軟件提供的“編程下載”功能將前面生成的網(wǎng)表變成具體的電路,即物理實現(xiàn);最后,和“驗收”一樣,工程師需要對實現(xiàn)的硬件系統(tǒng)進行硬件仿真和測試以檢測所實現(xiàn)的系統(tǒng)能否滿足設(shè)計需求。值得注意的是,在設(shè)計過程中和設(shè)計完成后還要進行大量的“仿真測試”,尤其是 比較復雜且龐大的系統(tǒng),其測試向量將會變得非常大,這樣就會導致測試時間過長,工作量很可能超過一個人年。所以測試方法學也是一個值得研究的方向,由于本書的局限性,請讀者參考其他測試方法學相關(guān)的書籍。圖 14 給出了具體的 EDA 設(shè)計流程,接下來將以VHDL 為例按步驟詳細介紹各個過程。 1. 源程序的編輯和編譯 利用 EDA 技術(shù)進行工程設(shè)計,首先要做的就是將目標系統(tǒng)用文本方式或者圖形方式表示出來,然后進行排錯編譯,變成工程師熟悉的 VHDL格式,為下一步的“邏輯綜合”做準 備。 2. 常用的輸入方法 常用的輸入方法有三種,其 中原理圖輸入和文本輸入為大多數(shù) EDA 設(shè)計軟件所支持;狀態(tài)機輸入方式比較有創(chuàng)意, EDA 軟件可以直接將狀態(tài)圖自動轉(zhuǎn)變成可編譯下載的 VHDL程序,大大簡化了狀態(tài)機設(shè)計的步驟,非常流行。 值得一提的是原理圖設(shè)計方法,當目標系統(tǒng)不是非常龐大時,這種設(shè)計方法很有幫助,易讀性強,有利于提高工作效率。但是,當目標系統(tǒng)變得很大時,這種設(shè)計方法會使設(shè)計圖變得密密麻麻,走線也非常繁雜,反而降低了易讀性,很難搞清電路的實際功能,從而導致EDA 技術(shù)與 VHDL 程序開發(fā)基礎(chǔ)教程 ? 10 ? 相應(yīng)設(shè)計移植、入檔和交流都很困難,不利于團隊合作。因此,作者比較支持傳統(tǒng)的文本輸入方式,這種方式 最普遍,任何支持 VHDL 的 EDA工具都會支持文本方式的編輯和編譯。圖 16 更加具體地描述了 VHDL 開發(fā) FPGA/CPLD 電子系統(tǒng)的流程。 V H D L 仿 真 器( S i m u l a t o r )行 為 仿 真( B e h a v i o u r )功 能 仿 真( F u n c t i o n a l )時 序 仿 真( T i m i n g A n a l y s i s )文 本 編 輯 器( T e x t E d i t o r )圖 形 編 輯 器( G r a p h E d i t o r )生 成 V H D L 源 程 序( V H D L S o u r c e C o d e )V H D L 綜 合 器( S y n t h e s i s )綜 合 / 優(yōu) 化( O p t i m i z a t i o n )各 種 網(wǎng) 表 文 件 ,如 E D I F 、 X N F 、 V H D L 等( N e t l i s t s )F P G A / C P L D 布 線 和 適 配( P l a c e amp。 R o u t e )適 配 的 自 動 優(yōu) 化( O p t i m i z a t i o n )門 級 仿 真 器 功 能 仿 真( P o s t S i m u l a t i o n )