Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 有關verilog 錯誤

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-12-27 13:54:47 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
小弟我是新手  想把呼叫function函數改成呼叫task 但不知道是哪邊有問題會一值出現  希望高手們能幫我一下  & t1 z( [( V! P$ P
我猜應該是在always和呼叫連結不起來的問題  卻不知道如何下手/ Y6 ]) b$ `( w# l) T# r  `
ncvlog: *W,FAAOP1 (shift.v,49|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].9 I  y+ T" a5 S& h
output [7:0] mout;5 Q/ a0 ]& U7 @5 w- Q6 S5 L
                |0 T/ y* L. C1 Z2 F# U
ncvlog: *W,FAAOP2 (shift.v,60|16): Formal output argument 'mout' is absent in the task or function call identified by the previous error message [10.2.2][10.3(IEEE)].
* u" t: @0 G- A, j- A' f2 q; Xmultdiv8(right,indata,mout);. t# t, t9 j' M; b; ?) y
       |
3 n4 N2 l" N1 y6 `( z2 a2 ]6 G' Lncvlog: *W,FAAOP1 (shift.v,51|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].
# o( m+ ~; k! Goutput [7:0] mout;
3 o; L8 E- C: N
$ s& a3 l9 T6 J  [* D% A3 p% @
) s2 t, _. c/ J7 [" n9 T原本的code:
; U/ ?% }) I0 O5 y0 h
3 x8 }9 X: t. x) h; J2 B4 qmodule shift(indata,qout,mout);& V5 ?9 r( k1 s, u" i& q/ P  J
) O  X: [) V4 j' }% F
output [7:0] qout;
4 ^& p* {3 Z3 @output [7:0] mout;7 A% r; L! X/ e7 U: R, x' a2 y
input   [7:0]  indata;* c2 Q' |# n/ V! @9 x  D3 U" v1 l

4 M  R- {9 k4 V* k  L3 kreg [7:0] qout;" U) s& y6 t/ Z; Z5 {3 g
reg [7:0] mout;
6 O5 M# k% @: Y6 mparameter left=1;; n$ k9 k/ k2 Z4 j3 L, n% j
parameter right=0;- {0 O) }5 o, F: S* s
) p. H! B, p+ V
always@(indata)2 p7 _% T" ], m$ ~
' H: S5 W& R6 m4 n* @$ H# ^: c
begin
, n4 G* m. s" Z# B' z/ m' G% u6 [1 w/ c8 h' J+ x3 s
mout=multdiv8 (left,indata);
; @7 t+ R4 ~3 K$ V* hqout=multdiv8  (right,indata);' x4 K9 O& o  @& c& u) W

6 O. ?) Z0 V( n, b2 f, Nend
: Y; t' V- ^7 P8 H/ c" y' R7 q
6 T6 p/ a* B# Y* y* _' @1 I# |function [7:0] multdiv8;
6 k% r/ @$ \" k- p9 b; O6 ~' c" S, D* w3 G* D  }8 G
input fcn_left :
4 D5 M' p: F2 i5 f+ f$ Ginput[7:0] fcn_in;
) s$ j: ]' N  |begin
2 v/ l, l( m: x, q: |, W    multdiv8=(fcn_left==1)?(fcn_in<<3): (fcn_in>>3);
5 I* f+ a$ R0 |8 c; I$ g% xend
5 @$ J5 u+ I1 p6 Tendfunction
: x$ [' \+ L$ ?; w+ b6 h* `: b: r% D$ Y! Z* g% v
endmodule
# A$ i" Z2 }/ K
  m0 s- I1 e! G9 w以下是我自己寫的
8 F" w7 g7 H) b. _( S( L. l! l" w( O. D
module (qout, mout,indata);
3 k( B: R' {& i7 S+ N8 |: D( Y2 K0 |* G
output [7:0] qout;& p& _0 p/ A: }# h4 k' p9 k
output [7:0] mout;
9 C  p9 Q  j7 k1 t' ]input [7:0] indata;+ {3 h+ Z* |: w
reg [7:0] qout;
* B" c/ O" B3 \' d; g/ `( hreg [7:0] mout;- D; Y4 f9 y. |1 B6 ?
parameter left=1;
% `$ a4 M" Q! A# n6 Xparameter right=0;
6 s9 M5 ^% F1 e6 @
# P4 q; h, U: Xalways@(indata) begin/ m; _. Y1 _6 ~0 B, f1 H6 ?& P
, b$ S9 M) Y# G) y! L" i
multdiv8 (left,indata,qout);! H8 u" p1 ?( X( i8 |- p
multdiv8 (right,indata,mout);+ j' O# d' n. |  T

- }2 r' W# q. x3 ?* i5 Vend) E: w5 b9 i1 v" X

1 s0 h* x0 O, a5 a0 E- g1 y8 Ktask multdiv8;
! @6 B" K! J' X+ c$ {8 `& g: E1 V* f+ W  n: J2 m, Z
input fcn_left;
0 D8 k" c  ^( ^& F: p4 z7 G2 i1 t( m2 xinput [7:0] fcn_in;
( }2 O1 C% `# d/ |9 I9 \output [7:0] qout;
+ M, T/ n3 i& H7 G0 y" Woutput [7:0] mout;
% T6 U' V' {% h& {& T) Q. W9 w) |4 L
  \1 P. i3 p1 t' a1 R5 b
if (fcn_left==1)
5 ]9 C* Y0 ~  u, r2 qqout=fcn_in<<3;) i8 r+ }' T; b/ v
else+ j8 f6 q3 k* Q2 h( D# ]
mout=fcn_in>>3;
* X3 H  w+ T* M2 F2 p
8 }$ n' y5 c: `; q7 L! cendtask
- X4 B% L7 Y0 s9 ~0 Cendmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
 樓主| 發表於 2010-12-29 16:34:47 | 顯示全部樓層
我知道我問題所在了  task的port和宣告的port不一致9 J. D. V+ V) O( s  d- {$ s  E
' c. b+ D+ D9 R8 r  r( |
要在task後面多打qout and mout 這樣就OK了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-30 05:13 PM , Processed in 0.107013 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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