色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

簡談FPGA verilog中的function用法與例子

FPGA學習交流 ? 2018-08-10 13:42 ? 次閱讀

大家好,又到了每日學習的時間了,今天我們來聊一聊FPGA verilog中的function用法與例子。

函數的功能和任務的功能類似,但二者還存在很大的不同。在 Verilog HDL 語法中也存在函數的定義和調用。

1.函數的定義
函數通過關鍵詞 function 和 endfunction 定義,不允許輸出端口聲明(包括輸出和雙向端口) ,但可以有多個輸入端口。函數定義的語法如下:

function [range] function_id;
input_declaration
other_declarations
procedural_statement
endfunction

其中,function 語句標志著函數定義結構的開始;[range]參數指定函數返回值的類型或位寬,是一個可選項,若沒有指定,默認缺省值為 1 比特的寄存器數據;function_id 為所定義函數的名稱,對函數的調用也是通過函數名完成的,并在函數結構體內部代表一個內部變量,函數調用的返回值就是通過函數名變量傳遞給調用語句;input_declaration 用于對函數各個輸入端口的位寬和類型進行說明,在函數定義中至少要有一個輸入端口;endfunction為函數結構體結束標志。下面給出一個函數定義實例。

定義函數實例:
function AND; //定義輸入變量
input A, B; //定義函數體
begin
AND = A && B;
end
endfunction

函數定義在函數內部會隱式定義一個寄存器變量, 該寄存器變量和函數同名并且位寬也一致。函數通過在函數定義中對該寄存器的顯式賦值來返回函數計算結果。此外,還有下列
幾點需要注意:
(1)函數定義只能在模塊中完成,不能出現在過程塊中;
(2)函數至少要有一個輸入端口;不能包含輸出端口和雙向端口;
(3) 在函數結構中, 不能使用任何形式的時間控制語句 (#、 wait 等) , 也不能使用 disable中止語句;
(4)函數定義結構體中不能出現過程塊語句(always 語句) ;
(5)函數內部可以調用函數,但不能調用任務。

2.函數調用
和任務一樣,函數也是在被調用時才被執行的,調用函數的語句形式如下: func_id(expr1, expr2, ........., exprN) ,其中,func_id 是要調用的函數名,expr1, expr2, ......exprN是傳遞給函數的輸入參數列表,該輸入參數列表的順序必須與函數定義時聲明其輸入的順序相同。下面給出一個函數調用實例。

函數調用實例:
module comb15 (A, B, CIN, S, COUT);

input [3:0] A, B;
input CIN;
output [3:0] S;
output COUT;

wire [1:0] S0, S1, S2, S3;

function signed [1:0] ADD;

input A, B, CIN;

reg S, COUT;

begin
S = A ^ B ^ CIN;
COUT = (A&B) | (A&CIN) | (B&CIN);
ADD = {COUT, S};
end
endfunction

assign S0 = ADD (A[0], B[0], CIN),
S1 = ADD (A[1], B[1], S0[1]),
S2 = ADD (A[2], B[2], S1[1]),
S3 = ADD (A[3], B[3], S2[1]),
S = {S3[0], S2[0], S1[0], S0[0]},
COUT = S3[1];
endmodule

在函數調用中,有下列幾點需要注意:
(1)函數調用可以在過程塊中完成,也可以在 assign 這樣的連續賦值語句中出現。
(2)函數調用語句不能單獨作為一條語句出現,只能作為賦值語句的右端操作數。

今天就聊到這里,各位,加油。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1629

    文章

    21729

    瀏覽量

    603024
  • Verilog
    +關注

    關注

    28

    文章

    1351

    瀏覽量

    110077
收藏 人收藏

    評論

    相關推薦

    FPGA的上電復位

    大家好,博主最近有事忙了幾天,沒有更新,今天正式回來了。那么又到了每日學習的時間了,今天咱們來聊一聊 FPGA的上電復位,歡迎大家一起交流學習。 在基于verilog
    的頭像 發表于 06-18 19:24 ?2w次閱讀
    <b class='flag-5'>簡</b><b class='flag-5'>談</b><b class='flag-5'>FPGA</b>的上電復位

    FPGA的片內資源

    FPGA的片內資源
    發表于 01-08 22:12

    數字電路FPGAverilog教程

    數字電路FPGAverilog教程,好東西,喜歡的朋友可以下載來學習。
    發表于 01-18 17:44 ?42次下載

    Verilog實現閏年的判斷(ISE8.21調試通過)

    Xilinx FPGA工程例子源碼:Verilog實現閏年的判斷(ISE8.21調試通過)
    發表于 06-07 14:54 ?31次下載

    FPGA_CPLD實現AD或DA的文章(英文Verilog)

    Xilinx FPGA工程例子源碼:在FPGACPLD實現AD或DA的文章(英文Verilog)
    發表于 06-07 15:07 ?18次下載

    FPGA verilog的task用法

    ????????大家好,又到了每日學習的時間了,今天我們來聊一聊FPGA verilog的task用法。 ? ? ? ?任務就是一段封裝在“task-endtask”之間的程序。任務
    的頭像 發表于 08-09 18:59 ?4.1w次閱讀

    FPGA verilog的repeat用法例子

    ????? ?大家好,又到了每日學習的時間了,今天我們來聊一聊FPGA verilog的repeat用法例子。? ? ? ?repeat
    的頭像 發表于 08-15 14:07 ?1.9w次閱讀
    <b class='flag-5'>簡</b><b class='flag-5'>談</b><b class='flag-5'>FPGA</b> <b class='flag-5'>verilog</b><b class='flag-5'>中</b>的repeat<b class='flag-5'>用法</b>與<b class='flag-5'>例子</b>

    verilog的initial語句說明

    解釋verilog HDL的initial語句的用法
    發表于 05-31 09:11 ?0次下載

    FPGA設計DAC控制的Verilog實現

    FPGA設計DAC控制的Verilog實現(單片機電源維修)-該文檔為FPGA設計DAC控制的Ver
    發表于 07-26 12:18 ?18次下載
    <b class='flag-5'>FPGA</b>設計<b class='flag-5'>中</b>DAC控制的<b class='flag-5'>Verilog</b>實現

    FPGA CPLDVerilog設計小技巧

    FPGA CPLDVerilog設計小技巧(肇慶理士電源技術有限)-FPGA CPLDVeril
    發表于 09-18 16:49 ?37次下載
    <b class='flag-5'>FPGA</b> CPLD<b class='flag-5'>中</b>的<b class='flag-5'>Verilog</b>設計小技巧

    FPGA如何使用Verilog處理圖像

    FPGA項目旨在詳細展示如何使用Verilog處理圖像,從Verilog讀取輸入位圖圖像(.bmp),處理并將處理結果寫入Verilog
    的頭像 發表于 09-23 15:50 ?6052次閱讀

    FPGA和USB3.0通信-FX3硬件設計

    FPGA和USB3.0通信-FX3硬件設計本次演示用的是USB3.0芯片-CYPRESS CYUSB3014(下稱 FX3),該芯片是標準的USB3.0 PHY,可以大大簡化使用USB...
    發表于 12-01 20:06 ?24次下載
    <b class='flag-5'>FPGA</b>和USB3.0通信-FX3硬件設計<b class='flag-5'>簡</b><b class='flag-5'>談</b>

    verilogfunction和task的區別

    VerilogFunction和Task是用于模塊化設計和重用代碼的兩種重要元素。它們允許開發人員將復雜的操作分解為更小的功能單元,并在需要時調用它們。雖然Function和Ta
    的頭像 發表于 02-22 15:40 ?1886次閱讀

    verilog function函數的用法

    Verilog 是一種硬件描述語言 (HDL),主要用于描述數字電子電路的行為和結構。在 Verilog ,函數 (Function) 是一種用于執行特定任務并返回一個值的可重用代碼
    的頭像 發表于 02-22 15:49 ?5538次閱讀

    verilog task和function區別

    verilog的task和function都是用于實現模塊的可重復的功能,并且可以接收參數和返回結果。但是它們在編寫和使用上有一些區別。下面將詳細介紹task和
    的頭像 發表于 02-22 15:53 ?1058次閱讀
    主站蜘蛛池模板: 亚洲国产在线精品国| 久久免费精品一区二区| 成人在线免费观看| 99re6在线视频国产精品欧美| 鸭子玩富婆流白浆视频| 乌克兰黄色录像| 添加一点爱与你电视剧免费观看| 日韩精品无码视频一区二区蜜桃| 欧美高清69vivo| 嫩草欧美曰韩国产大片| 母狗黄淑珍| 欧美疯狂做受xxxxx喷水| 欧美亚洲日韩一道免费观看| 欧美大香线蕉线伊人久久| 欧美GV肉片视频免费观看| 欧美疯狂做受xxxxx喷水| 日本全彩黄漫无遮挡| 日日操天天操夜夜操| 日本在线免费播放| 日韩性大片| 小莹的性荡生活45章| 亚洲永久精品AV在线观看| 伊人久久青草| 99RE6国产精品视频播放| 扒开校花粉嫩小泬喷潮漫画| 成年人视频在线免费观看| 高清 国产 在线 亚洲| 国产精品视频第一区二区三区| 国产亚洲精品久久777777| 精品成人在线视频| 伦理片秋霞免费影院| 欧洲内射XXX高清| 甜性涩爱dvd| 野花日本高清在线观看免费吗| 中文在线中文资源| 啊…嗯啊好深男男高h文| 国产国产成年在线视频区| 混乱家庭电影完整版在线看| 麻豆精选2021| 骚妇BB双飞插| 亚洲欧美日韩在线观看一区二区三区|