久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1900|回復: 0
打印 上一主題 下一主題
收起左側

verilog任務調用

[復制鏈接]
跳轉到指定樓層
樓主
ID:704585 發表于 2020-10-4 16:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
雖然任務中不能出現 initial 語句和 always 語句語句, 但任務調用語句可以在 initial 語句
和 always 語句中使用,其語法形式如下:
task_id[(端口1,  端口 2, ........,  端口 N)];
其中 task_id是要調用的任務名,端口 1、端口 2,…是參數列表。參數列表給出傳入任
務的數據(進入任務的輸入端)和接收返回結果的變量(從任務的輸出端接收返回結果) 。
任務調用語句中,參數列表的順序必須與任務定義中的端口聲明順序相同。任務調用語句是
過程性語句,所以任務調用中接收返回數據的變量必須是寄存器類型。下面給出一個任務調
用實例。

例:通過 Verilog HDL 的任務調用實現一個 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)任務調用語句只能出現在過程塊內;
(2)任務調用語句和一條普通的行為描述語句的處理方法一致;
(3)當被調用輸入、輸出或雙向端口時,任務調用語句必須包含端口名列表,且信號
端口順序和類型必須和任務定義結構中的順序和類型一致。需要說明的是,任務的輸出端口
必須和寄存器類型的數據變量對應。
(4)可綜合任務只能實現組合邏輯,也就是說調用可綜合任務的時間為“0” 。而在面
向仿真的任務中可以帶有時序控制,如時延,因此面向仿真的任務的調用時間不為“0” 。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 激情一区二区三区 | 亚洲一区二区在线免费观看 | 三级黄色片在线观看 | 日韩中文字幕在线观看视频 | 久久精品欧美一区二区三区不卡 | 久久国 | 国产电影一区二区在线观看 | 国产免费福利小视频 | 一道本在线 | 欧美日韩一区在线 | 国产高清一区二区 | 四虎影院一区二区 | 国产精品永久免费视频 | 337p日本欧洲亚洲大胆精蜜臀 | 日韩国产在线 | 免费一级黄色录像 | 欧美日韩一区二区三区视频 | 国产精品视频网 | 亚洲精品黄色 | 欧美一区在线视频 | 亚洲综合热 | 黄色毛片网站在线观看 | 欧美一级二级三级视频 | 欧美色影院 | 成人在线国产 | 日韩字幕一区 | 亚洲免费一区二区 | 欧美精品一区在线发布 | 国产精品国产成人国产三级 | 午夜视频导航 | 精品久久久久久红码专区 | 欧美综合一区二区 | 欧美涩| 精品免费国产一区二区三区四区 | 天天摸天天看 | 日韩久久久一区二区 | 天堂色| 午夜小视频在线观看 | 色狠狠一区| 99久久精品免费看国产四区 | 97精品一区二区 |