對配置的理解
12月 4th, 2007 | Published in HDL
在VHDL語言中,除了設(shè)計(jì)實(shí)體和結(jié)構(gòu)體外,還存在程序包、庫和配置,共五種可獨(dú)立編譯的源設(shè)計(jì)單元。后三者主要包括的內(nèi)容如下:
程序包主要用來存放各個(gè)設(shè)計(jì)都能共享的數(shù)據(jù)類型、子程序說明、屬性說明和元件說明等。
庫主要用來存放已經(jīng)編譯的實(shí)體、結(jié)構(gòu)體、程序包和配置。
配置用來從庫中選取所需的各個(gè)模塊來完成硬件電路的描述(主要描述實(shí)體與元件之間以及實(shí)體與結(jié)構(gòu)體之間的連接關(guān)系)。
由此看來,程序包和庫主要用來存放相關(guān)信息,而配置則完成硬件電路的描述,下面主要談?wù)剬ε渲玫睦斫猓?/p>
按照配置所在的位置可以將配置分成兩類:配置說明(結(jié)構(gòu)體內(nèi)的配置)和配置聲明(結(jié)構(gòu)體外的配置);也可以根據(jù)被配置的“對象”將其分為元件配置,結(jié)構(gòu)體配置和塊配置,各種分類的大致內(nèi)容都是一樣的,下面以第一種分類方式來介紹配置的具體寫法。
配置說明:在結(jié)構(gòu)體內(nèi)將元件例化與設(shè)計(jì)庫中的特定實(shí)體綁定,一般出現(xiàn)在包含例化元件的結(jié)構(gòu)體或塊的聲明部分?;靖袷綖椋?/p>
for 元件標(biāo)簽列表: 元件名 綁定指示;
綁定指示指定了由實(shí)體—結(jié)構(gòu)體對所代表的實(shí)體,以及類書和端口綁定。主要有以下三種形式:
use entity實(shí)體名[(結(jié)構(gòu)體名)]
[generic map(類屬相關(guān)內(nèi)容列表)]
[port map(端口相關(guān)內(nèi)容列表)] –形式1
如:for A3: AND2 use entity HS_LIB.AND2HS(AND2STR) port map(HS_B=>A1, HS_Z=>Z, HS_A=>A0); –將這個(gè)實(shí)體的一個(gè)元件例化綁定
use configuration 配置名 –形式2(表明元件例化要綁定到由配置名所指定的低一層已存在的實(shí)體配置中)
use open –形式3(綁定還沒有被指定,即暫緩指定)注:這三種綁定指示的形式在配置說明和配置聲明中都是可用的。
配置聲明:為避免配置說明在結(jié)構(gòu)體內(nèi)出現(xiàn)帶來的改變綁定則必須改變和重新分析結(jié)構(gòu)體的麻煩,而使用配置聲明。配置聲明是一個(gè)獨(dú)立的設(shè)計(jì)單元,允許元件的延遲綁定,既可以在結(jié)構(gòu)體完成后再進(jìn)行配置聲明,其作用與配置說明是一樣的,典型格式如下:
configuration 配置名 of 實(shí)體名 is
配置塊
end [configuration][配置名];
在這個(gè)聲明語句中,配置名指定名字的配置,并應(yīng)用到實(shí)體名所指定的實(shí)體中。配置塊定義塊中的元件綁定,這個(gè)塊可以是一個(gè)結(jié)構(gòu)體,也可以是一個(gè)塊語句或生成語句。從結(jié)構(gòu)上看,配置聲明的外層是結(jié)構(gòu)體,然后是塊語句或生成語句(如果有的話),最后是對具體元件的綁定。所以更確切的,可以將塊聲明語句的格式具體化為:
configuration 配置名 of 實(shí)體名 is
for 結(jié)構(gòu)體名;
for 塊名;
end for;
end for;
end [configuration][配置名];
遺漏之處待補(bǔ)充~~~