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

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

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

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

簡(jiǎn)談FPGA verilog中的task用法

FPGA學(xué)習(xí)交流 ? 2018-08-09 18:59 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好,又到了每日學(xué)習(xí)的時(shí)間了,今天我們來(lái)聊一聊FPGA verilog中的task用法。
任務(wù)就是一段封裝在“task-endtask”之間的程序。任務(wù)是通過(guò)調(diào)用來(lái)執(zhí)行的,而且只有在調(diào)用時(shí)才執(zhí)行,如果定義了任務(wù),但是在整個(gè)過(guò)程中都沒(méi)有調(diào)用它,那么這個(gè)任務(wù)是不會(huì)執(zhí)行的。調(diào)用某個(gè)任務(wù)時(shí)可能需要它處理某些數(shù)據(jù)并返回操作結(jié)果,所以任務(wù)應(yīng)當(dāng)有接收數(shù)據(jù)的輸入端和返回?cái)?shù)據(jù)的輸出端。另外,任務(wù)可以彼此調(diào)用,而且任務(wù)內(nèi)還可以調(diào)用函數(shù)。

1.任務(wù)定義
任務(wù)定義的形式如下:
task task_id;
[declaration]
procedural_statement
endtask

其中,關(guān)鍵詞 task 和 endtask 將它們之間的內(nèi)容標(biāo)志成一個(gè)任務(wù)定義,task 標(biāo)志著一個(gè)任務(wù)定義結(jié)構(gòu)的開(kāi)始;task_id 是任務(wù)名;可選項(xiàng) declaration 是端口聲明語(yǔ)句和變量聲明語(yǔ)句,任務(wù)接收輸入值和返回輸出值就是通過(guò)此處聲明的端口進(jìn)行的;procedural_statement是一段用來(lái)完成這個(gè)任務(wù)操作的過(guò)程語(yǔ)句,如果過(guò)程語(yǔ)句多于一條,應(yīng)將其放在語(yǔ)句塊內(nèi);endtask 為任務(wù)定義結(jié)構(gòu)體結(jié)束標(biāo)志。下面給出一個(gè)任務(wù)定義的實(shí)例。

task task_demo; //任務(wù)定義結(jié)構(gòu)開(kāi)頭,命名為 task_demo
input [7:0] x,y; //輸入端口說(shuō)明
output [7:0] tmp; //輸出端口說(shuō)明

if(x>y) //給出任務(wù)定義的描述語(yǔ)句
tmp = x;
else
tmp = y;

endtask

上述代碼定義了一個(gè)名為“task_demo”的任務(wù),求取兩個(gè)數(shù)的最大值。在定義任務(wù)時(shí),

有下列六點(diǎn)需要注意:
(1)在第一行“task”語(yǔ)句中不能列出端口名稱(chēng);
(2)任務(wù)的輸入、輸出端口和雙向端口數(shù)量不受限制,甚至可以沒(méi)有輸入、輸出以及雙向端口。
(3)在任務(wù)定義的描述語(yǔ)句中,可以使用出現(xiàn)不可綜合操作符合語(yǔ)句(使用最為頻繁的就是延遲控制語(yǔ)句) ,但這樣會(huì)造成該任務(wù)不可綜合。
(4)在任務(wù)中可以調(diào)用其他的任務(wù)或函數(shù),也可以調(diào)用自身。
(5)在任務(wù)定義結(jié)構(gòu)內(nèi)不能出現(xiàn) initial和 always過(guò)程塊。
(6)在任務(wù)定義中可以出現(xiàn)“disable 中止語(yǔ)句” ,將中斷正在執(zhí)行的任務(wù),但其是不可綜合的。當(dāng)任務(wù)被中斷后,程序流程將返回到調(diào)用任務(wù)的地方繼續(xù)向下執(zhí)行。

2.任務(wù)調(diào)用
雖然任務(wù)中不能出現(xiàn) initial 語(yǔ)句和 always 語(yǔ)句語(yǔ)句, 但任務(wù)調(diào)用語(yǔ)句可以在 initial 語(yǔ)句和 always 語(yǔ)句中使用,其語(yǔ)法形式如下: task_id[(端口1, 端口 2, ........, 端口 N)]; 其中 task_id是要調(diào)用的任務(wù)名,端口 1、端口 2,…是參數(shù)列表。參數(shù)列表給出傳入任務(wù)的數(shù)據(jù)(進(jìn)入任務(wù)的輸入端)和接收返回結(jié)果的變量(從任務(wù)的輸出端接收返回結(jié)果) 。
任務(wù)調(diào)用語(yǔ)句中,參數(shù)列表的順序必須與任務(wù)定義中的端口聲明順序相同。任務(wù)調(diào)用語(yǔ)句是過(guò)程性語(yǔ)句,所以任務(wù)調(diào)用中接收返回?cái)?shù)據(jù)的變量必須是寄存器類(lèi)型。下面給出一個(gè)任務(wù)調(diào)用實(shí)例。

例:通過(guò) Verilog HDL 的任務(wù)調(diào)用實(shí)現(xiàn)一個(gè) 4 比特全加器。

module EXAMPLE (A, B, CIN, S, COUT);

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

reg [3:0] S;
reg COUT;
reg [1:0] S0, S1, S2, S3;

task ADD;

input A, B, CIN;
output [1:0] C;

reg [1:0] C;
reg S, COUT;

begin

S = A ^ B ^ CIN;
COUT = (A&B) | (A&CIN) | (B&CIN);
C = {COUT, S};
end
endtask

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

在調(diào)用任務(wù)時(shí),需要注意以下幾點(diǎn):
(1)任務(wù)調(diào)用語(yǔ)句只能出現(xiàn)在過(guò)程塊內(nèi);
(2)任務(wù)調(diào)用語(yǔ)句和一條普通的行為描述語(yǔ)句的處理方法一致;
(3)當(dāng)被調(diào)用輸入、輸出或雙向端口時(shí),任務(wù)調(diào)用語(yǔ)句必須包含端口名列表,且信號(hào)端口順序和類(lèi)型必須和任務(wù)定義結(jié)構(gòu)中的順序和類(lèi)型一致。需要說(shuō)明的是,任務(wù)的輸出端口必須和寄存器類(lèi)型的數(shù)據(jù)變量對(duì)應(yīng)。
(4)可綜合任務(wù)只能實(shí)現(xiàn)組合邏輯,也就是說(shuō)調(diào)用可綜合任務(wù)的時(shí)間為“0” 。而在面向仿真的任務(wù)中可以帶有時(shí)序控制,如時(shí)延,因此面向仿真的任務(wù)的調(diào)用時(shí)間不為“0” 。

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

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

    關(guān)注

    1659

    文章

    22364

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    FPGA 入門(mén)必看:Verilog 與 VHDL 編程基礎(chǔ)解析!

    很多開(kāi)發(fā)者第一次接觸FPGA,都會(huì)有同樣的疑問(wèn):FPGA是硬件,不是軟件,怎么寫(xiě)程序?答案就是用硬件描述語(yǔ)言(HDL),最常用的就是Verilog和VHDL。今天,我們就帶你入門(mén),搞清楚FPG
    的頭像 發(fā)表于 01-19 09:05 ?192次閱讀
    <b class='flag-5'>FPGA</b> 入門(mén)必看:<b class='flag-5'>Verilog</b> 與 VHDL 編程基礎(chǔ)解析!

    如何使用FPGA實(shí)現(xiàn)SRIO通信協(xié)議

    泛應(yīng)用。文章重點(diǎn)解釋了回環(huán)測(cè)試的基本概念,這種方法可驗(yàn)證FPGA的SRIO接口功能的正確性,并提供了系統(tǒng)級(jí)測(cè)試驗(yàn)證的相關(guān)知識(shí)。同時(shí),本例程還涵蓋了Verilog語(yǔ)法、FPGA架構(gòu)、S
    的頭像 發(fā)表于 11-12 14:38 ?5503次閱讀
    如何使用<b class='flag-5'>FPGA</b>實(shí)現(xiàn)SRIO通信協(xié)議

    如果將蜂鳥(niǎo)的risc-v移植到其他的fpga想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?

    請(qǐng)問(wèn)如果將蜂鳥(niǎo)的risc-v移植到其他的fpga想實(shí)現(xiàn)一些外設(shè)功能有什么辦法?可以不用操作系統(tǒng)直接添加verilog代碼嗎?
    發(fā)表于 11-10 06:35

    如何利用Verilog HDL在FPGA上實(shí)現(xiàn)SRAM的讀寫(xiě)測(cè)試

    本篇將詳細(xì)介紹如何利用Verilog HDL在FPGA上實(shí)現(xiàn)SRAM的讀寫(xiě)測(cè)試。SRAM是一種非易失性存儲(chǔ)器,具有高速讀取和寫(xiě)入的特點(diǎn)。在FPGA實(shí)現(xiàn)SRAM讀寫(xiě)測(cè)試,包括設(shè)計(jì)SRA
    的頭像 發(fā)表于 10-22 17:21 ?4203次閱讀
    如何利用<b class='flag-5'>Verilog</b> HDL在<b class='flag-5'>FPGA</b>上實(shí)現(xiàn)SRAM的讀寫(xiě)測(cè)試

    基于FPGA開(kāi)發(fā)板TSP的串口通信設(shè)計(jì)

    本文詳細(xì)介紹基于Terasic FPGA開(kāi)發(fā)板TSP(又名C5P和OSK)和其板載CP2102N USB-UART橋接芯片的串口通信系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)采用Verilog HDL編寫(xiě)UART收發(fā)控制器,通過(guò)CP2102N實(shí)現(xiàn)FPGA
    的頭像 發(fā)表于 10-15 11:05 ?4300次閱讀
    基于<b class='flag-5'>FPGA</b>開(kāi)發(fā)板TSP的串口通信設(shè)計(jì)

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

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

    揭秘LuatOS Task:多任務(wù)管理的“智能中樞”

    Task任務(wù)作為L(zhǎng)uatOS的核心組成部分,通過(guò)智能化的任務(wù)管理機(jī)制,實(shí)現(xiàn)任務(wù)的創(chuàng)建、調(diào)度與協(xié)同運(yùn)行,讓復(fù)雜應(yīng)用得以高效并行處理,滿足實(shí)時(shí)場(chǎng)景下的嚴(yán)苛需求。 sys核心庫(kù)是LuatOS運(yùn)行框架庫(kù)
    的頭像 發(fā)表于 08-28 13:48 ?529次閱讀
    揭秘LuatOS <b class='flag-5'>Task</b>:多任務(wù)管理的“智能中樞”

    RTL級(jí)機(jī)器人電機(jī)控制器的FPGA設(shè)計(jì)

    借助Verilog,在FPGA實(shí)現(xiàn)了帶編碼器的兩臺(tái)電機(jī)的電機(jī)控制系統(tǒng)的RTL級(jí)設(shè)計(jì)。
    的頭像 發(fā)表于 07-07 14:01 ?2777次閱讀
    RTL級(jí)機(jī)器人電機(jī)控制器的<b class='flag-5'>FPGA</b>設(shè)計(jì)

    SVA斷言的用法教程

    SVA是System Verilog Assertion的縮寫(xiě),即用SV語(yǔ)言來(lái)描述斷言。斷言是對(duì)設(shè)計(jì)的屬性的描述,用以檢查設(shè)計(jì)是否按照預(yù)期執(zhí)行。
    的頭像 發(fā)表于 05-15 11:39 ?3067次閱讀
    SVA斷言的<b class='flag-5'>用法</b>教程

    kw45卡在Host_Task的原因?

    KW45 以從機(jī)模式運(yùn)行,安卓手機(jī)APP反復(fù)斷開(kāi)連接,偶爾會(huì)卡住kw45,這不是在連接和斷開(kāi)連接時(shí)發(fā)生的,而是在連接成功后的幾秒鐘或幾十秒。 調(diào)試分析發(fā)現(xiàn),kw45 卡在 Host_Task,o任務(wù)無(wú)法運(yùn)行。 以下是任務(wù)運(yùn)行的屏幕截圖。重復(fù)運(yùn)行屏幕截圖是Host_Task
    發(fā)表于 04-10 06:22

    FPGA Verilog HDL語(yǔ)法之編譯預(yù)處理

    Verilog HDL語(yǔ)言和C語(yǔ)言一樣也提供了編譯預(yù)處理的功能?!熬幾g預(yù)處理”是Verilog HDL編譯系統(tǒng)的一個(gè)組成部分。Verilog HDL語(yǔ)言允許在程序中使用幾種特殊的命令(它們不是一般
    的頭像 發(fā)表于 03-27 13:30 ?1264次閱讀
    <b class='flag-5'>FPGA</b> <b class='flag-5'>Verilog</b> HDL語(yǔ)法之編譯預(yù)處理

    一文詳解Verilog HDL

    Verilog HDL(Hardware Description Language)是一種硬件描述語(yǔ)言,用于從算法級(jí)、門(mén)級(jí)到開(kāi)關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建?!,F(xiàn)實(shí)生活多用于專(zhuān)用集成電路
    的頭像 發(fā)表于 03-17 15:17 ?4083次閱讀
    一文詳解<b class='flag-5'>Verilog</b> HDL

    Verilogsigned和$signed()的用法

    嗎?其實(shí)不是的,因?yàn)橛蟹?hào)數(shù)和無(wú)符號(hào)數(shù)據(jù)的加法強(qiáng)結(jié)果和乘法器結(jié)構(gòu)是一樣的,signed的真正作用是決定如何對(duì)操作數(shù)擴(kuò)位的問(wèn)題。 2、verilog的加法和乘法操作前,會(huì)先對(duì)操作數(shù)據(jù)擴(kuò)位成結(jié)果相同的位寬,然后進(jìn)行加法或者乘法處理。比如a/b都為4位數(shù)據(jù),c為5位數(shù)據(jù),c
    的頭像 發(fā)表于 02-17 17:47 ?1366次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>中</b>signed和$signed()的<b class='flag-5'>用法</b>

    淺談Verilog和VHDL的區(qū)別

    Verilog和VHDL是兩種廣泛使用的硬件描述語(yǔ)言(HDL),它們用于描述和模擬數(shù)字電路系統(tǒng)的行為和結(jié)構(gòu)。這兩種語(yǔ)言的主要作用是幫助工程師設(shè)計(jì)、仿真和驗(yàn)證集成電路(IC)和系統(tǒng)級(jí)芯片(SoC)的硬件模塊。
    的頭像 發(fā)表于 02-17 14:20 ?3103次閱讀
    淺談<b class='flag-5'>Verilog</b>和VHDL的區(qū)別

    數(shù)字集成電路 Verilog 熟悉vivado FPGA微電子、電子工程

    1、計(jì)算機(jī)、微電子、電子工程等相關(guān)專(zhuān)業(yè)碩士; 2、熟悉數(shù)字集成電路基本原理、設(shè)計(jì)技巧、設(shè)計(jì)流程及相關(guān)EDA工具; 3、精通Verilog語(yǔ)言,熟悉AMBA協(xié)議; 4、有FPGA開(kāi)發(fā)或SOC設(shè)計(jì)經(jīng)驗(yàn)優(yōu)先; 5、具有較強(qiáng)的獨(dú)立工作能力、良好的團(tuán)隊(duì)合作精神。
    發(fā)表于 02-11 18:03