哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

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

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

3天內不再提示

簡談FPGA verilog中的task用法

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

掃碼添加小助手

加入工程師交流群

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

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

其中,關鍵詞 task 和 endtask 將它們之間的內容標志成一個任務定義,task 標志著一個任務定義結構的開始;task_id 是任務名;可選項 declaration 是端口聲明語句和變量聲明語句,任務接收輸入值和返回輸出值就是通過此處聲明的端口進行的;procedural_statement是一段用來完成這個任務操作的過程語句,如果過程語句多于一條,應將其放在語句塊內;endtask 為任務定義結構體結束標志。下面給出一個任務定義的實例。

task task_demo; //任務定義結構開頭,命名為 task_demo
input [7:0] x,y; //輸入端口說明
output [7:0] tmp; //輸出端口說明

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

endtask

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

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

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

例:通過 Verilog HDL 的任務調用實現(xiàn)一個 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

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

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

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

    關注

    1664

    文章

    22501

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    基于Vivado的AD9680 FPGA芯片測試

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

    高層次綜合在FPGA設計的價值與局限

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

    FPGA 入門必看:Verilog 與 VHDL 編程基礎解析!

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

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

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

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

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

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

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

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

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

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

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

    基于FPGA開發(fā)板TSP的串口通信設計

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

    聊聊FPGA的TDC原理

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

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

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

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

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

    RTL級機器人電機控制器的FPGA設計

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

    SVA斷言的用法教程

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

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

    在做模塊劃分時,通常會出現(xiàn)這種情形,某個大的模塊包含了一個或多個功能子模塊,verilog是通過模塊調用或稱為模塊實例化的方式來實現(xiàn)這些子模塊與高層模塊的連接的.
    的頭像 發(fā)表于 05-03 10:29 ?1729次閱讀
    <b class='flag-5'>verilog</b>模塊的調用、任務和函數(shù)
    清河县| 乌审旗| 广安市| 中卫市| 花莲市| 广南县| 靖西县| 安丘市| 泰来县| 乌拉特后旗| 乐山市| 应城市| 奉化市| 包头市| 叶城县| 垫江县| 三门县| 新晃| 呈贡县| 永顺县| 芜湖县| 军事| 美姑县| 开化县| 乃东县| 进贤县| 彭水| 马山县| 锡林郭勒盟| 中西区| 贡嘎县| 张家港市| 隆化县| 平江县| 霍州市| 汉寿县| 垣曲县| 神农架林区| 江山市| 余庆县| 二连浩特市|