国产精品免费无遮挡无码永久视频-国产高潮视频在线观看-精品久久国产字幕高潮-国产精品99精品无码视亚

煉獄傳奇-task_function之戰

發布時間:2015-5-13 11:19    發布者:zxopen09
1.    task(任務)與function(函數)的不同
任務與函數主要有以下四點不同:
l  函數只能與主模塊共用一個仿真時間單位,而任務定義自己的仿真時間單位。
l  函數不能啟動任務,任務可以啟動其他任務和函數。
l  函數至少要有一個輸入變量,而任務可以沒有或有多任何類型的變量。
l  函數返回一個值,而任務不返回值。

2.     task語句說明
l  任務的定義
定義任務的語法如下:
task<任務名>
       <端口及數據類型聲明語句>
       <語句1>
       <語句2>
       …………
       <語句n>
endtask

l  任務的調用及變量的傳遞
任務的調用:
       <任務名>(端口1,端口2,…..,端口n);
下面舉例子說明怎么定義任務與調用任務:
任務定義:
       task      my_task;
              input a,b;
              output c;
              <語句>
              ….
endtask
       任務調用:my_task(v,w,x);
       任務調用變量(v,w,x)和任務定義的I/O變量(a,b,c)之間是一一對應的,當任務啟動時,由vw傳入的變量賦給了ab,而當任務完成之后的輸出又通過c賦給x,下面舉一個具體程序來介紹,代碼如下:
測試代碼如下:

仿真波形圖如下:

    當start信號變成高電平的時候,即當state狀態由0跳變到1時,調用load任務,把data_in的值寄存在save_data的同時狀態機狀態跳轉到2,當狀態跳轉到2的時候,調用shift任務,把save_data的值往左移一位的同時狀態機狀態跳轉到3,當狀態跳轉到3的時候,調用out任務,把save_data的值往data_out賦值的同時狀態機狀態跳轉到0,仿真的波形跟設計的完全一樣。

3.     function說明語句
l  定義函數的語法:
function<返回值的類型或范圍>(函數名);
<端口說明語句>
<變量類型說明語句>
begin
<語句>
………
end
endfunction
注意:<返回值的類型或范圍>這一項是可選項,如缺省則返回值位一位寄存器類型數據

l  舉例說明
下面舉一個實際程序的例子,來說明一下function函數的實際定義與如何調用。代碼如下:


測試代碼如下:
仿真波形如下:

    當start信號變成高電平的時候,即當state狀態有0跳變到1時,調用load_data(data_in)函數,把data_in的值寄存在save_data的同時狀態機狀態跳轉到2,當狀態跳轉到2的時候,調用shift(save_data)函數,把save_data的值往左移一位的同時狀態機狀態跳轉到3,當狀態跳轉到3的時候,調用load_data(save_data)函數,把save_data的值往data_out賦值的同時狀態機狀態跳轉到0,仿真的波形跟設計的完全一樣。

本文地址:http://www.4huy16.com/thread-149309-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 技術熱潮席卷三城,2025 Microchip中國技術精英年會圓滿收官!
  • Microchip第22屆中國技術精英年會上海首站開幕
  • “芯”光璀璨,鵬城共賞——2025 Microchip中國技術精英年會深圳站回顧
  • 電動兩輪車設計生態系統
  • 貿澤電子(Mouser)專區
關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表