chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

講解function任務(wù)的用法

e9Zb_gh_8734352 ? 來源:FPGA技術(shù)聯(lián)盟 ? 作者:FPGA技術(shù)聯(lián)盟 ? 2021-04-02 09:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本系列文章主要針對FPGA初學(xué)者編寫,包括FPGA的模塊書寫、基礎(chǔ)語法、狀態(tài)機(jī)、RAM、UART、SPI、VGA、以及功能驗證等。將每一個知識點作為一個章節(jié)進(jìn)行講解,旨在更快速的提升初學(xué)者在FPGA開發(fā)方面的能力,每一個章節(jié)中都有針對性的代碼書寫以及代碼的講解,可作為讀者參考。

18

第十八章:function

function說明語句

function說明語句的用途就是要返回一個值,然后把這個值用在表達(dá)式中。本章講解function任務(wù)的用法。

不同點

任務(wù)和函數(shù)主要的不同點如下:

1、function中不能包含時序控制語句,而task任務(wù)可以包含時序控制語句;

2、function不能調(diào)用task任務(wù),而task任務(wù)能調(diào)用function語句;

3、function至少要有一個input類型的參數(shù),不能有output和inout類型的參數(shù)。而task任務(wù)可以沒有參數(shù),也可以有多個類型的參數(shù);

4、function返回一個值,而task任務(wù)則不返回值。

5、function只能對輸入值返回一個結(jié)果值,而task可以支持多種用途,可以計算并返回多個結(jié)果值。使用task時,只能通過output和inout類型的參數(shù)把結(jié)果值傳遞回來。

function使用語法

定義任務(wù)的語法:

function<返回值的類型或范圍>(函數(shù)名);
<端口說明語句>
<變量類型說明語句>

begin
<語句1>

<語句2>

………
end
endfunction

函數(shù)通過關(guān)鍵詞 function 和 endfunction 定義。不允許輸出端口聲明(包括輸出和雙向端口),但可以有多個輸入端口。<返回值的類型或范圍>指定函數(shù)返回值的類型或位寬,是一個可選項,若沒有指定,默認(rèn)缺省值為寬度 1 bit的寄存器數(shù)據(jù)。(函數(shù)名)為所定義函數(shù)的名稱,對函數(shù)的調(diào)用也是通過函數(shù)名完成的,并在函數(shù)結(jié)構(gòu)體內(nèi)部代表一個內(nèi)部變量,函數(shù)調(diào)用的返回值就是通過函數(shù)名變量傳遞給調(diào)用語句。函數(shù)定義在函數(shù)內(nèi)部會隱式定義一個寄存器變量,該寄存器變量和函數(shù)同名并且位寬也一致。函數(shù)通過在函數(shù)定義中對該寄存器的顯式賦值來返回函數(shù)計算結(jié)果。

函數(shù)定義示例

1af4ba5c-8dcd-11eb-8b86-12bb97331649.png

函數(shù)的定義聲明了與函數(shù)同名的,函數(shù)內(nèi)部的寄存器。如在函數(shù)的聲明語句中<返回值的類型或范圍>為默認(rèn),則這個寄存器是1位的。否則是與函數(shù)定義中<返回值的類型或范圍>一致的寄存器。函數(shù)的定義把函數(shù)返回值所賦值寄存器的名稱初始化與函數(shù)同名的內(nèi)部變量。上述代碼示例定義了一個名為“function_use”的函數(shù),把輸入a的值低3bit賦給了返回值function_use。需要注意的是在函數(shù)定義時不能包含任何時間控制語句,即不能包含#,@,wait等。

函數(shù)調(diào)用

下面舉例說明function 函數(shù)的定義與如何調(diào)用。

代碼示例

函數(shù)的調(diào)用時通過將函數(shù)作為表達(dá)式中的操作數(shù)來實現(xiàn)的。調(diào)用格式如下:

<函數(shù)名> (<表達(dá)式>,……<表達(dá)式>)

1b5d95e0-8dcd-11eb-8b86-12bb97331649.png

1f4e4398-8dcd-11eb-8b86-12bb97331649.png

測試代碼如下:

1f7e338c-8dcd-11eb-8b86-12bb97331649.png

仿真波形如圖所示:

22fd3c4c-8dcd-11eb-8b86-12bb97331649.png

由仿真圖可以看:

1、當(dāng) start 信號變成高電平的時候,state 狀態(tài)由 0 跳變到 1 時,此時調(diào)用 load_data 函數(shù),把 data_in 的值通過調(diào)用函數(shù)的方式賦給shift_data ,同時狀態(tài)機(jī)狀態(tài)跳轉(zhuǎn)到 2。

2、當(dāng)狀態(tài)跳轉(zhuǎn)到 2 的時候,此時調(diào)用shift 函數(shù),把 shift_data 的值通過調(diào)用函數(shù)的方式往左移一位后賦給shift_data ,同時狀態(tài)機(jī)狀態(tài)跳轉(zhuǎn)到 3。

3、當(dāng)狀態(tài)跳到 3 的時候,調(diào)用 load_data 函數(shù),把 shift_data 的值通過調(diào)用函數(shù)的方式賦值給data_out ,同時狀態(tài)機(jī)狀態(tài)跳轉(zhuǎn)到 0。

4、最終結(jié)果:

8‘hF0左移1位,data_out=8‘hE0。

8‘hFF左移1位,data_out=8‘hFE。

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1659

    文章

    22364

    瀏覽量

    632985
  • Function
    +關(guān)注

    關(guān)注

    0

    文章

    14

    瀏覽量

    10290
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    615

    瀏覽量

    29435

原文標(biāo)題:FPGA入門系列18--function

文章出處:【微信號:gh_873435264fd4,微信公眾號:FPGA技術(shù)聯(lián)盟】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    冷柜-電氣控制系統(tǒng)講解

    冰箱冷柜的電氣控制系統(tǒng),常見電器元器件,電路原理,控制方式的講解
    發(fā)表于 01-08 14:52 ?4次下載

    FreeRTOS 空閑任務(wù)

    幾乎所有的小型 RTOS 中都會有一個空閑任務(wù),空閑任務(wù)屬于系統(tǒng)任務(wù),是必須要執(zhí)行的,用戶程序不能將其關(guān)閉。不光小型系統(tǒng)中有空閑任務(wù),大型的系統(tǒng)里面也有的,比如我們使用的Window系
    發(fā)表于 12-04 07:35

    freertos關(guān)閉任務(wù)調(diào)度的方法

    #include \"FreeRTOS.h\" #include \"task.h\" /* 關(guān)閉任務(wù)調(diào)度 */ void
    發(fā)表于 11-17 06:47

    C語言的printf基本用法介紹

    個小數(shù)。f 是 float 的簡寫。 除了這些,printf 支持更加復(fù)雜和優(yōu)美的輸出格式,考慮到讀者的基礎(chǔ)暫時不夠,我們將在《C語言數(shù)據(jù)輸出大匯總以及輕量進(jìn)階》一節(jié)中展開講解。 我們把代碼補(bǔ)充完整
    發(fā)表于 11-12 07:04

    Task任務(wù):LuatOS實現(xiàn)“任務(wù)級并發(fā)”的核心引擎

    Task任務(wù)通過其強(qiáng)大的并發(fā)處理能力,使LuatOS能夠在單線程環(huán)境中模擬多線程執(zhí)行,通過協(xié)程的掛起與恢復(fù)機(jī)制,實現(xiàn)任務(wù)級的并行操作,顯著提升系統(tǒng)效能。 sys核心庫是LuatOS運行框架庫,也是
    的頭像 發(fā)表于 08-28 13:49 ?429次閱讀
    Task<b class='flag-5'>任務(wù)</b>:LuatOS實現(xiàn)“<b class='flag-5'>任務(wù)</b>級并發(fā)”的核心引擎

    揭秘!基于RT-Thread探究“優(yōu)先級反轉(zhuǎn)”下的任務(wù)調(diào)度究竟是什么樣的?| 技術(shù)集結(jié)

    本文將基于RT-Thread,結(jié)合RT-Trace調(diào)試器細(xì)化到實際任務(wù)調(diào)度的粒度,來調(diào)試并逐步講解“優(yōu)先級反轉(zhuǎn)”的調(diào)度和運行邏輯。如果對RT-Trace感興趣的可以看這篇文章:國產(chǎn)嵌入式調(diào)試器之光
    的頭像 發(fā)表于 08-17 10:07 ?3056次閱讀
    揭秘!基于RT-Thread探究“優(yōu)先級反轉(zhuǎn)”下的<b class='flag-5'>任務(wù)</b>調(diào)度究竟是什么樣的?| 技術(shù)集結(jié)

    同步任務(wù)開發(fā)指導(dǎo)

    {// 調(diào)用靜態(tài)類對象中實現(xiàn)的同步等待調(diào)用Handle.syncSet(num);return true;}// 步驟2: 創(chuàng)建任務(wù)并執(zhí)行async function asyncGet(): Promise
    發(fā)表于 06-19 07:57

    I/O密集型任務(wù)開發(fā)指導(dǎo)

    使用異步并發(fā)可以解決單次I/O任務(wù)阻塞的問題,但是如果遇到I/O密集型任務(wù),同樣會阻塞線程中其它任務(wù)的執(zhí)行,這時需要使用多線程并發(fā)能力來進(jìn)行解決。 I/O密集型任務(wù)的性能重點通常不在于
    發(fā)表于 06-19 07:19

    CPU密集型任務(wù)開發(fā)指導(dǎo)

    CPU密集型任務(wù)是指需要占用系統(tǒng)資源處理大量計算能力的任務(wù),需要長時間運行,這段時間會阻塞線程其它事件的處理,不適宜放在主線程進(jìn)行。例如圖像處理、視頻編碼、數(shù)據(jù)分析等。 基于多線程并發(fā)機(jī)制處理CPU
    發(fā)表于 06-19 06:05

    【RA4L1-SENSOR】05 按鍵實現(xiàn)RTOS任務(wù)切換

    是只做了兩個任務(wù)來回切換,之后再完善多任務(wù)切換的。 #include \"Key_Switch_Task.h\" /* KeySwitch entry function
    發(fā)表于 06-16 22:38

    在IAR Arm開發(fā)工具鏈中--function_sections編譯選項的使用

    本文主要介紹在IAR Arm開發(fā)工具鏈中不修改源代碼的情況下使用??function_sections編譯選項把函數(shù)放到單獨的section。
    的頭像 發(fā)表于 06-13 13:53 ?1658次閱讀
    在IAR Arm開發(fā)工具鏈中--<b class='flag-5'>function</b>_sections編譯選項的使用

    UIAbility組件基本用法說明

    UIAbility組件基本用法 UIAbility組件的基本用法包括:指定UIAbility的啟動頁面以及獲取UIAbility的上下文UIAbilityContext。 指定UIAbility
    發(fā)表于 05-16 06:32

    harmony OS NEXT-Navagation基本用法

    # Navagation基本用法 > Navigation組件是路由導(dǎo)航的根視圖容器,一般作為Page頁面的根容器使用,其內(nèi)部默認(rèn)包含了標(biāo)題欄,內(nèi)容欄和公工具欄,其中內(nèi)容區(qū)默認(rèn)首頁顯示導(dǎo)航內(nèi)容
    的頭像 發(fā)表于 04-27 17:39 ?866次閱讀

    Linux中文本處理命令的用法

    Linux 三劍客是(grep,sed,awk)三者的簡稱,熟練使用這三個工具可以提升運維效率。Linux 三劍客以正則表達(dá)式作為基礎(chǔ),而在Linux系統(tǒng)中,支持兩種正則表達(dá)式,分別為“標(biāo)準(zhǔn)正則表達(dá)式”和“擴(kuò)展正則表達(dá)式”。在掌握好正則表達(dá)式后,將具體講解三劍客的用法
    的頭像 發(fā)表于 04-15 10:22 ?673次閱讀
    Linux中文本處理命令的<b class='flag-5'>用法</b>

    Linux計劃任務(wù)cron詳解

    cron是linux下用來周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個守護(hù)進(jìn)程,與windows下的計劃任務(wù)類似,當(dāng)安裝完成操作系統(tǒng)后,默認(rèn)會安裝此服務(wù) 工具,并且會自動啟動crond進(jìn)程,crond進(jìn)程每分鐘會定期檢查是否有要執(zhí)行的
    的頭像 發(fā)表于 02-07 15:31 ?1662次閱讀
    Linux計劃<b class='flag-5'>任務(wù)</b>cron詳解