Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 有關verilog 錯誤

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-12-27 13:54:47 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
小弟我是新手  想把呼叫function函數改成呼叫task 但不知道是哪邊有問題會一值出現  希望高手們能幫我一下  0 K2 V$ M% F4 E
我猜應該是在always和呼叫連結不起來的問題  卻不知道如何下手
& m6 b/ R+ f) D  }( oncvlog: *W,FAAOP1 (shift.v,49|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].
& \6 M( q# t8 X1 t9 coutput [7:0] mout;
1 v5 e6 w- _9 U) |$ n& H                |
- x! ]  A6 s- Lncvlog: *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" s: p, b& |0 K$ H4 `: o2 c
multdiv8(right,indata,mout);
0 q3 j: y2 J8 o; Z- X2 u, A       |0 U2 p8 K  e, p5 v
ncvlog: *W,FAAOP1 (shift.v,51|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].
' x( @1 h  ]' ~& p5 Y" O% boutput [7:0] mout;) e1 P" I- G- w, u% V/ @8 Z3 o
" ^) \& E; v+ N4 L7 h

( ?/ c; ^# c, ^& C' u) Q原本的code:" U+ A. T7 a3 X# ^' r( `2 _
# F5 ]8 k4 `4 v) R$ O& D
module shift(indata,qout,mout);
5 h8 N% O  H4 W0 s7 `' n$ q' h# Q& B; R$ n2 J& U, h- \& |' \0 H
output [7:0] qout;
: @5 i4 b6 f* E8 Z" s2 houtput [7:0] mout;8 E. [' F( Y, g( ?- k) q$ [7 l
input   [7:0]  indata;: ~! U# m3 L0 t4 \8 F
* b8 c2 d% ^% Z
reg [7:0] qout;6 k4 g$ y% {9 q7 D0 ^
reg [7:0] mout;
* o7 `4 G  _4 `) ]' A2 Q! |: c- t! eparameter left=1;
0 X* g* @; C4 J9 C) l# C9 Eparameter right=0;/ R9 t6 n. X8 i1 y" V# F

& t& k3 {3 y* g$ i& T4 ?always@(indata)
; s* [8 C; z& x6 o
' H; q0 @) o' H% {, Hbegin$ D& |" W6 z8 P" D% V4 X4 I+ g4 N- e
1 I2 o& U& @! @9 L' @% b3 N* ]& X
mout=multdiv8 (left,indata);
% g" |0 ^) Q) m+ R3 bqout=multdiv8  (right,indata);4 }5 Z2 P: O1 Q7 s4 Q

" ~) Z0 {( y1 T9 N0 l, nend
& W2 Y0 A0 Y+ n
; O" k3 i+ W+ }* B& ?) g7 _$ l  g" jfunction [7:0] multdiv8;% I) R; g) X+ l6 C% P
) p) j7 y+ [2 I; v. J$ C8 F
input fcn_left :
  `# \) C, B' w) ]7 Finput[7:0] fcn_in;/ Y3 ]% q5 ^1 Z# z! E7 e
begin4 t0 ]. {: e0 H6 g5 t! o
    multdiv8=(fcn_left==1)?(fcn_in<<3): (fcn_in>>3);# n3 x+ v6 K8 z/ Q6 W4 w* e% q* l
end% S8 i& K+ e; C; N( G2 W
endfunction4 Z6 ~4 x: g0 ^
: o) G, L% m8 n- H/ }
endmodule3 `' `7 H( U/ Y

2 b, \" v* |+ B5 k% r以下是我自己寫的 + q) `" E! u' C6 N( l& X) J5 f" `; X
( O0 S3 u. \9 T& {- |
module (qout, mout,indata);
% G( n; t' K9 m4 [& y# `% F3 v0 N/ g9 S6 e  ~" a9 Q9 I
output [7:0] qout;
7 ^/ B; q' U6 h4 {" C3 V1 M) m) foutput [7:0] mout;
- \& k! _3 |* H% ]! @- ~7 M  _3 a8 K7 |input [7:0] indata;
' k- ]5 s) F( ereg [7:0] qout;9 l9 T, ^2 M. y. P/ N; h
reg [7:0] mout;0 C4 H3 Z: c) h* e$ Z. c
parameter left=1;
5 N; _6 ]4 D% G" z0 Qparameter right=0;
0 r& c7 t$ a4 o) u% Y
3 v+ M7 |8 c/ N5 s  d* Halways@(indata) begin( L4 e# W7 M, k2 [5 u- r

/ s+ S5 b( K; K% Rmultdiv8 (left,indata,qout);9 d$ E2 U- y7 _/ T
multdiv8 (right,indata,mout);# b# i) m+ f2 f% F3 `; H# s* w, r

. [3 [1 g. f, w2 e2 H' Bend; R8 B9 G+ k! o8 G$ U

$ U; d! b* R0 n; c, L- X7 [task multdiv8;
5 ?: Y, ]5 h& Y$ k" y- H. ~+ F: F
input fcn_left;
  n5 K1 S7 h' m- oinput [7:0] fcn_in;
* L% p  \6 C+ _3 f0 U* L" `2 }! ?output [7:0] qout;
! m6 n* t- I; E" X7 ]5 voutput [7:0] mout;
9 W7 g! q+ D4 \' K  E" q9 [! O: j$ S' w2 w
2 Q( I% x# U2 U6 U( W
if (fcn_left==1)
, G7 ~6 i. }; v! y1 k0 k7 R$ fqout=fcn_in<<3;& c/ m6 o4 K, O: j1 ?4 [
else; w! a8 e7 d! y, j
mout=fcn_in>>3;& [: ~7 A5 }% O' t# U9 ^

- {+ q; y1 ?6 o* e% m/ U$ @endtask
9 e9 t4 l7 ~5 }, [& Wendmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
 樓主| 發表於 2010-12-29 16:34:47 | 顯示全部樓層
我知道我問題所在了  task的port和宣告的port不一致% U3 k8 L$ R& Z# T

0 q5 {8 D) g, T2 O$ Z, K4 }4 B* t要在task後面多打qout and mout 這樣就OK了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-14 05:34 PM , Processed in 0.105514 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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