1、引言
在基于MCU的系統(tǒng)設(shè)計中,一般采用“MCU+PLD”的系統(tǒng)結(jié)構(gòu)。PLD器件具有在系統(tǒng)現(xiàn)場可重復(fù)編程的能力,用來實現(xiàn)系統(tǒng)的I/O接口等外圍功能。在這類系統(tǒng)中,絕大多數(shù)的數(shù)字邏輯可在PLD器件內(nèi)部完成。在設(shè)計一個新系統(tǒng)時,應(yīng)盡可能利用以往設(shè)計中已使用過的IP模塊,這些模塊的設(shè)計已成熟、并經(jīng)過時間考驗,可提高設(shè)計的重復(fù)利用率,并使系統(tǒng)性能和質(zhì)量得到保證。 在長期的設(shè)計工作中,人們已積累了大量的IP 模塊,如在一個新的設(shè)計中加以利用,必然存在如何管理這些模塊的問題。為此可采用“集約式”的設(shè)計方法,以提高設(shè)計效率。硬件“集約式”的設(shè)計方法如圖1所示,它類似于軟件中高級語言的設(shè)計方式。先用HDL語言對各種不同功能的電路模塊建立IP模塊,創(chuàng)建電路單元IP庫。然后根據(jù)設(shè)計規(guī)范的要求,從庫中選取不同的電路單元組成描述外圍接口電路的HDL程序。最后,用相應(yīng)的PLD 設(shè)計工具對HDL程序進行邏輯綜合,在PLD器件內(nèi)部完成布局布線,生成最終的數(shù)字電路。由于這些電路單元是用HDL語言描述的,而HDL語言的特點就是與工藝無關(guān),因此用它描述的電路單元的可移植性非常好,可以在采用不同工藝制造的PLD器件中使用。于是,電路單元庫可以用在不同的系統(tǒng)中,避免了重復(fù)設(shè)計與資源浪費。
Xilinx公司和Altera公司的設(shè)計工具中,提供了一些HDL形式的電路庫。不過庫單元都是比較簡單的小規(guī)模數(shù)字電路,如邏輯門、74系列器件等,對中、大規(guī)模和復(fù)雜邏輯時序電路的設(shè)計幫助不大。另外也有一些外圍功能模塊和復(fù)雜邏輯的單元庫提供如通用異步收發(fā)器、有限沖擊響應(yīng)濾波器等,但不是以HDL的形式提供的,只適用于某些特定的PLD器件,移植性比較差。因此,在實際工作中編制了一個管理和組合HDL電路單元IP庫的輔助設(shè)計軟件--HAD軟件。通過HAD軟件,對設(shè)計好的HDL電路庫進行管理,按照系統(tǒng)設(shè)計規(guī)范的要求從庫中選取相應(yīng)的電路單元并將它們組合起來,大大降低了系統(tǒng)設(shè)計和調(diào)試的難度,提高了系統(tǒng)的穩(wěn)定性和可靠性,并且有利于系統(tǒng)日后的升級。
2、 HAD輔助設(shè)計軟件功能
輔助設(shè)計(HAD)軟件主要是對HDL語言的電路起一個輔助設(shè)計的作用。HAD軟件的功能有兩個:管理電路單元IP庫以及生成所需外圍電路的 HDL程序。
電路單元庫的管理主要有兩個方面:電路單元接口的管理以及電路單元HDL程序的管理。因此,電路單元庫是由兩個庫組成的,一個是電路單元的接口庫,另外一個是電路單元HDL程序庫[7]。電路單元接口庫里的基本單位是各個電路單元的接口信息,電路單元HDL程序庫里的基本單位是描述各種電路單元的HDL源程序。類似于標準芯片,如8255芯片,電路單元的接口信息描述了這個標準芯片的輸入輸出以及它的功能,相當(dāng)于8255的管腳和使用功能說明;而電路單元HDL程序描述了這個標準芯片內(nèi)部的實際電路以及用何種電路結(jié)構(gòu)實現(xiàn)相應(yīng)功能的,這相當(dāng)于8255芯片內(nèi)部的電路組成和結(jié)構(gòu)。對于管理一個庫來說,基本的操作主要是新增、刪除和修改庫單元。
HAD軟件的最終目的就是生成外圍電路的HDL 程序。也就是根據(jù)系統(tǒng)設(shè)計規(guī)范的要求從IP庫中選取合適的電路單元,再以適當(dāng)?shù)男问浇M合起來,成為一個完整的HDL程序。
3、 電路模塊HDL程序生成
HAD軟件中最主要的功能就是電路模塊HDL程序的生成。生成電路模塊的HDL程序的過程,主要就是對電路單元IP庫中的某些單元進行若干次例化的過程。
進行例化就必須具備兩個條件:首先要有模塊輸入輸出端口的列表,其次要知道的是與這些端口相連接的信號列表。根據(jù)兩者的對應(yīng)關(guān)系,完成例化,然后將例化好的電路模塊組合起來,成為一個HDL程序文件,生成電路模塊HDL程序的流程如圖2所示:
通過上面的分析,首先創(chuàng)建兩個數(shù)據(jù)庫。一個存放各種模塊HDL程序的源文件,另外一個存放與各個模塊相對應(yīng)的輸入輸出端口的信號列表。
存放HDL程序的源文件的數(shù)據(jù)庫比較簡單,對它的操作僅限于對文件內(nèi)容的復(fù)制,因此這里不作進一步的討論。
存放端口信號列表的數(shù)據(jù)庫結(jié)構(gòu),如表1所示。
表1中,最上面的一行是數(shù)據(jù)庫的表頭,字段名代表了每一個字段下面內(nèi)容的具體含義。其中,module為電路單元模塊名;detail為存放模塊端口詳細信息的數(shù)據(jù)庫名;PortN代表了模塊中某個端口的名字, N是自然數(shù)。
從表1中第二行開始的記錄是不同的模塊。例如,第二行記錄所描述的模塊是帶有一個異步清零端的D觸發(fā)器,模塊名是DFF,模塊端口的詳細信息存放在DFF_D的數(shù)據(jù)庫文件中,總共有4個端口,分別是CLK、CLR、D和Q。數(shù)據(jù)庫文件 DFF_D中存放的是每個端口的方向和寬度。
以DFF模塊為例,其對應(yīng)的數(shù)據(jù)庫文件DFF_D 的內(nèi)容如表2所示:
數(shù)據(jù)庫文件DFF_D的字段有兩類,前一半的字段都是以“Pn_io”的形式出現(xiàn),代表了這個端口的流向,是輸入、輸出還是雙向。后一半的字段都是以“Pn_bit”的形式出現(xiàn),代表了這個端口信號的寬度。
通過上面兩類數(shù)據(jù)庫,就可以完整地掌握一個模塊的所有接口信息。
在圖1所示的流程圖中,最重要的一步就是 “進行例化、組合”。根據(jù)上述幾個數(shù)據(jù)庫的定義和描述,例化和組合的流程如圖3所示。圖中兩個預(yù)備處理(六邊形框)的工作是“例化組合”前的準備工作。根據(jù)系統(tǒng)設(shè)計規(guī)范的要求,確定所需功能模塊的種類和數(shù)量,然后由設(shè)計者來確定所有模塊及其輸入輸出信號的名字。這些操作都可以通過鍵盤輸入的方式來完成,從而將例化和組合過程中所需的信息傳遞給HAD軟件。
確定好所需的模塊之后,就可以逐一地對每個模塊進行例化。首先打開端口信號列表數(shù)據(jù)庫,從中找到所選定的模塊。接著,打開存放有模塊端口詳細信息的數(shù)據(jù)庫,讀取端口的類型和數(shù)量,按照指定的連接信號名對模塊進行例化。最后將例化后的HDL程序組合成一個文件。
4 、管理電路單元庫程序的設(shè)計思路
管理電路單元庫的軟件所具備的功能是對電路單元進行增加、刪除和修改等操作,流程如圖4所示。
圖4中,管理流程主要由3個處理分支組成,分別是增加、刪除和修改電路單元分支。
電路單元的增加功能就是將電路模塊的HDL程序加入到電路單元庫中。庫中增加了一個新的電路單元,意味著又多了一個功能可供我們選擇。隨著庫中電路單元的日益增多,硬件設(shè)計中可以用HAD軟件完成的比重就會越來越大,有利于系統(tǒng)設(shè)計。
增加電路單元處理分支的流程如圖5所示。增加一個電路單元涉及到兩個數(shù)據(jù)庫的操作,一個是端口列表數(shù)據(jù)庫,另外一個是端口詳細信息數(shù)據(jù)庫。首先,對端口列表數(shù)據(jù)庫進行新增的操作,增加一條空記錄,將新模塊的I/O名稱填入空記錄中的相應(yīng)字段里。然后,新建一個端口詳細信息數(shù)據(jù)庫文件。它的字段個數(shù)是新模塊I/O個數(shù)的兩倍,一半是用來指定I/O的方向,另一半是用來指定端口信號的寬度。最后,將I/O信號的方向以及寬度填入新建數(shù)據(jù)庫的相應(yīng)字段中。處理分支結(jié)束之后再返回到管理流程的入口,重新選擇管理的內(nèi)容。
刪除電路單元處理分支的流程如圖6所示。電路單元的刪除功能就是將不再需要的電路單元從庫中移掉。用程序?qū)崿F(xiàn)時,只要將該電路單元在數(shù)據(jù)庫中的記錄刪除,同時將對應(yīng)的詳細信息數(shù)據(jù)庫一起刪除即可。
修改電路單元處理分支的流程如圖7所示。該單元的修改功能就是對庫中的電路單元的信息進行修正。
5、 結(jié)束語
HAD軟件采用了VB設(shè)計軟件中的數(shù)據(jù)庫管理控件,通過數(shù)據(jù)庫管理控件完成數(shù)據(jù)庫單元的增加、刪除和修改等操作。該軟件具有用戶界面人性化、操作使用方便等優(yōu)點。在多個嵌入式系統(tǒng)的設(shè)計中取得了很好的效果。
責(zé)任編輯:gt
-
mcu
+關(guān)注
關(guān)注
146文章
17316瀏覽量
352255 -
IP
+關(guān)注
關(guān)注
5文章
1716瀏覽量
149833 -
PLD
+關(guān)注
關(guān)注
6文章
230瀏覽量
59472
發(fā)布評論請先 登錄
相關(guān)推薦
評論