基于IP庫的可編程器件輔助設(shè)計(jì)軟件
1 引言
本文引用地址:http://m.butianyuan.cn/article/189782.htm在基于MCU的系統(tǒng)設(shè)計(jì)中,一般采用MCU+PLD的系統(tǒng)結(jié)構(gòu)。PLD器件具有在系統(tǒng)現(xiàn)場(chǎng)可重復(fù)編程的能力,用來實(shí)現(xiàn)系統(tǒng)的I/O接口等外圍功能。在這類系統(tǒng)中,絕大多數(shù)的數(shù)字邏輯可在PLD器件內(nèi)部完成。在設(shè)計(jì)一個(gè)新系統(tǒng)時(shí),應(yīng)盡可能利用以往設(shè)計(jì)中已使用過的IP模塊,這些模塊的設(shè)計(jì)已成熟、并經(jīng)過時(shí)間考驗(yàn),可提高設(shè)計(jì)的重復(fù)利用率,并使系統(tǒng)性能和質(zhì)量得到保證。
在長期的設(shè)計(jì)工作中,人們已積累了大量的IP 模塊,如在一個(gè)新的設(shè)計(jì)中加以利用,必然存在如何管理這些模塊的問題。為此可采用集約式的設(shè)計(jì)方法,以提高設(shè)計(jì)效率。硬件集約式的設(shè)計(jì)方法如圖1所示,它類似于軟件中高級(jí)語言的設(shè)計(jì)方式。先用HDL語言對(duì)各種不同功能的電路模塊建立IP模塊,創(chuàng)建電路單元IP庫。然后根據(jù)設(shè)計(jì)規(guī)范的要求,從庫中選取不同的電路單元組成描述外圍接口電路的HDL程序。最后,用相應(yīng)的PLD 設(shè)計(jì)工具對(duì)HDL程序進(jìn)行邏輯綜合,在PLD器件內(nèi)部完成布局布線,生成最終的數(shù)字電路。由于這些電路單元是用HDL語言描述的,而HDL語言的特點(diǎn)就是與工藝無關(guān),因此用它描述的電路單元的可移植性非常好,可以在采用不同工藝制造的PLD器件中使用。于是,電路單元庫可以用在不同的系統(tǒng)中,避免了重復(fù)設(shè)計(jì)與資源浪費(fèi)。
Xilinx公司和Altera公司的設(shè)計(jì)工具中,提供了一些HDL形式的電路庫。不過庫單元都是比較簡(jiǎn)單的小規(guī)模數(shù)字電路,如邏輯門、74系列器件等,對(duì)中、大規(guī)模和復(fù)雜邏輯時(shí)序電路的設(shè)計(jì)幫助不大。另外也有一些外圍功能模塊和復(fù)雜邏輯的單元庫提供如通用異步收發(fā)器、有限沖擊響應(yīng)濾波器等,但不是以HDL的形式提供的,只適用于某些特定的PLD器件,移植性比較差。因此,在實(shí)際工作中編制了一個(gè)管理和組合HDL電路單元IP庫的輔助設(shè)計(jì)軟件--HAD軟件。通過HAD軟件,對(duì)設(shè)計(jì)好的HDL電路庫進(jìn)行管理,按照系統(tǒng)設(shè)計(jì)規(guī)范的要求從庫中選取相應(yīng)的電路單元并將它們組合起來,大大降低了系統(tǒng)設(shè)計(jì)和調(diào)試的難度,提高了系統(tǒng)的穩(wěn)定性和可靠性,并且有利于系統(tǒng)日后的升級(jí)。
2 HAD輔助設(shè)計(jì)軟件功能
輔助設(shè)計(jì)(HAD)軟件主要是對(duì)HDL語言的電路起一個(gè)輔助設(shè)計(jì)的作用。HAD軟件的功能有兩個(gè):管理電路單元IP庫以及生成所需外圍電路的 HDL程序。
電路單元庫的管理主要有兩個(gè)方面:電路單元接口的管理以及電路單元HDL程序的管理。因此,電路單元庫是由兩個(gè)庫組成的,一個(gè)是電路單元的接口庫,另外一個(gè)是電路單元HDL程序庫[7]。電路單元接口庫里的基本單位是各個(gè)電路單元的接口信息,電路單元HDL程序庫里的基本單位是描述各種電路單元的HDL源程序。類似于標(biāo)準(zhǔn)芯片,如8255芯片,電路單元的接口信息描述了這個(gè)標(biāo)準(zhǔn)芯片的輸入輸出以及它的功能,相當(dāng)于8255的管腳和使用功能說明;而電路單元HDL程序描述了這個(gè)標(biāo)準(zhǔn)芯片內(nèi)部的實(shí)際電路以及用何種電路結(jié)構(gòu)實(shí)現(xiàn)相應(yīng)功能的,這相當(dāng)于8255芯片內(nèi)部的電路組成和結(jié)構(gòu)。對(duì)于管理一個(gè)庫來說,基本的操作主要是新增、刪除和修改庫單元。
HAD軟件的最終目的就是生成外圍電路的HDL 程序。也就是根據(jù)系統(tǒng)設(shè)計(jì)規(guī)范的要求從IP庫中選取合適的電路單元,再以適當(dāng)?shù)男问浇M合起來,成為一個(gè)完整的HDL程序。
3 電路模塊HDL程序生成
HAD軟件中最主要的功能就是電路模塊HDL程序的生成。生成電路模塊的HDL程序的過程,主要就是對(duì)電路單元IP庫中的某些單元進(jìn)行若干次例化的過程。
進(jìn)行例化就必須具備兩個(gè)條件:首先要有模塊輸入輸出端口的列表,其次要知道的是與這些端口相連接的信號(hào)列表。根據(jù)兩者的對(duì)應(yīng)關(guān)系,完成例化,然后將例化好的電路模塊組合起來,成為一個(gè)HDL程序文件?
生成電路模塊HDL程序的流程如圖2所示:
通過上面的分析,首先創(chuàng)建兩個(gè)數(shù)據(jù)庫。一個(gè)存放各種模塊HDL程序的源文件,另外一個(gè)存放與各個(gè)模塊相對(duì)應(yīng)的輸入輸出端口的信號(hào)列表。
評(píng)論