介紹vhdl的三種不同的描述風(fēng)格:行為級(jí)模型、rtl級(jí)模型和結(jié)構(gòu)化模型的建立方法。在一個(gè)系統(tǒng)中三種描述風(fēng)格基本上都可能用到。在主模塊與子模塊調(diào)用時(shí)一般采用使用結(jié)構(gòu)化描述。在一般模塊的設(shè)計(jì)時(shí),根據(jù)具體情況,可以用行為級(jí)描述,又可以用數(shù)據(jù)流描述。對(duì)于一個(gè)復(fù)雜系統(tǒng)的描述來講,單用一種描述方法來描述是不現(xiàn)實(shí)的,通常是幾種描述方法混合使用。
結(jié)構(gòu)體中的3種模型描述方式
實(shí)體部分描述了對(duì)外接口,實(shí)體內(nèi)部的操作或特性則是通過結(jié)構(gòu)體來描述的。在電路中,如果實(shí)體代表一個(gè)器件符號(hào),則結(jié)構(gòu)體描述了這個(gè)符號(hào)的內(nèi)部行為。結(jié)構(gòu)體不能單獨(dú)存在,它必須有一個(gè)界面說明,即一個(gè)實(shí)體。
一個(gè)單一的實(shí)體可以有數(shù)個(gè)結(jié)構(gòu)。每個(gè)結(jié)構(gòu)體對(duì)應(yīng)著實(shí)體不同結(jié)構(gòu)和算法實(shí)現(xiàn)方案,其間的各個(gè)結(jié)構(gòu)體的地位是同等的,它們完整地實(shí)現(xiàn)了實(shí)體的行為,但同一結(jié)構(gòu)體不能為不同的實(shí)體所擁有。
結(jié)構(gòu)體通常由說明部分和部分組成,基本格式如下:
architecture
結(jié)構(gòu)體名 of
實(shí)體名is
<說明語(yǔ)句>
begin
<描述語(yǔ)句>
end 結(jié)構(gòu)體名;
注意在這個(gè)格式中,結(jié)構(gòu)體名和實(shí)體名是聯(lián)系在一起的?!敖Y(jié)構(gòu)體名 of 實(shí)體名”的意思就是“某實(shí)體的一個(gè)結(jié)構(gòu)體名為„„”。結(jié)構(gòu)體的命名應(yīng)該盡量使人了解其功能,of后面的實(shí)體名表明該結(jié)構(gòu)體屬于哪個(gè)實(shí)體。
結(jié)構(gòu)體中的說明語(yǔ)句是對(duì)結(jié)構(gòu)體的功能描述語(yǔ)句中將要用到的信號(hào)(signal)、數(shù)據(jù)類型(type)、常數(shù)(constant)、元件(component)、函數(shù)(function)和過程(procedure)等加以說明的語(yǔ)句。
對(duì)于一個(gè)實(shí)體來說,結(jié)構(gòu)體有3種描述方式:行為描述、數(shù)據(jù)流描述、結(jié)構(gòu)描述。
1、行為描述法
architecture another of nand2 is
begin
process(il,i2)
begin
if il=‟1‟ and i2=‟1‟ then
ol<=‟0‟ after 5ns;
else
ol<=‟1‟ after 5ns;
end if;
end process;
end another;
注意行為描述反映一個(gè)設(shè)計(jì)的功能或算法,一般使用進(jìn)程process,用順序語(yǔ)句表達(dá)。這種描述完全是從與非門輸入和輸出的邏輯關(guān)系出發(fā),是對(duì)與非門性能的一種描述,是一種抽象描述而不是針對(duì)某一器件,屬于高層次描述,與計(jì)算機(jī)高級(jí)語(yǔ)言類似。
2、數(shù)據(jù)流描述法
清單3-3是二輸入與非門的數(shù)據(jù)流描述,這種描述主要是反映數(shù)據(jù)經(jīng)過一定的邏輯運(yùn)算后在輸入和輸出之間的傳送。
清單3-3 二輸入與非門的數(shù)據(jù)流描述
architecture dataflow of nand2 is begin
ol <= i1 nand i2 end dataflow;
注意 二輸入與非門的數(shù)據(jù)流描述,由與非門構(gòu)成,反映一個(gè)設(shè)計(jì)中數(shù)據(jù)從輸入到
輸出的流向,使用并發(fā)語(yǔ)句描述,而不是進(jìn)程順序語(yǔ)句。
3、結(jié)構(gòu)描述法
結(jié)構(gòu)描述(structural description)是以元件(component)為基礎(chǔ),通過描述模塊和模塊之間的連接關(guān)系,來反映整個(gè)系統(tǒng)的構(gòu)成和性能。清單3-4反映了二輸入與非門的的結(jié)構(gòu)描述。
architecture structure of nand is
signal temp std_logic;
begin
u1 : and2 port map (i1,i2,temp); u2 : inv port map (temp,o1);
end structure;
注意結(jié)構(gòu)描述使用元件例化語(yǔ)句,描述了由一個(gè)與門and2和一個(gè)非門inv通過接口
構(gòu)成的一個(gè)與非門。此方法適用于多層次設(shè)計(jì),可以把一個(gè)復(fù)雜的系統(tǒng)分為多個(gè)子系統(tǒng),將每一個(gè)子系統(tǒng)設(shè)計(jì)為一個(gè)模塊,再用結(jié)構(gòu)描述模塊和模塊之間的連接關(guān)系,形成一個(gè)整體。