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


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


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