999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

利用VHDL語言的用戶庫實現(xiàn)代碼重用

2016-07-10 09:09:12駱傳慧
電子技術與軟件工程 2016年8期

摘 要:庫文件是VHDL(Very High Speed Integrated Circuits)語言中實現(xiàn)高效代碼分割、代碼共享及代碼重用的一種重要方法。本文介紹了庫的基本結(jié)構(gòu),及其的基本構(gòu)件單元元件、函數(shù)、過程的建立和調(diào)用的語法結(jié)構(gòu),從而實現(xiàn)結(jié)構(gòu)化設計及代碼重用。

【關鍵詞】VHDL 可編程邏輯器件 代碼復用 用戶庫

1 引言

隨著可編程邏輯器件技術的發(fā)展,芯片的性能越來越強、規(guī)模越來越大、開發(fā)的周期越來越長,使得器件應用正面臨一系列新的問題:設計質(zhì)量難以控制,設計成本也越來越高。IP(Intelligence Property)技術解決了當今芯片設計業(yè)所面臨的難題。設計者可以重復使用已經(jīng)設計并經(jīng)過驗證的IP核,將精力集中于系統(tǒng)頂層及關鍵功能模塊的設計上,從而提高產(chǎn)品整體性能和個性化特性,加快了設計效率。

如何才能提高IP核的重復使用率,使設計資源更好地集中起來加以利用,是可編程邏輯器件應用面臨的另一個問題。在VHDL(VHSIC Hardware Description Language)語言中,庫(LIBRARY)文件很好地解決了這個問題。庫文件是專門用于存放預先編譯好的程序包(PACKAGE)和數(shù)據(jù)集合體,這些設計單元可用作其他VHDL描述的資源。用戶編寫的設計單元既可以訪問多個設計庫,又可以加入到設計庫中,被其他單元所訪問。此外,庫的使用能夠?qū)崿F(xiàn)層次化設計和功能模塊化設計方法,有利于使復雜設計具有更清晰的結(jié)構(gòu)。

2 庫組成

在VHDL中,常用的庫有IEEE、STD、WORK、用戶庫等。庫文件常用的語句為元件(COMPONENT)和子程序(過程和函數(shù)),為了使程序包能夠被編譯,元件和子程序必須被添加到被稱為包集合的程序包中。用戶庫是用戶定義庫的簡稱,是由用戶自己創(chuàng)建并定義的庫。設計者可以把自己開發(fā)的非標準包集合和實體等匯集成在一起定義成一個庫,作為對VHDL標準庫的補充。用戶將需要重復使用的代碼以元件和子程序的形式放到包集合中,編譯到目標庫中,生成用戶庫,供其它設計單元調(diào)用。在設計中要使用某個程序包中的內(nèi)容時,用USE語句即可打開該程序包。

3 庫構(gòu)件說明

3.1 包集合

在用戶庫中,包集合放置的是用戶自己定義的元件、函數(shù)、過程。包集合包括包頭和包體兩部分。包頭用來聲明包中的類型、元件和子程序;而包體則用來存放說明中的元件源代碼和子程序。程序包聲明單元的語法格式為:

PACKAGE 程序包名 IS

說明語句

END [程序包名];

其中說明語句為:USE語句、類型定義、常量定義、元件聲明、子程序聲明及信號聲明等。程序包體單元的的語法格式為:

PACKAGE BODY程序包名 IS

說明語句

END [程序包名];

3.2 元件

用戶庫通過元件定義的方式,將一些設計好的電路單元納入,其他設計體則通過元件實例化的方法調(diào)用這些元件,使得元件與其他設計實體中的端口相連接,從而為當前設計實體引入低一級的設計層次設計。

3.2.1 元件定義

元件定義語句放在包集合的包頭中,指出包集合所包含的具體元件,元件源代碼可以獨立編譯,不需要納入包集合中。元器件定義語句的語法格式為:

COMPONENT元件名IS

GENERIC(常量、參數(shù)列表);

PORT(元件端口列表);

END COMPONET;

其中,常量、參數(shù)列表與元件源代碼實體中的GENERIC部分相同;元件端口列表,與元件源代碼實體中的PORT部分相同。

3.2.2 元件調(diào)用

元件調(diào)用稱為元件實例化,在元件實例化過程中有位置映射和名稱映射兩種方法可以實現(xiàn)。

位置映射中參數(shù)、端口信號名稱在順序、端口狀態(tài)和數(shù)據(jù)類型上必須和元件源代碼保持一致,各個參數(shù)、端口意義取決于它的位置。位置映射元件實例化語句的語法格式為:

COMPONENT元件名(

GENERIC MAP (常量、參數(shù)列表)

PORTMAP(元件端口列表));

名稱映射用符號“=>”連接元件參數(shù)、端口和結(jié)構(gòu)體之間的參數(shù)、端口。名稱映射元件實例化語句的語法格式為:

COMPONENT元件名(

GENERICMAP(元件源程序常量列表=>常量值)

元件源程序參數(shù)列表=>參數(shù)量值)

PORTMAP(元件端口列表=>信號名稱));

其中,左邊列出元件源代碼中參數(shù)、端口名稱,右邊列出調(diào)用代碼中對應的參數(shù)值、端口信號名稱。左右兩邊的數(shù)值、信號名稱可以不相同,語句中位置順序可以任意。

3.3 子程序

VHDL中的子程序有過程(PROCEDURE)及函數(shù)(FUNCTION)兩類,主程序和子程序之間通過端口參數(shù)列表位置關聯(lián)方式進行數(shù)據(jù)傳送,子程序可以被多次調(diào)用完成重復性的任務。子程序包含子程序聲明和主體兩部分,子程序聲明必須要在包頭中,子程序主體則放在包體中。

3.3.1 函數(shù)

函數(shù)通常用來實現(xiàn)數(shù)據(jù)類型轉(zhuǎn)換、邏輯運算、算術運算類型的代碼共享和重用,即輸入若干參數(shù),通過函數(shù)運算求值,最后直接返回一個值。函數(shù)應用分為建立和調(diào)用兩個過程。

(1)函數(shù)建立。函數(shù)分為函數(shù)聲明和函數(shù)主體體,函數(shù)聲明是包集合與函數(shù)的接口界面,放在包集合的包頭部分,而函數(shù)主體應放在包集合的包體內(nèi)。函數(shù)聲明首語句的語法格式為:

FUNCTION 函數(shù)名 (參數(shù)列表) RETURN 數(shù)據(jù)類型;

其中,參數(shù)列表中為參數(shù)名、參數(shù)類別及數(shù)據(jù)類型,函數(shù)的參數(shù)為信號或常數(shù),默認情況為常數(shù)。

函數(shù)體語句的語法格式為:

FUNCTION 函數(shù)名(參數(shù)列表) RETURN 數(shù)據(jù)類型IS

[子程序聲明部分;]

BEGIN

順序語句;

END 函數(shù)名;

其中,在RETURN后面的數(shù)據(jù)類型為函數(shù)返回值的類型;子程序聲明項用來說明函數(shù)體內(nèi)引用的對象和過程;順序語句就是函數(shù)體,用來定義函數(shù)的功能。

(2)函數(shù)的調(diào)用。函數(shù)可以單獨構(gòu)成表達式,或者作為表達式的一部分調(diào)用。函數(shù)調(diào)用語句的語法格式為:

函數(shù)名 (參數(shù)列表);

3.3.2 過程

過程的作用是傳遞信息,即通過參數(shù)進行調(diào)用代碼和過程代碼的信息傳遞。其中參數(shù)需說明類別、類型及傳遞方向。

(1)過程建立。過程分為聲明和過程主體,聲明應放在包集合的包頭部分,過程定義的主體代碼應放在包集合的包體內(nèi)。

過程聲明的語法格式為:

PROCEDURE 過程名 (參數(shù)列表) ;

其中,參數(shù)聲列表指明了輸入、輸出端口的數(shù)目和類型。

參數(shù)聲明的語法格式為:

[數(shù)據(jù)類型 參數(shù)名:模式]

其中,參數(shù)可以有任意多個;參數(shù)模式有in、out、inout、buffer形式;參數(shù)類型,可以是常數(shù)、信號、變量,“in”默認為常數(shù),“out”和“inout”默認為“變量”,若需要將“out”和“inout”作為信號使用,則在過程參數(shù)定義時必須指明是信號。

過程定義的語法格式為:

PROCEDURE 過程名 (參數(shù)列表) IS

[子程序聲明部分];

BEGIN

順序語句;

END [PROCEDURE] [過程名] ;

(2)過程的調(diào)用。過程的調(diào)用是一條語句,調(diào)用時通過其接口返回0個或多個值。過程可以直接調(diào)用,也可以在其他語句中調(diào)用。過程調(diào)用語句的語法格式為:

過程名 (參數(shù));

在過程語句執(zhí)行結(jié)束后,如沒有特別說明,輸出和輸入輸出參數(shù)將按變量對待將值傳遞給調(diào)用者的變量。如果調(diào)用者需要輸出和輸入輸出作為信號使用,則在過程參數(shù)定義時要指明是信號。

4 庫的調(diào)用

使用庫之前,首先需要對庫進行聲明。經(jīng)過聲明之后,在設計中就可以調(diào)用庫中的代碼了。用戶庫聲明的語法格式:

LIBRARY 庫名;

USE 庫名.程序包名.包集合名;

5 結(jié)束語

用戶庫是VHDL語言中非常重要的代碼分割、共享、重用的方法,只要將重用的代碼按功能特性以元件、函數(shù)、過程形式構(gòu)建成可重用部件放置在包集合內(nèi),經(jīng)過編譯后生成用戶庫文件,在后續(xù)編碼過程中通過庫聲明即可調(diào)用用戶庫。

用戶庫的使用可以使代碼結(jié)構(gòu)更加清晰,并且?guī)熘械拇a通常要經(jīng)過嚴格的測試和優(yōu)化,利用用戶庫進行電路設計,可以在FPGA等可編程邏輯器件中達到最優(yōu)的性能和最低的邏輯資源使用率,以保證電路的性能和質(zhì)量。因而,能在降低開發(fā)成本、縮短開發(fā)周期的同時提高了設計可靠性。

參考文獻

[1]孫曉東.FPGA軟件設計[J].電腦編程技巧與維護,2010,(12):5-6.

[2]李冰,吳金,魏同立.基于可重構(gòu)核的FPGA電路設計[J].固體電子學研究與進展,2003,1(23):108-109.

[3]侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設計[M].西安:西安電子科技大學出版社,1999.

[4]喬廬峰,王志功.VHDL數(shù)字電路設計教程[M].北京:電子工業(yè)出版社,2013.

作者簡介

駱傳慧,女,大學本科學歷。現(xiàn)為中國電子科技集團第三十八研究所高級工程師。主要研究方向可編程邏輯器件軟件設計、測試。

作者單位

1.中國電子科技集團第三十八研究所 安徽省合肥市 230088

2.孔徑陣列與空間探測安徽省重點實驗室 安徽省合肥市 230088

3.智能情報處理重點實驗室 安徽省合肥市 230088

主站蜘蛛池模板: 亚洲大学生视频在线播放| 国产成人乱码一区二区三区在线| 亚洲精品成人7777在线观看| 三上悠亚一区二区| 色播五月婷婷| 亚洲精品波多野结衣| 国产亚洲视频免费播放| 色综合久久无码网| 欧美精品在线免费| 一级片免费网站| 福利小视频在线播放| a级毛片在线免费| 亚洲天堂视频网站| 亚洲国产无码有码| 日韩av高清无码一区二区三区| 欧美国产日韩在线| www精品久久| 就去色综合| 国产h视频免费观看| 免费啪啪网址| 永久在线精品免费视频观看| 国产毛片高清一级国语| 无码aⅴ精品一区二区三区| 国产极品美女在线| 久久频这里精品99香蕉久网址| 国产靠逼视频| 2021国产精品自产拍在线观看 | 久久久久无码精品| 美美女高清毛片视频免费观看| 精品日韩亚洲欧美高清a| 无码一区二区三区视频在线播放| 国产导航在线| 久久免费看片| a毛片在线播放| av免费在线观看美女叉开腿| 免费一级成人毛片| 在线观看无码a∨| a级毛片在线免费观看| 精品欧美一区二区三区久久久| 亚洲系列无码专区偷窥无码| 午夜在线不卡| 国产美女一级毛片| 国产成人资源| 欧美亚洲激情| 亚洲成人高清无码| 国产一级α片| 国产国产人成免费视频77777| 欧美高清国产| 91精品国产自产在线老师啪l| 国产精品v欧美| 国产精品主播| 青青青视频免费一区二区| 国产精品深爱在线| 亚洲综合第一区| 欧美精品另类| 伊人久久婷婷| 久久人搡人人玩人妻精品| 亚洲精品视频在线观看视频| 亚洲日韩AV无码一区二区三区人| 亚洲 日韩 激情 无码 中出| 中国国产一级毛片| 国产一区亚洲一区| 2021最新国产精品网站| 久久婷婷综合色一区二区| 亚洲一级毛片免费看| 亚洲无码四虎黄色网站| 狠狠综合久久| www.狠狠| 国产乱子伦视频三区| 亚洲av日韩av制服丝袜| 久久一日本道色综合久久| 亚洲婷婷六月| 日韩精品专区免费无码aⅴ| 怡红院美国分院一区二区| 91精品国产综合久久香蕉922| 91在线丝袜| 综合色天天| 欧美高清国产| 老司机久久99久久精品播放| 久久青青草原亚洲av无码| 福利一区在线| 欧美精品H在线播放|