現(xiàn)代數字系統(tǒng)的設計流程是指利用eda開發(fā)軟件和編程工具對可編程邏輯器件進行開發(fā)的過程。在eda軟件平臺上,利用硬件描述語言hdl等邏輯描述手段完成設計。然后結合多層次的仿真技術,在確保設計的可行性與正確性的前提下,完成功能確認。接著利用 eda工具的邏輯綜合功能,把功能描述轉換成某一具體目標芯片的網表文件,輸出給該器件廠商的布局布線適配器,進行邏輯化簡及優(yōu)化、邏輯映射及布局布線,再利用產生的仿真文件進行包括功能和時序的驗證,以確保實際系統(tǒng)的性能,直至對于特定目標芯片的邏輯映射和編程下載等工作。
整個過程包括設計準備、設計輸入、設計處理和器件編程四個步驟以及相應的功能仿真、時序仿真和器件測試3個設計校驗過程。現(xiàn)代數字系統(tǒng)的設計流程如圖所示。
圖 現(xiàn)代數字系統(tǒng)的設計流程
(1) 設計準備
在設計之前,首先要進行方案論證、系統(tǒng)設計和器件選擇等設計準備工作。設計者首先要根據任務要求,判明系統(tǒng)指標的可行性。系統(tǒng)的可行性要受到邏輯合理性、成本、開發(fā)條件、器件供應、設計員水平等方面的約束。若系統(tǒng)可行,則根據系統(tǒng)所完成的功能及復雜程度,對器件本身的資源和成本、工作速度及連線的可布性等方面進行權衡,選擇合適的設計方案和合適的器件類型。
(2)設計輸入
設計輸入是設計者將所設計的系統(tǒng)或電路以eda開發(fā)軟件要求的某種形式表示出來,并送入計算機的過程。它根據eda開發(fā)系統(tǒng)提供的一個電路邏輯的輸入環(huán)境,如原理圖、硬件描述語言(hdl)等輸入等形式進行輸入。這些方法可以單獨構成,也可將多種手段組合來生成一個完整的設計。
設計輸入軟件在設計輸入時,還會檢查語法錯誤,并產生網表文件,供設計處理和設計校驗使用。
(3) 設計處理
設計處理是從設計輸入文件到生成編程數據文件的編譯過程。這是器件設計中的核心環(huán)節(jié)。設計處理是由編譯軟件自動完成。設計處理的過程如下:
① 邏輯優(yōu)化和綜合。由軟件化簡邏輯,并把邏輯描述轉變?yōu)樽钸m合在器件中實現(xiàn)的形式。綜合的目的是將多個模塊化設計文件合并為一個網表文件,并使層次設計平面化。邏輯綜合應施加合理的用戶約束,以滿足設計的要求。
② 映射。把設計分為多個適合用具體pld器件內部邏輯資源實現(xiàn)的邏輯小塊的形式。映射工作可以全部自動實現(xiàn),也可以部分由用戶控制,還可以全部由用戶控制進行。
③ 布局和布線。布局和布線工作是在設計檢驗通過以后由軟件自動完成的,它能以最優(yōu)的方式對邏輯元件布局,并準確地實現(xiàn)pld器件內部邏輯元件間的互連。
④ 生成編程數據文件。設計處理的最后一步是產生可供器件編程使用的數據文件。對cpld器件而言,產生熔絲圖文件即jdec文件;對fpga器件則生成位流數據文件。
(4) 設計校驗
設計校驗過程是使用eda開發(fā)軟件對設計進行分析,它包括功能仿真、時序仿真和器件測試。
功能仿真用于驗證設計的邏輯功能,它是在設計輸入完成之后,選擇具體器件進行編譯之前進行的邏輯功能驗證。功能仿真沒有延時信息,對于初步的邏輯功能檢測非常方便。仿真結果將會生成報告文件和輸出信號波形,從中便可以觀察到各個節(jié)點的信號變化。若發(fā)現(xiàn)錯誤,則返回設計輸入中修改邏輯設計。
時序仿真是在選擇了具體器件并完成布局、布線之后進行的快速時序檢驗,并可對設計性能作整體上的分析,這也是與實際器件工作情況基本相同的仿真。由于不同器件的內部延時不一樣,不同的布局、布線方案也給延時造成不同的影響,用戶可以得到某一條或某一類路徑的時延信息,也可給出所有路徑的延時信息,又稱延時仿真。若設計的性能不能達到要求,需找出影響性能的關鍵路徑,并返回延時信息,修改約束文件,對設計進行重新綜合和布局布線, 如此重復多次直到滿足設計要求為止。因此時序仿真對于分析時序關系,估計設計的性能以及檢查和消除競爭冒險等是非常有必要的。
直接進行功能仿真的優(yōu)點是設計耗時短,對硬件庫和綜合器沒有任何要求,尤其對于規(guī)模比較大的設計項目,綜合和布局布線在計算機耗時可觀,若每次修改都進行時序仿真,顯然會降低設計開發(fā)效率。通常的做法是:首先進行功能仿真,待確認設計文件滿足設計要求的邏輯功能后,再進行綜合、布局布線和時序仿真,把握設計項目在實際器件的工作情況。
(5) 器件編程
編程是把系統(tǒng)設計的下載或配置文件,通過編程電纜按一定的格式裝入一個或多個pld的編程存儲單元,定義pld內部模塊的邏輯功能以及它們的相互連接關系,以便進行硬件調試和器件測試。
器件編程需要滿足一定的條件,如編程電壓、編程時序和編程算法等。隨著pld集成度的不斷提高,pld的編程日益復雜,pld的編程必須在開發(fā)系統(tǒng)的支持下才能完成。
器件在編程完畢之后,對于具有邊界掃描測試能力和在系統(tǒng)編程能力的器件來說,系統(tǒng)測試起來就更加方便,它可通過下載電纜下載測試數據,探測芯片的內部邏輯以診斷設計,并能隨時修改設計重新編程。在整個設計實現(xiàn)過程中,開發(fā)軟件還有許多設計規(guī)則檢查程序可以利用來進行器件測試。