Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 有關verilog 錯誤

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-12-27 13:54:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
小弟我是新手  想把呼叫function函數改成呼叫task 但不知道是哪邊有問題會一值出現  希望高手們能幫我一下  
$ j; U( f3 z6 n- A3 e+ a( v8 u我猜應該是在always和呼叫連結不起來的問題  卻不知道如何下手" [9 `9 ]9 t+ a3 R0 v
ncvlog: *W,FAAOP1 (shift.v,49|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].
4 E# U, T+ ^% o9 `5 Woutput [7:0] mout;
' l- \# _$ L1 P0 ~7 k/ z- x! U                |
5 ~) e$ S- o8 Cncvlog: *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)].9 p& r5 M6 C1 y4 P6 T) ~( a
multdiv8(right,indata,mout);
7 V4 ~, k7 ?& ^       |
+ R" C3 c: ?  Y2 [ncvlog: *W,FAAOP1 (shift.v,51|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].
1 a* h8 c( F. u* D! d4 I) p) ^output [7:0] mout;3 g* T. s( ?+ E9 N/ N! F

2 j. ^7 A6 @% p/ B' X6 ^  c6 \; ~* L
原本的code:
- r. o/ W- M& H, g! q5 |; ^
* Q" E; i" I8 }- U% E1 c" wmodule shift(indata,qout,mout);
% t$ v6 q1 B+ [& I, ?2 m) P$ X) A9 K0 i7 `6 i! d
output [7:0] qout;* n- J, O4 _' {9 H
output [7:0] mout;( r1 X) k% g, H* ~1 `
input   [7:0]  indata;
9 W$ m: k* G5 U# V, O8 G/ d6 p- }+ U
reg [7:0] qout;2 }) e8 }% {* D% [6 x/ b: W- a
reg [7:0] mout;/ C# R: N6 B+ F
parameter left=1;
! D( K$ m  u* X7 Tparameter right=0;% V9 y& P% K$ z7 H4 Q

" _7 R+ G& R4 \& ~, [' Balways@(indata)2 Q% T9 a. ^3 F, D

+ d0 s  S  E$ N" C% J; l4 mbegin1 s- P5 g; a# M+ I
$ W- Z% ?* D/ t8 H. U% ?& |
mout=multdiv8 (left,indata);
6 R# b; V; s6 l- V: f! v2 lqout=multdiv8  (right,indata);) h+ |+ X7 L. {, I2 \# B

* E2 t1 B5 A- Eend
5 x/ c) w) ^, L/ S5 Z) b, ?
9 A9 s( ~6 H3 t: }function [7:0] multdiv8;* a5 j- E, R- h: Y0 N4 y

  x& X! M6 L; {: X9 \input fcn_left :. l: G3 c( d. v' K' P! @. s
input[7:0] fcn_in;' M0 z+ a- {4 E" D7 l4 V! @4 B- Y2 \
begin
4 T8 E! O8 N+ V2 j    multdiv8=(fcn_left==1)?(fcn_in<<3): (fcn_in>>3);; v% s, U7 J* K: E( v
end
" L; u+ g2 Q# y( m- F& w' Vendfunction
1 \9 o! P: N' V9 T
( |' I, ?4 V, q2 a, iendmodule
+ O- K+ r6 E0 M7 l
( t% o  F+ G; Z: q) q以下是我自己寫的
! \+ Z6 q1 Q3 ~& o
" X/ n2 m( G7 K  I# gmodule (qout, mout,indata);
+ k7 Q) u0 I# W, N
7 p; p$ [3 X# S, m% |# ?3 n7 D# `6 poutput [7:0] qout;
+ G/ M: m" x. {output [7:0] mout;. Y+ }# B6 w( k/ G+ p3 m- K
input [7:0] indata;
! C$ t4 L% ^% G6 R2 Y0 s0 K" Treg [7:0] qout;  N! L9 `4 _/ G; z+ ~3 S
reg [7:0] mout;" `" k8 y$ m0 x
parameter left=1;2 N& S" p7 T8 ^' Q" Z
parameter right=0;' B  m+ {' V6 }: G7 n$ X. `8 f

- }% K7 g) q7 oalways@(indata) begin7 U' e( L& f( ?( m/ R

: v4 p. b2 h* }6 ~9 U: g$ @, h/ Y7 \  Zmultdiv8 (left,indata,qout);( K! h9 H! p4 ]1 p! h& R4 l$ P
multdiv8 (right,indata,mout);
, Z. H$ H; r6 b& d- s! L8 S* T4 I5 m& \
end7 a5 m0 i8 ^) X6 b

; O8 @# d% Z5 R" f+ d7 g4 @# E! Ctask multdiv8;/ J" D" d, n3 v, m5 c5 F
( f& L$ w7 Z+ s' F
input fcn_left;
2 N5 m# {& l" x8 b3 E. Minput [7:0] fcn_in;( _7 m! _; y+ [8 V0 J
output [7:0] qout;$ q* t" E2 m$ r  E  G4 |) ~" O* a
output [7:0] mout;
# B& h+ l2 {. Z1 T1 v0 `2 i$ p1 L, K' G

' Z0 c& I' L- xif (fcn_left==1)% h2 p* e! O5 ~
qout=fcn_in<<3;. G& }4 t4 j* I; }9 U
else
9 Z+ |% H* Y0 J8 `; W8 @mout=fcn_in>>3;
  T' W/ c6 H6 b2 K, Q& Z; V* H" A
1 I- V9 E% b* [: F7 ]/ Aendtask
8 g$ U4 M4 g: J! b! ~4 Nendmodule
分享到:  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不一致
4 `$ \+ y' v) G' U6 {8 U
; p9 r0 R8 v; \& _) t3 F7 q4 |要在task後面多打qout and mout 這樣就OK了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-2-24 08:39 AM , Processed in 0.151009 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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