Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 6692|回復: 3
打印 上一主題 下一主題

[問題求助] 想問有關task的語法?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2007-4-4 11:09:17 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
我想問一下有關task的語法
2 Z" S4 c& j: d' y- U我所知道的是,task 可以有零個或者多個宣告來使用
$ m- v. l# Z# u0 h但若我只是想在程式中 例用task的方式添加到主程式,把子程式放置在另一個檔案中
. [" u5 P) e) G" [9 y這樣的方式不知該如何使用?
+ r/ U$ }7 r: O+ \% f/ A6 |! b
1 P' s: r1 N+ K9 ~7 U+ v我目前是在撰寫用於simulation環境下的verilog code
+ x) }6 B$ Y/ N8 S+ }/ ~1 _1 Z那我添加的部份是很大一段的 force訊號.. 這些訊號很明顯就沒有額外需要宣告in / out 的部份+ C2 i& e7 t# `
那我該怎麼寫較好?
; ^5 g$ o( o( o9 X) p! L
6 R1 ~4 \, h0 S0 C+ z# f引述一下 簡短的程式
( U* Y8 Y) _6 h2 q' X3 i+ d8 {: F       for(i = 0; .. .. ..) begin
( O$ H" J' }- f5 e6 a) c        ... ...
. z0 T- V0 s# r3 ^# W; }       transfer_bulk_OUT(address, endpt, exp_bytecount, 1, Status);
, l9 \$ ]4 m; V) [+ }# S       if (Status == MYNAK)4 m' p2 p3 o- l6 G
          printstatus(Status, MYNAK);
8 c( M2 L: H; m# b9 n       else& e0 B: v0 {3 D; j; B3 Y6 m( a9 i9 J3 B
          check_udc_if_hshk(1'b1, 1'b1);
8 g/ Z/ d! J% ~$ b0 t; ~" F5 p2 T       #5000;
% \1 m$ i) `& z    if(i == 1)  begin
  f6 M0 o3 h6 V3 a/ d: x        #140_000;
' h8 s! I& x4 }0 m# S     z_fix_tasks;                        <= 在此部份想要添加子程式進來  可以這樣添加嗎?  K4 h7 S9 [  o8 z
    end7 z) }- ]+ T1 i, f7 G6 B  {4 R5 l
end
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
 樓主| 發表於 2007-4-20 17:29:40 | 顯示全部樓層

回復 #1 greatsky 的帖子

自己回覆一下好了!  |7 @! m# ]- l" R& @, |

, {4 h$ u( J4 E" M, D我之前不解的地方是在 書本上所指的 task語法範例會包含輸入/輸出
0 }5 P+ k' a( @$ R1 Gex:
/ V/ j9 U0 e: D' Winput    clk,a,b,c;0 R5 R5 t% x. W; @9 [4 W
output  d_out;
; e; S# w: w& L" ?
! V  h% t; M; m( j2 X( qreg      d;$ X: T. n: g* S- p6 b: E
always (posedge clk) begin
; ^% w& [) B& f+ @       temp_task(a,b,c);& P' Z; {# a( h6 }- f
       d_out = ~c;; ]! w0 H( ~" a& Z8 v: ?
end
9 X. k% w. r, x1 c0 {: h
, V. B6 X; t3 W- ]+ `  task temp_task;
0 E. h9 ?# a! [( L, b9 R     input  x,y;* B7 x$ Y0 k( `# w, K; f3 P
     output  z;) O0 U6 l2 F7 k, w
   
0 G- m8 ?! q. R     reg z;
1 c( [' i7 K0 y9 F& i8 S' X/ V1 q         z = x + y;: B; y5 }8 ?& c
  endtask; z' o& @/ r) X$ w
/ y1 t' n2 d/ ]
那我的情況,主要是只做單純的task 沒有in / out4 O( g4 S2 @( |8 I1 |3 a* N7 F* h
所以直接在simulation中加入task's name(ex:temp_task)) r  v+ h, t; N3 t: d3 g
等到程式直接執行到該行就會進入到指定的task中,執行程式..
5 J' h. R3 z# f7 P" ^: }; D& [  k: `- M6 c  \3 Y5 j" C
這個應該是蠻基本的...以前沒用過,在發問時不確定是不是能這麼做,編譯時一直出現Error,害我以為這樣會不能執行..Orz

評分

參與人數 1Chipcoin +3 收起 理由
masonchung + 3 勇於求知!多問多看囉

查看全部評分

您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-5-15 04:10 PM , Processed in 0.107513 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表