• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種VHDL語言代碼重用的方法

      2016-09-29 13:33
      科技視界 2016年20期
      關(guān)鍵詞:軟件設(shè)計

      駱傳慧

      【摘要】代碼重用是提高軟件設(shè)計效率和質(zhì)量的重要手段,VHDL的庫文件能夠?qū)崿F(xiàn)高效代碼分割、代碼共享及代碼重用。本文介紹了庫的基本結(jié)構(gòu),及其的基本構(gòu)件單元元件、函數(shù)、過程的建立和調(diào)用的語法結(jié)構(gòu),從而實現(xiàn)結(jié)構(gòu)化設(shè)計及代碼重用。

      【關(guān)鍵詞】代碼重用;VHDL;軟件設(shè)計

      0引言

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

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

      1庫組成

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

      2庫構(gòu)件說明

      2.1包集合

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

      PACKAGE 程序包名 IS

      說明語句

      END [程序包名];

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

      PACKAGE BODY程序包名 IS

      說明語句

      END [程序包名];

      2.2元件

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

      2.2.1元件定義

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

      COMPONENT元件名IS

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

      PORT(元件端口列表);

      END COMPONET;

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

      2.2.2元件調(diào)用

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

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

      COMPONENT元件名(

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

      PORT MAP(元件端口列表));

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

      COMPONENT元件名(

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

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

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

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

      2.3子程序

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

      2.3.1函數(shù)

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

      1)函數(shù)建立

      函數(shù)分為函數(shù)聲明和函數(shù)主體體,函數(shù)聲明是包集合與函數(shù)的接口界面,放在包集合的包頭部分,而函數(shù)主體應(yīng)放在包集合的包體內(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ù)列表);

      2.3.2過程

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

      1)過程建立

      過程分為聲明和過程主體,聲明應(yīng)放在包集合的包頭部分,過程定義的主體代碼應(yīng)放在包集合的包體內(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ù)定義時要指明是信號。

      3庫的調(diào)用

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

      LIBRARY 庫名;

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

      4結(jié)束語

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

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

      【參考文獻】

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

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

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

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

      猜你喜歡
      軟件設(shè)計
      基于單片機SPCE061A的字幕機點陣式字母電子顯示屏的設(shè)計制作
      广宁县| 福海县| 周口市| 安顺市| 黄冈市| 旬阳县| 灌阳县| 柞水县| 浦北县| 体育| 正阳县| 磴口县| 南丹县| 留坝县| 什邡市| 乐安县| 邵阳市| 驻马店市| 电白县| 宜兴市| 呼玛县| 商丘市| 方山县| 樟树市| 绵阳市| 香港 | 繁昌县| 邯郸市| 新龙县| 澄江县| 牟定县| 郑州市| 定兴县| 平顶山市| 台东县| 南靖县| 炎陵县| 泰安市| 合水县| 铁力市| 杨浦区|