函数副程序以及套件程式库.PPT

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数副程序以及套件程式库

VHDL 硬體描述語言 數位電路設計實務 第六章 函數副程序以及套件程式庫 6-1 function 函數宣告 在行為模型 (Behavioral Model) 的設計中、我們通常在程式的許多地方重複著相同描述的程式碼,這樣的情況在一般的電腦程式語言裡、通常將重複用到的程式碼設計成函數或是程序的形式,再去引用、而不用繁瑣的鍵入同樣的程式碼,在 VHDL 中對於相同的程式碼可以在程式中的不同地方被引用而不需要繁瑣的一再鍵入相同的程式碼。 function 敘述如同在 Quick Basic 程式語言、Pascal 程式語言或 Fortran 程式語言裡的 function。 function 的傳回值是儲存在和函數同樣名樣的這個變數中。 function 可以接受一個或多個參數而將 function 運算 / 處理完成之後會傳回一個值。 由於 VHDL 對於型態的檢查特別地嚴謹,所以實際參數與相對應 function 位置的參數二者的型態必需要一致。 function 必需寫在 package body package_name is … end package_name; 或 entity entity-name is … end entity-name; 或者是 architecture … begin 之內。 function function-name ( signal-name-1 : signal-type; ... signal-name-N : signal-type ) return return-type is ”宣告部份“ begin sequential-statement ... sequential-statement end function-name; 其中: u?function-name 用來描述這個 function 的名稱。function 的名稱上下要一樣,例如: function StrCat ( … begin ... end StrCat; u?signal-names-1 …signal-names-N 用來描述參數的名稱,二個參數之間要用分號 (;) 區隔開來。 這個部份可以不寫。 u?signal-type 訊號的型態,用來描述參數的型態。 例如:std_logic、std_logic_vector( 3 downto 0)、bit_vector( 3 downto 0) … 等等。請參考“VHDL 內定的資料型態”。 u?) return return-type is return 是“傳回”的意思,return-type 是回傳訊號的型態。 u ”宣告部份“ ”宣告部份“ 是可以不寫的,但內容可以包括: l subprogram declaration, 程序宣告 l subprogram body, 程序內容 l type declaration, 型態宣告 用來定義只能在 function 區塊內使用的“使用者自行定義的型態”(User-Define type)。例如請看“architecture 的語法”。 l subtype declaration, 子型態宣告 l constant declaration, 常數宣告 用來定義只能在 function 區塊內使用的“常數”,跟 C 語言的 #define 以及 Verilog 的 parameter 一樣。例如請看“常數 constant 宣告”。 l?variable declaration, 變數宣告 用來定義只能在 function 區塊內使用的變數。例如: variable sig : std_logic; variable value : bit_vector(7 downto 0) := l file declaration, 檔案宣告 l alias declaration, 別名宣告 l use clause, use 子句 l group declaration, 群組宣告 l function declaration, 函數宣告 用來定義只能在 function 區塊內使用之函數內的巢狀函數 (nested function) 。 l procedure declaration, 程序宣告 定義只能在 function 區塊內使用的 procedure (程序)。例如請看“procedure 程序宣告”。 u 最後是 begin … end function-

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档