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ǔ)句中不能列出端口名稱;
(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ù)的變量必須是寄存器類型。下面給出一個(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)端口順序和類型必須和任務(wù)定義結(jié)構(gòu)中的順序和類型一致。需要說(shuō)明的是,任務(wù)的輸出端口必須和寄存器類型的數(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)注

    1663

    文章

    22491

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于Vivado的AD9680 FPGA芯片測(cè)試

    FPGA開(kāi)發(fā)領(lǐng)域,與高速ADC芯片如AD9680協(xié)同工作是一項(xiàng)充滿挑戰(zhàn)但又極具樂(lè)趣的任務(wù)。今天咱們就聊聊基于Vivado平臺(tái),針對(duì)AD9680芯片,實(shí)現(xiàn)1G采樣率且4通道(lane4)的FPGA測(cè)試程序,并且是用Verilog
    的頭像 發(fā)表于 03-18 11:26 ?2133次閱讀

    高層次綜合在FPGA設(shè)計(jì)的價(jià)值與局限

    一條是“硬核派”,直接用 Verilog/VHDL 寫(xiě) RTL,控制信號(hào)級(jí)細(xì)節(jié),精打細(xì)算每個(gè)資源。
    的頭像 發(fā)表于 02-27 15:32 ?579次閱讀

    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 ?686次閱讀
    <b class='flag-5'>FPGA</b> 入門(mén)必看:<b class='flag-5'>Verilog</b> 與 VHDL 編程基礎(chǔ)解析!

    【ALINX 教程】FPGA Multiboot 功能實(shí)現(xiàn)——基于 ALINX Artix US+ AXAU25 開(kāi)發(fā)板

    至安全鏡像(Golden Image)。 適用對(duì)象 已掌握 FPGA 基礎(chǔ)開(kāi)發(fā)(會(huì)寫(xiě)Verilog、會(huì)生成bitstream) 熟悉 Vivado 工程流程 對(duì) FPGA 配置機(jī)制尚不深入,希望進(jìn)入
    的頭像 發(fā)表于 01-05 15:41 ?1597次閱讀
    【ALINX 教程】<b class='flag-5'>FPGA</b> Multiboot 功能實(shí)現(xiàn)——基于 ALINX Artix US+ AXAU25 開(kāi)發(fā)板

    高頻電路設(shè)計(jì)的“隱形衛(wèi)士”:吸波材料的選型與應(yīng)用

    高頻電路設(shè)計(jì)的“隱形衛(wèi)士”:吸波材料的選型與應(yīng)用
    的頭像 發(fā)表于 12-03 16:53 ?641次閱讀
    高頻電路設(shè)計(jì)的“隱形衛(wèi)士”:<b class='flag-5'>談</b>吸波材料的選型與應(yīng)用

    如何使用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 ?6035次閱讀
    如何使用<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 ?4539次閱讀
    如何利用<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 ?4778次閱讀
    基于<b class='flag-5'>FPGA</b>開(kāi)發(fā)板TSP的串口通信設(shè)計(jì)

    聊聊FPGA的TDC原理

    今天我們不談高大上的物理學(xué),只聊聊如何在 FPGA ,用一串加法器和 D 觸發(fā)器,“數(shù)清楚時(shí)間”——這就是時(shí)間數(shù)字轉(zhuǎn)換器(TDC)的魅力。
    的頭像 發(fā)表于 09-02 15:15 ?2574次閱讀
    聊聊<b class='flag-5'>FPGA</b><b class='flag-5'>中</b>的TDC原理

    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 ?624次閱讀
    <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 ?768次閱讀
    揭秘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 ?3060次閱讀
    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 ?3716次閱讀
    SVA斷言的<b class='flag-5'>用法</b>教程

    verilog模塊的調(diào)用、任務(wù)和函數(shù)

    在做模塊劃分時(shí),通常會(huì)出現(xiàn)這種情形,某個(gè)大的模塊包含了一個(gè)或多個(gè)功能子模塊,verilog是通過(guò)模塊調(diào)用或稱為模塊實(shí)例化的方式來(lái)實(shí)現(xiàn)這些子模塊與高層模塊的連接的.
    的頭像 發(fā)表于 05-03 10:29 ?1721次閱讀
    <b class='flag-5'>verilog</b>模塊的調(diào)用、任務(wù)和函數(shù)