基于IP庫的可編程器件輔助設計軟件
1 引言
本文引用地址:http://www.j9360.com/article/189782.htm在基于MCU的系統設計中,一般采用MCU+PLD的系統結構。PLD器件具有在系統現場可重復編程的能力,用來實現系統的I/O接口等外圍功能。在這類系統中,絕大多數的數字邏輯可在PLD器件內部完成。在設計一個新系統時,應盡可能利用以往設計中已使用過的IP模塊,這些模塊的設計已成熟、并經過時間考驗,可提高設計的重復利用率,并使系統性能和質量得到保證。
在長期的設計工作中,人們已積累了大量的IP 模塊,如在一個新的設計中加以利用,必然存在如何管理這些模塊的問題。為此可采用集約式的設計方法,以提高設計效率。硬件集約式的設計方法如圖1所示,它類似于軟件中高級語言的設計方式。先用HDL語言對各種不同功能的電路模塊建立IP模塊,創建電路單元IP庫。然后根據設計規范的要求,從庫中選取不同的電路單元組成描述外圍接口電路的HDL程序。最后,用相應的PLD 設計工具對HDL程序進行邏輯綜合,在PLD器件內部完成布局布線,生成最終的數字電路。由于這些電路單元是用HDL語言描述的,而HDL語言的特點就是與工藝無關,因此用它描述的電路單元的可移植性非常好,可以在采用不同工藝制造的PLD器件中使用。于是,電路單元庫可以用在不同的系統中,避免了重復設計與資源浪費。


Xilinx公司和Altera公司的設計工具中,提供了一些HDL形式的電路庫。不過庫單元都是比較簡單的小規模數字電路,如邏輯門、74系列器件等,對中、大規模和復雜邏輯時序電路的設計幫助不大。另外也有一些外圍功能模塊和復雜邏輯的單元庫提供如通用異步收發器、有限沖擊響應濾波器等,但不是以HDL的形式提供的,只適用于某些特定的PLD器件,移植性比較差。因此,在實際工作中編制了一個管理和組合HDL電路單元IP庫的輔助設計軟件--HAD軟件。通過HAD軟件,對設計好的HDL電路庫進行管理,按照系統設計規范的要求從庫中選取相應的電路單元并將它們組合起來,大大降低了系統設計和調試的難度,提高了系統的穩定性和可靠性,并且有利于系統日后的升級。
輔助設計(HAD)軟件主要是對HDL語言的電路起一個輔助設計的作用。HAD軟件的功能有兩個:管理電路單元IP庫以及生成所需外圍電路的 HDL程序。
電路單元庫的管理主要有兩個方面:電路單元接口的管理以及電路單元HDL程序的管理。因此,電路單元庫是由兩個庫組成的,一個是電路單元的接口庫,另外一個是電路單元HDL程序庫[7]。電路單元接口庫里的基本單位是各個電路單元的接口信息,電路單元HDL程序庫里的基本單位是描述各種電路單元的HDL源程序。類似于標準芯片,如8255芯片,電路單元的接口信息描述了這個標準芯片的輸入輸出以及它的功能,相當于8255的管腳和使用功能說明;而電路單元HDL程序描述了這個標準芯片內部的實際電路以及用何種電路結構實現相應功能的,這相當于8255芯片內部的電路組成和結構。對于管理一個庫來說,基本的操作主要是新增、刪除和修改庫單元。
HAD軟件的最終目的就是生成外圍電路的HDL 程序。也就是根據系統設計規范的要求從IP庫中選取合適的電路單元,再以適當的形式組合起來,成為一個完整的HDL程序。
3 電路模塊HDL程序生成
HAD軟件中最主要的功能就是電路模塊HDL程序的生成。生成電路模塊的HDL程序的過程,主要就是對電路單元IP庫中的某些單元進行若干次例化的過程。
進行例化就必須具備兩個條件:首先要有模塊輸入輸出端口的列表,其次要知道的是與這些端口相連接的信號列表。根據兩者的對應關系,完成例化,然后將例化好的電路模塊組合起來,成為一個HDL程序文件?
生成電路模塊HDL程序的流程如圖2所示:


通過上面的分析,首先創建兩個數據庫。一個存放各種模塊HDL程序的源文件,另外一個存放與各個模塊相對應的輸入輸出端口的信號列表。
評論