0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

電子設(shè)計(jì) ? 來(lái)源:半導(dǎo)體技術(shù) ? 作者:俞日龍,俞承芳 ? 2020-03-12 07:59 ? 次閱讀

1、引言

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

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

Xilinx公司Altera公司的設(shè)計(jì)工具中,提供了一些HDL形式的電路庫(kù)。不過(guò)庫(kù)單元都是比較簡(jiǎn)單的小規(guī)模數(shù)字電路,如邏輯門、74系列器件等,對(duì)中、大規(guī)模和復(fù)雜邏輯時(shí)序電路的設(shè)計(jì)幫助不大。另外也有一些外圍功能模塊和復(fù)雜邏輯的單元庫(kù)提供如通用異步收發(fā)器、有限沖擊響應(yīng)濾波器等,但不是以HDL的形式提供的,只適用于某些特定的PLD器件,移植性比較差。因此,在實(shí)際工作中編制了一個(gè)管理和組合HDL電路單元IP庫(kù)的輔助設(shè)計(jì)軟件--HAD軟件。通過(guò)HAD軟件,對(duì)設(shè)計(jì)好的HDL電路庫(kù)進(jìn)行管理,按照系統(tǒng)設(shè)計(jì)規(guī)范的要求從庫(kù)中選取相應(yīng)的電路單元并將它們組合起來(lái),大大降低了系統(tǒng)設(shè)計(jì)和調(diào)試的難度,提高了系統(tǒng)的穩(wěn)定性和可靠性,并且有利于系統(tǒng)日后的升級(jí)。

2、 HAD輔助設(shè)計(jì)軟件功能

輔助設(shè)計(jì)(HAD)軟件主要是對(duì)HDL語(yǔ)言的電路起一個(gè)輔助設(shè)計(jì)的作用。HAD軟件的功能有兩個(gè):管理電路單元IP庫(kù)以及生成所需外圍電路的 HDL程序。

電路單元庫(kù)的管理主要有兩個(gè)方面:電路單元接口的管理以及電路單元HDL程序的管理。因此,電路單元庫(kù)是由兩個(gè)庫(kù)組成的,一個(gè)是電路單元的接口庫(kù),另外一個(gè)是電路單元HDL程序庫(kù)[7]。電路單元接口庫(kù)里的基本單位是各個(gè)電路單元的接口信息,電路單元HDL程序庫(kù)里的基本單位是描述各種電路單元的HDL源程序。類似于標(biāo)準(zhǔn)芯片,如8255芯片,電路單元的接口信息描述了這個(gè)標(biāo)準(zhǔn)芯片的輸入輸出以及它的功能,相當(dāng)于8255的管腳和使用功能說(shuō)明;而電路單元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è)庫(kù)來(lái)說(shuō),基本的操作主要是新增、刪除和修改庫(kù)單元。

HAD軟件的最終目的就是生成外圍電路的HDL 程序。也就是根據(jù)系統(tǒng)設(shè)計(jì)規(guī)范的要求從IP庫(kù)中選取合適的電路單元,再以適當(dāng)?shù)男问浇M合起來(lái),成為一個(gè)完整的HDL程序。

3、 電路模塊HDL程序生成

HAD軟件中最主要的功能就是電路模塊HDL程序的生成。生成電路模塊的HDL程序的過(guò)程,主要就是對(duì)電路單元IP庫(kù)中的某些單元進(jìn)行若干次例化的過(guò)程。

進(jìn)行例化就必須具備兩個(gè)條件:首先要有模塊輸入輸出端口的列表,其次要知道的是與這些端口相連接的信號(hào)列表。根據(jù)兩者的對(duì)應(yīng)關(guān)系,完成例化,然后將例化好的電路模塊組合起來(lái),成為一個(gè)HDL程序文件,生成電路模塊HDL程序的流程如圖2所示:

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

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

存放HDL程序的源文件的數(shù)據(jù)庫(kù)比較簡(jiǎn)單,對(duì)它的操作僅限于對(duì)文件內(nèi)容的復(fù)制,因此這里不作進(jìn)一步的討論。

存放端口信號(hào)列表的數(shù)據(jù)庫(kù)結(jié)構(gòu),如表1所示。

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

表1中,最上面的一行是數(shù)據(jù)庫(kù)的表頭,字段名代表了每一個(gè)字段下面內(nèi)容的具體含義。其中,module為電路單元模塊名;detail為存放模塊端口詳細(xì)信息的數(shù)據(jù)庫(kù)名;PortN代表了模塊中某個(gè)端口的名字, N是自然數(shù)。

從表1中第二行開始的記錄是不同的模塊。例如,第二行記錄所描述的模塊是帶有一個(gè)異步清零端的D觸發(fā)器,模塊名是DFF,模塊端口的詳細(xì)信息存放在DFF_D的數(shù)據(jù)庫(kù)文件中,總共有4個(gè)端口,分別是CLK、CLR、D和Q。數(shù)據(jù)庫(kù)文件 DFF_D中存放的是每個(gè)端口的方向和寬度。

以DFF模塊為例,其對(duì)應(yīng)的數(shù)據(jù)庫(kù)文件DFF_D 的內(nèi)容如表2所示:

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

數(shù)據(jù)庫(kù)文件DFF_D的字段有兩類,前一半的字段都是以“Pn_io”的形式出現(xiàn),代表了這個(gè)端口的流向,是輸入、輸出還是雙向。后一半的字段都是以“Pn_bit”的形式出現(xiàn),代表了這個(gè)端口信號(hào)的寬度。

通過(guò)上面兩類數(shù)據(jù)庫(kù),就可以完整地掌握一個(gè)模塊的所有接口信息。

在圖1所示的流程圖中,最重要的一步就是 “進(jìn)行例化、組合”。根據(jù)上述幾個(gè)數(shù)據(jù)庫(kù)的定義和描述,例化和組合的流程如圖3所示。圖中兩個(gè)預(yù)備處理(六邊形框)的工作是“例化組合”前的準(zhǔn)備工作。根據(jù)系統(tǒng)設(shè)計(jì)規(guī)范的要求,確定所需功能模塊的種類和數(shù)量,然后由設(shè)計(jì)者來(lái)確定所有模塊及其輸入輸出信號(hào)的名字。這些操作都可以通過(guò)鍵盤輸入的方式來(lái)完成,從而將例化和組合過(guò)程中所需的信息傳遞給HAD軟件。

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

確定好所需的模塊之后,就可以逐一地對(duì)每個(gè)模塊進(jìn)行例化。首先打開端口信號(hào)列表數(shù)據(jù)庫(kù),從中找到所選定的模塊。接著,打開存放有模塊端口詳細(xì)信息的數(shù)據(jù)庫(kù),讀取端口的類型和數(shù)量,按照指定的連接信號(hào)名對(duì)模塊進(jìn)行例化。最后將例化后的HDL程序組合成一個(gè)文件。

4 、管理電路單元庫(kù)程序的設(shè)計(jì)思路

管理電路單元庫(kù)的軟件所具備的功能是對(duì)電路單元進(jìn)行增加、刪除和修改等操作,流程如圖4所示。

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

圖4中,管理流程主要由3個(gè)處理分支組成,分別是增加、刪除和修改電路單元分支。

電路單元的增加功能就是將電路模塊的HDL程序加入到電路單元庫(kù)中。庫(kù)中增加了一個(gè)新的電路單元,意味著又多了一個(gè)功能可供我們選擇。隨著庫(kù)中電路單元的日益增多,硬件設(shè)計(jì)中可以用HAD軟件完成的比重就會(huì)越來(lái)越大,有利于系統(tǒng)設(shè)計(jì)。

增加電路單元處理分支的流程如圖5所示。增加一個(gè)電路單元涉及到兩個(gè)數(shù)據(jù)庫(kù)的操作,一個(gè)是端口列表數(shù)據(jù)庫(kù),另外一個(gè)是端口詳細(xì)信息數(shù)據(jù)庫(kù)。首先,對(duì)端口列表數(shù)據(jù)庫(kù)進(jìn)行新增的操作,增加一條空記錄,將新模塊的I/O名稱填入空記錄中的相應(yīng)字段里。然后,新建一個(gè)端口詳細(xì)信息數(shù)據(jù)庫(kù)文件。它的字段個(gè)數(shù)是新模塊I/O個(gè)數(shù)的兩倍,一半是用來(lái)指定I/O的方向,另一半是用來(lái)指定端口信號(hào)的寬度。最后,將I/O信號(hào)的方向以及寬度填入新建數(shù)據(jù)庫(kù)的相應(yīng)字段中。處理分支結(jié)束之后再返回到管理流程的入口,重新選擇管理的內(nèi)容。

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

刪除電路單元處理分支的流程如圖6所示。電路單元的刪除功能就是將不再需要的電路單元從庫(kù)中移掉。用程序?qū)崿F(xiàn)時(shí),只要將該電路單元在數(shù)據(jù)庫(kù)中的記錄刪除,同時(shí)將對(duì)應(yīng)的詳細(xì)信息數(shù)據(jù)庫(kù)一起刪除即可。

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

修改電路單元處理分支的流程如圖7所示。該單元的修改功能就是對(duì)庫(kù)中的電路單元的信息進(jìn)行修正。

采用IP模塊和PLD設(shè)計(jì)工具實(shí)現(xiàn)可編程器件輔助軟件的設(shè)計(jì)

5、 結(jié)束語(yǔ)

HAD軟件采用了VB設(shè)計(jì)軟件中的數(shù)據(jù)庫(kù)管理控件,通過(guò)數(shù)據(jù)庫(kù)管理控件完成數(shù)據(jù)庫(kù)單元的增加、刪除和修改等操作。該軟件具有用戶界面人性化、操作使用方便等優(yōu)點(diǎn)。在多個(gè)嵌入式系統(tǒng)的設(shè)計(jì)中取得了很好的效果。

責(zé)任編輯:gt


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16885

    瀏覽量

    349927
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1610

    瀏覽量

    149247
  • PLD
    PLD
    +關(guān)注

    關(guān)注

    6

    文章

    223

    瀏覽量

    59307
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    利用可編程器件CPLD/FPGA實(shí)現(xiàn)VGA圖像控制器的設(shè)計(jì)方案

    利用可編程器件CPLD/FPGA實(shí)現(xiàn)VGA彩色顯示控制器在工業(yè)現(xiàn)場(chǎng)中有許多實(shí)際應(yīng)用。以硬件描述語(yǔ)言VHDL對(duì)可編程器件進(jìn)行功能模塊設(shè)計(jì)、仿真綜合,可
    發(fā)表于 08-30 12:03 ?1084次閱讀
    利用<b class='flag-5'>可編程器件</b>CPLD/FPGA<b class='flag-5'>實(shí)現(xiàn)</b>VGA圖像控制器的設(shè)計(jì)方案

    什么是可編程邏輯

    客戶需要投入的所有成本,這些成本包括工程資源、昂貴的軟件設(shè)計(jì)工具、用來(lái)制造芯片不同金屬層的昂貴光刻掩膜組以及初始原型器件的生產(chǎn)成本。這些NRE成本可能從數(shù)十萬(wàn)美元至數(shù)百萬(wàn)美元。 ??對(duì)于可編程邏輯器件
    發(fā)表于 05-29 11:36

    PLD/可編程邏輯器件的入門知識(shí)

    同,只是實(shí)現(xiàn)原理略有不同,所以我們有時(shí)可以忽略這兩者的區(qū)別,統(tǒng)稱為可編程邏輯器件PLD/FPGA。PLD是電子設(shè)計(jì)領(lǐng)域中最具活力和發(fā)展前途的一項(xiàng)技術(shù),它的影響絲毫不亞于70年代單片機(jī)
    發(fā)表于 06-20 10:38

    請(qǐng)問(wèn)如何去設(shè)計(jì)可編程器件輔助軟件?

    HAD輔助設(shè)計(jì)軟件有哪些功能?電路模塊HDL程序是怎樣生成的?管理電路單元庫(kù)程序的設(shè)計(jì)思路是怎樣的?請(qǐng)問(wèn)如何去設(shè)計(jì)可編程器件輔助
    發(fā)表于 04-14 06:21

    PLD可編程邏輯器件

    ,足以滿足設(shè)計(jì)一般的數(shù)字系統(tǒng)的需要。目前常用EEPROM,CPLD,F(xiàn)PGA。 PLA,PAL,GAL是早期的可編程器件,已經(jīng)淘汰。可編程邏輯器件PLD(Programmable Logic Dev...
    發(fā)表于 07-22 09:05

    FPGA可編程器件和CPLD可編程器件有哪些相同點(diǎn)和不同點(diǎn)

    CPLD是什么?FPGA包含哪幾類可編程資源呢?FPGA可編程器件和CPLD可編程器件有哪些相同點(diǎn)和不同點(diǎn)?
    發(fā)表于 11-10 07:42

    可編程器件與MAX+plusII簡(jiǎn)介

    熟悉常用邏輯器件的分類;了解常用可編程邏輯器件的內(nèi)部結(jié)構(gòu);熟悉可編程邏輯器件的開發(fā)流程;掌握MAX+plusII軟件。重點(diǎn):基于MAX+plusII
    發(fā)表于 12-01 17:36 ?19次下載

    基于可編程器件的任意進(jìn)制計(jì)數(shù)器的設(shè)計(jì)

    采用可編程器件設(shè)計(jì)電路,利用MAX+plus II設(shè)計(jì)軟件中LPM元件庫(kù)所提供的lpm_counter元件,實(shí)現(xiàn)任意進(jìn)制計(jì)數(shù)器的設(shè)計(jì)。該計(jì)數(shù)器電路與結(jié)構(gòu)無(wú)關(guān),
    發(fā)表于 12-29 17:47 ?55次下載

    什么是PLD(可編程邏輯器件)

    什么是PLD(可編程邏輯器件) PLD可編程邏輯器件(Programable Logic Device)的簡(jiǎn)稱,F(xiàn)PGA是現(xiàn)場(chǎng)可編程門陣
    發(fā)表于 06-20 10:32 ?2.5w次閱讀
    什么是<b class='flag-5'>PLD</b>(<b class='flag-5'>可編程邏輯器件</b>)

    可編程器件實(shí)現(xiàn)LED顯示屏的硬件掃描控制

    可編程器件實(shí)現(xiàn)LED顯示屏的硬件掃描控制
    發(fā)表于 01-18 20:40 ?21次下載

    可編程器件緒論

    可編程器件緒論
    發(fā)表于 09-19 15:40 ?7次下載
    <b class='flag-5'>可編程器件</b>緒論

    可編程邏輯器件PLD課件下載

    可編程邏輯器件PLD課件下載
    發(fā)表于 08-13 10:58 ?31次下載

    一文詳細(xì)了解可編程邏輯器件(PLD)

    在過(guò)去的十年中,可編程邏輯器件PLD)市場(chǎng)不斷增長(zhǎng),對(duì)PLD的需求不斷增加。具有可編程特性且可編程的芯片稱為
    的頭像 發(fā)表于 03-22 12:36 ?7750次閱讀

    可編程邏輯器件測(cè)試方法

    可編程邏輯器件 (Programmable Loeie Device,PLD)是一種用戶編程實(shí)現(xiàn)某種邏輯功能的邏輯器件,主要由
    的頭像 發(fā)表于 06-06 15:35 ?1374次閱讀
    <b class='flag-5'>可編程邏輯器件</b>測(cè)試方法

    可編程器件的特點(diǎn)和發(fā)展歷程

    )和讀寫存儲(chǔ)器(ROM)。 可編程器件的特點(diǎn)主要包括以下幾個(gè)方面: 可編程性:可編程器件可以根據(jù)需求進(jìn)行編程,改變其功能和行為。它們通常具有編程
    的頭像 發(fā)表于 12-21 17:19 ?800次閱讀