羅 宇 岳 淼 傅 饒
(西華師范大學(xué)計(jì)算機(jī)學(xué)院,四川 南充 637000)
VHDL中配置語(yǔ)句的基本用法
羅 宇 岳 淼 傅 饒
(西華師范大學(xué)計(jì)算機(jī)學(xué)院,四川 南充 637000)
在VHDL語(yǔ)言中,配置可以把特定的結(jié)構(gòu)體關(guān)聯(lián)到(或指定給)一個(gè)確定的實(shí)體。通常在VHDL工程中,配置語(yǔ)句可以為實(shí)體指定或配屬一個(gè)結(jié)構(gòu)體,讓一個(gè)實(shí)體配置不同的結(jié)構(gòu)體以使其具有不同的功能或比較不同結(jié)構(gòu)體的仿真差別等。本文介紹了配置語(yǔ)句的基本格式,并通過(guò)例子講解配置語(yǔ)句的基本用法。
VHDL;配置;實(shí)體;結(jié)構(gòu)體
目前,常用的HDL(硬件描述語(yǔ)言)主要有VHDL、Verilog HDL、System Verilog和System C。其中VHDL在EDA設(shè)計(jì)中應(yīng)用相當(dāng)普遍,也得到幾乎所有主流EDA工具的支持。VHDL一個(gè)完整的、可綜合的程序結(jié)構(gòu),一般包括庫(kù)(library)、程序包(Package)、實(shí)體(entity)、結(jié)構(gòu)體(structure)和配置(configuration)。
配置是把元件具體安裝到實(shí)體的最基本設(shè)計(jì)單元。在綜合或仿真中,可以利用配置語(yǔ)句為確定整個(gè)設(shè)計(jì)提供許多有用信息。例如,對(duì)以元件例化的層次方式構(gòu)成的VHDL設(shè)計(jì)實(shí)體,就可以把配置語(yǔ)句的設(shè)置看成一個(gè)元件表,以配置語(yǔ)句指定在頂層設(shè)計(jì)中的某一元件與一特定結(jié)構(gòu)體相銜接,或賦予特定屬性。配置語(yǔ)句還能用于對(duì)元件端口連接進(jìn)行重新安排等。
一般地,配置語(yǔ)句的用法有默認(rèn)配置法、元件配置法和實(shí)體-結(jié)構(gòu)體對(duì)配置法三種。
默認(rèn)配置是一種最簡(jiǎn)單形式的顯式配置,不含任何塊語(yǔ)句和元件的模塊用這種配置,默認(rèn)配置指定配置實(shí)體的配置名和為實(shí)體指定的結(jié)構(gòu)體。其一般格式如下:
CONFIGURATION配置名OF實(shí)體名IS
配置說(shuō)明
END配置名;
其中,一種最簡(jiǎn)單的缺省配置格式如下:
CONFIGURATION配置名OF實(shí)體名IS
FOR選配結(jié)構(gòu)體名
END FOR;
END配置名;
如前所述,每個(gè)實(shí)體可以擁有多個(gè)結(jié)構(gòu)體,而每個(gè)結(jié)構(gòu)體的地位是平行的,在這種情況下,可以用默認(rèn)配置方式為實(shí)體指定一個(gè)結(jié)構(gòu)體。
例1.為一個(gè)計(jì)數(shù)器(實(shí)體名為“test1”)建立兩個(gè)配置,分別把結(jié)構(gòu)體“count_255”和“count_64K”指定給計(jì)數(shù)器“test1”。
上述兩個(gè)配置語(yǔ)句為實(shí)體指定了兩個(gè)結(jié)構(gòu)體,其中配置語(yǔ)句一的配置名為“small_count”,指定的結(jié)構(gòu)體為count_ 255,即此配置語(yǔ)句實(shí)現(xiàn)實(shí)體的模為256的計(jì)數(shù)功能;配置語(yǔ)句二的配置名為“big_count”,指定的結(jié)構(gòu)體為count_64K,即此配置語(yǔ)句實(shí)現(xiàn)實(shí)體的模為64K的計(jì)數(shù)功能。
在VHDL設(shè)計(jì)中,通常會(huì)采用自頂向下的層次設(shè)計(jì)方法。一般而言,高層電路會(huì)調(diào)用低層電路或元件。我們可以利用配置語(yǔ)句,通過(guò)對(duì)被調(diào)元件指定一定功能的結(jié)構(gòu)體,從而使高層電路完成相應(yīng)的功能目標(biāo)。由于被調(diào)用元件可以指定不同的結(jié)構(gòu)體,相應(yīng)地,高層電路也能完成不同的功能。運(yùn)用元件配置法,需定義并配置好低層元件。
元件配置的格式如下:
CONFIGURATION配置名OF高層電路實(shí)體名IS
FOR高層實(shí)體的結(jié)構(gòu)體名
FOR例化名:低層元件名USE CONFIGURATION庫(kù)名.低層元件配置名;
END FOR;
……
FOR例化名:低層元件名USE CONFIGURATION庫(kù)名.低層元件配置名;
END FOR;
END配置名;
一般地,庫(kù)名為WORK庫(kù)。
例2.創(chuàng)建一個(gè)電路,要求實(shí)現(xiàn)模為64K的計(jì)數(shù)功能。
(1)先創(chuàng)建低層電路,并進(jìn)行配置,如例1所示。
(2)創(chuàng)建一個(gè)高層(頂層)電路,并進(jìn)行配置,代碼如下:
如果我們想實(shí)現(xiàn)模為256的計(jì)數(shù)器,只需要將work. big_count改為work.small_count即可。
此方法與元件配置法有些類(lèi)似,只是實(shí)體-結(jié)構(gòu)體對(duì)配置法是直接為高層電路調(diào)用的低層元件指定具體結(jié)構(gòu)體。其使用格式如下所示:
CONFIGURATION配置名OF高層電路實(shí)體名IS
2007—2017年世界纖維板進(jìn)口額排名前5位的國(guó)家包括美國(guó)、英國(guó)、德國(guó)、法國(guó)、意大利、荷蘭、波蘭、俄羅斯和日本,2007年依次為美國(guó)、德國(guó)、英國(guó)、法國(guó)和荷蘭,2017年為美國(guó)、德國(guó)、意大利、英國(guó)和波蘭。美國(guó)進(jìn)口額始終位列第1,其世界占比存在波動(dòng),但總體變化不顯著,2007年為21%,2017年為14%;進(jìn)口額第2位輪流由英國(guó)和法國(guó)占據(jù),且兩者差距不大;期間分別排名第3至第5位的國(guó)家與英法兩國(guó)的差距也很小。
FOR高層實(shí)體的結(jié)構(gòu)體名
FOR例化名:低層元件實(shí)體名USE ENTITY庫(kù)名.低層元件實(shí)體名(結(jié)構(gòu)體名);
END FOR;
……
FOR例化名:低層元件實(shí)體名USE ENTITY庫(kù)名.低層元件實(shí)體名(結(jié)構(gòu)體名);
END FOR;
END FOR;
END配置名;
同樣地,庫(kù)名一般為WORK庫(kù)。
例3.創(chuàng)建一個(gè)電路,要求實(shí)現(xiàn)模為256的計(jì)數(shù)功能。
(1)先創(chuàng)建低層電路,并進(jìn)行配置,如例1所示。
(2)創(chuàng)建一個(gè)高層(頂層)電路(代碼與例2配置語(yǔ)句之前代碼相同),且配置代碼如下:
在上述配置語(yǔ)句中,將高層實(shí)體test2的結(jié)構(gòu)體behave指定為低層實(shí)體test1的結(jié)構(gòu)體count_255的配置,從而實(shí)現(xiàn)了模為256的計(jì)數(shù)器。很明顯,只要將上述語(yǔ)句中的“work. test1(count_255)”改為“work.test1(count_64K)”即可實(shí)現(xiàn)模為64K的計(jì)數(shù)器。
配置主要為高層(頂層)設(shè)計(jì)實(shí)體指定結(jié)構(gòu)體,或?yàn)閰⑴c例化的元件實(shí)體指定所希望的結(jié)構(gòu)體,以層次方式來(lái)對(duì)元件例化作結(jié)構(gòu)配置。實(shí)現(xiàn)的方法簡(jiǎn)單、實(shí)用和高效,在運(yùn)用以上三種方法時(shí),需要注意其用法與使用場(chǎng)合,并搞清高層實(shí)體與低層實(shí)體及結(jié)構(gòu)體之間的關(guān)系。
[1]潘松,黃繼業(yè).EDA技術(shù)實(shí)用教程(第三版)[M].北京:科學(xué)出版社,2006.
[2]鄒道勝,朱如琪.CPLD/FPGA與ASIC設(shè)計(jì)實(shí)踐教程(第二版) [M].北京:科學(xué)出版社,2010.
[3]徐志軍,王金明,尹廷輝.EDA技術(shù)與VHDL設(shè)計(jì)[M].北京:電子工業(yè)出版社,2009.
[4]江國(guó)強(qiáng).EDA技術(shù)與應(yīng)用[M].北京:電子工業(yè)出版社,2010.
Basic Usage of Configuration Statements in VHDL
Luo Yu Yue Miao Fu Rao
(West China Normal University,Nanchong 637000,Sichuan)
In the VHDL language,a configuration can be associated with a specific structure to a certain entity.Usually in the VHDL project,the configuration statements can be specified or attached to a structure,and it can let an entity configure different structures for different functions or simulations.This paper introduces the basic form of the configuration statements and the basic usage of the configuration statements by example.
VHDL;configuration;entity;structure
TN402
A
1008-6609(2015)10-0077-02
羅宇,男,重慶市人,碩士,講師,研究方向:電子信息處理。