Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 有關verilog 錯誤

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-12-27 13:54:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
小弟我是新手  想把呼叫function函數改成呼叫task 但不知道是哪邊有問題會一值出現  希望高手們能幫我一下  
$ S1 p! q+ C7 K  D: V' u# H我猜應該是在always和呼叫連結不起來的問題  卻不知道如何下手: w. Y% \& ]* K, R8 l* q
ncvlog: *W,FAAOP1 (shift.v,49|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].
7 @9 [. r+ t& E1 W' N6 j7 J2 k1 @output [7:0] mout;
4 Z) @# Q  {5 G                |
: n/ }" T7 V6 G  Dncvlog: *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)].
: O% w4 Y* r1 \. s) G9 e5 fmultdiv8(right,indata,mout);8 H7 z; `+ {( M3 f' H' {6 W
       |
& r9 q& F' S1 b7 H4 u8 x, [* rncvlog: *W,FAAOP1 (shift.v,51|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].
) G: ~% S0 S8 P3 ^, c4 u+ v  uoutput [7:0] mout;8 n4 b  t+ O7 X& l% k, `
1 F4 f, a% G8 B# S

# R) x$ i$ p- R2 m1 b原本的code:5 |8 o% H; \$ _
5 R1 t1 F7 L) v& i. d1 b
module shift(indata,qout,mout);; K! x% l5 W- H3 K
) f7 A  B) C6 H) i
output [7:0] qout;7 _* X0 l; q/ Q8 K
output [7:0] mout;/ D- y' Z" H$ ~& D8 d; e# M* g
input   [7:0]  indata;( `4 |. D1 r% T/ B% U* n  m

. e0 t! o/ x1 h  `reg [7:0] qout;7 X8 x) m* H: S# f* X' r
reg [7:0] mout;7 q1 Z3 T- B% t8 v5 I# b0 e5 \: R
parameter left=1;
. K! ~7 Y* H, o$ r* O" Zparameter right=0;6 m  H; h( J( C  Y5 O2 A0 l8 q
3 |6 `9 R, ~( [# _" B) n
always@(indata)
4 o- I8 ~# m# V- Z# a+ B7 T7 G
8 p+ U5 W0 r0 }3 `# h4 ebegin2 z3 E. w! ?; a* C
5 ]5 l4 J7 M; Z5 x
mout=multdiv8 (left,indata);% K7 ~! D& m" I4 J6 ?$ m8 G
qout=multdiv8  (right,indata);
8 B; U# ^6 r. Z9 X9 z+ [9 z# ~( {- S6 m" o
end' ?' i" T, l9 O% w- B

) G0 R4 E. p- }: o+ D. m8 }7 \function [7:0] multdiv8;/ A6 D. j0 n* p6 }% h6 d' M
! {) K2 b# [: h9 _
input fcn_left :* L$ G; `0 p9 J. y# s
input[7:0] fcn_in;8 j/ o1 A) M7 [' g. A
begin
9 N' n* ]2 D2 X3 S, A; ^- @    multdiv8=(fcn_left==1)?(fcn_in<<3): (fcn_in>>3);1 J3 E6 J  r% s2 Z% U# P3 ]8 c
end  d- m4 k1 W8 ^9 j+ s/ e
endfunction% f7 h/ L" b) o7 p( `) `% O( _3 \: U

9 g% G! r+ y- [  N1 `+ d! K) @: O3 {endmodule* B( h4 }) A. Z; A

5 x& v# B* O0 X( \以下是我自己寫的 # o. \2 c& P' p$ O
" `5 r+ S) P  w& m% K
module (qout, mout,indata);3 q# r/ d) v8 r* ~7 z
$ _8 f+ D" J3 o5 P( \7 a4 j
output [7:0] qout;
" I5 b9 I$ S# f# D2 routput [7:0] mout;+ R  Z& h1 _' A$ S3 q
input [7:0] indata;
0 _$ b& v, G1 B* R2 j/ q% Y2 |$ treg [7:0] qout;: q7 e4 s( A% k# V, s
reg [7:0] mout;6 K' U) Z/ l4 s( B' v
parameter left=1;
- j' U; [  i5 J! c; sparameter right=0;1 I0 g& ?! W, a
7 ^  L, t( t, z3 R9 ^. M
always@(indata) begin
7 W- ?/ _& x. J" i5 I5 p
" q' E2 g' q+ C) |8 u( [( amultdiv8 (left,indata,qout);
. F' Z  `: i# t9 A# ^  ~multdiv8 (right,indata,mout);, u/ p* _4 V/ O. h

! U8 E, R) t- w9 dend
+ d6 d: A% R( N& G3 C6 Y  M+ k
1 t9 S: P" I6 T/ }- u) ?7 Ptask multdiv8;8 j7 T* A: E' I! n& n

4 e: {  \+ u" v% s0 ninput fcn_left;5 H) O6 ]$ h2 R% V! s
input [7:0] fcn_in;
1 J2 w6 G6 M: a& N& [/ Youtput [7:0] qout;2 |7 ^" }) _2 x+ C, Q. H( O
output [7:0] mout;
* w3 a, Q2 W) \. k" _0 f9 A
) a) B9 h6 g$ k" d3 I* |6 }' y- K/ X; N0 G6 E
if (fcn_left==1)
0 m  k* K2 g* `% O" N3 w: X1 h- Pqout=fcn_in<<3;
) e7 g0 w, R" @6 R2 Ielse7 G$ m, D/ F" }0 i- b
mout=fcn_in>>3;
# Q0 W4 v  a' F% T  H$ R& [2 Q/ M$ k9 f  R- S/ w
endtask - b, G" e- Z# I1 e; J9 _
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2010-12-29 13:19:41 | 只看該作者
you did not specify qout when you called the task, which is the error message tries to tell you.
3#
 樓主| 發表於 2010-12-29 16:34:47 | 只看該作者
我知道我問題所在了  task的port和宣告的port不一致
$ J$ o9 }( z+ Q+ o- H  z/ ^, [# H  A# U8 D4 t& a+ B: J* M; U+ ?
要在task後面多打qout and mout 這樣就OK了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-16 05:35 PM , Processed in 0.116514 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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