VHDL子程序
VHDL子程序
VHDL子程序(SUBPROGRAM)是一個VHDL程序模塊,這個模塊利用順序語句來定義和完成算法,因此只能使用順序語句。這一點與進程相似,所不同的是,子程序不能像進程那樣可以從本結(jié)構(gòu)體的并行語句或其他進程結(jié)構(gòu)中直接讀取信號值或者向信號賦值。
VHDL子程序與其他軟件語言程序中的子程序的應用目的相似的,即能更有效地完成重復性的工作 。子程序的使用方式只能通過子程序調(diào)用及與子程序的界面端口進行通信。子程序可以在VHDL程序的3個不同位置進行定義,即在程序包、結(jié)構(gòu)體和進程中定義。但由于只有在程序包中定義的子程序才被其他不同的設計所調(diào)用,所以一般應該將子程序放在程序中,VHDL子程序具有可重載的特點,即允許有許多重名的子程序,但這些的參數(shù)類型及返回值數(shù)據(jù)類型是不同的。
子程序有兩種類型,即過程PROCEDURE和函數(shù)FUNCTION。
函數(shù)
在VHDL中有多種函數(shù)形式,如用于不同目的用戶自定義函數(shù)和在庫中現(xiàn)成的具有專用功能的預定義函數(shù)。 函數(shù)的語句表達格式如下:FUNCTION 函數(shù)名(參數(shù)表)RETURN 數(shù)據(jù)類型 --函數(shù)首FUNCTION 函數(shù)名(參數(shù)表)RETURN 數(shù)據(jù)類型 IS --函數(shù)體[說明部分]BEGIN順序語句;END FUNCTION 函數(shù)名; 一般地,函數(shù)定義應有兩部分組成,即函數(shù)首和函數(shù)體,在進程或結(jié)構(gòu)體中不必定義函數(shù)首, 而在程序包中必須定義函數(shù)首運算重載就是對VHDL中現(xiàn)存的運算符進行重新定義,以在原來基礎上獲得新的功能。 新功能的定義是靠函數(shù)體來完成的,函數(shù)的參數(shù)表是用來定義輸出值的,所以不必以顯示表示參數(shù)的方向?總結(jié)
- 上一篇: Intel CPU可以点播了!只要掏钱
- 下一篇: 徕卡 SL2 / SL2-S 全画幅无反