一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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” 。

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

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

    關注

    1645

    文章

    22050

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

    FPGA Verilog HDL語法之編譯預處理

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

    一文詳解Verilog HDL

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

    Verilogsigned和$signed()的用法

    嗎?其實不是的,因為有符號數(shù)和無符號數(shù)據(jù)的加法強結果和乘法器結構是一樣的,signed的真正作用是決定如何對操作數(shù)擴位的問題。 2、verilog的加法和乘法操作前,會先對操作數(shù)據(jù)擴位成結果相同的位寬,然后進行加法或者乘法處理。比如a/b都為4位數(shù)據(jù),c為5位數(shù)據(jù),c
    的頭像 發(fā)表于 02-17 17:47 ?657次閱讀
    <b class='flag-5'>Verilog</b><b class='flag-5'>中</b>signed和$signed()的<b class='flag-5'>用法</b>

    Verilog 電路仿真常見問題 Verilog 在芯片設計的應用

    。然而,在實際應用,設計師可能會遇到各種問題,這些問題可能會影響仿真的準確性和設計的可靠性。 Verilog電路仿真常見問題 仿真環(huán)境的搭建問題 仿真環(huán)境的搭建是進行Verilog仿真的第一步。設計師需要選擇合適的仿真工具,并
    的頭像 發(fā)表于 12-17 09:53 ?1196次閱讀

    Verilog 與 ASIC 設計的關系 Verilog 代碼優(yōu)化技巧

    Verilog與ASIC設計的關系 Verilog作為一種硬件描述語言(HDL),在ASIC設計扮演著至關重要的角色。ASIC(Application Specific Integrated
    的頭像 發(fā)表于 12-17 09:52 ?1042次閱讀

    Verilog 測試平臺設計方法 Verilog FPGA開發(fā)指南

    Verilog測試平臺設計方法是Verilog FPGA開發(fā)的重要環(huán)節(jié),它用于驗證Verilog設計的正確性和性能。以下是一個詳細的
    的頭像 發(fā)表于 12-17 09:50 ?1143次閱讀

    Verilog與VHDL的比較 Verilog HDL編程技巧

    Verilog 與 VHDL 比較 1. 語法和風格 VerilogVerilog 的語法更接近于 C 語言,對于有 C 語言背景的工程師來說,學習曲線較平緩。它支持結構化編程,代碼更直觀,易于
    的頭像 發(fā)表于 12-17 09:44 ?1703次閱讀

    Verilog vhdl fpga

    相關專業(yè),具有良好的專業(yè)基礎知識。 感興趣可滴滴 JYHXDX534 2.工作年限不限,有工作經(jīng)驗或優(yōu)秀應屆畢業(yè)生亦可。 3.對FPGA芯片架構和資源有深入的理解,精通Verilog HDL、VHDL
    發(fā)表于 11-12 16:40

    Verilog語法運算符的用法

    verilog語法中使用以下兩個運算符可以簡化我們的位選擇代碼。
    的頭像 發(fā)表于 10-25 15:17 ?2563次閱讀
    <b class='flag-5'>Verilog</b>語法<b class='flag-5'>中</b>運算符的<b class='flag-5'>用法</b>

    FPGA編程語言的入門教程

    FPGA(現(xiàn)場可編程邏輯門陣列)的編程涉及特定的硬件描述語言(HDL),其中Verilog和VHDL是最常用的兩種。以下是一個FPGA編程語言(以Verilog為例)的入門教程: 一、
    的頭像 發(fā)表于 10-25 09:21 ?1231次閱讀

    FPGA Verilog HDL代碼如何debug?

    ,共同進步。 歡迎加入FPGA技術微信交流群14群! 交流問題(一) Q:Verilog代碼如何debug?最近學習fpga,寫了不少verilog,開始思考如何debug的問題!c語
    發(fā)表于 09-24 19:16

    FPGA Verilog HDL有什么奇技巧?

    今天給大俠帶來在FPAG技術交流群里平時討論的問題答疑合集(九),以后還會多推出本系列,話不多說,上貨。 交流問題(一) Q:Verilog 有什么奇技淫巧? A:在 Verilog ,以下這些
    發(fā)表于 09-12 19:10

    【招聘】verilog vhdl FPGA

    1.熟悉FPGA架構及應用,熟悉圖像算法的FPGA實現(xiàn)。 2.熟悉verilog vhdl,熟悉Xilinx或Intel等開發(fā)工具。 3.有AI算法 fpga實現(xiàn)經(jīng)驗優(yōu)先。 4.本科及
    發(fā)表于 09-02 15:50

    談一FPGA設計的功率計算

    優(yōu)化編碼 優(yōu)化熱模型 依據(jù)設計中所用器件資源的全部數(shù)據(jù)、所有對建立熱模型至關重要的環(huán)境變量、以及在設計過程自由地使用和修改各點參數(shù),就可以可靠地實現(xiàn)FPGA設計,使其滿足系統(tǒng)性能指標。
    發(fā)表于 07-31 22:37