Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 有關verilog 錯誤

[複製鏈接]
跳轉到指定樓層
1#
發表於 2010-12-27 13:54:47 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
小弟我是新手  想把呼叫function函數改成呼叫task 但不知道是哪邊有問題會一值出現  希望高手們能幫我一下  6 ^) ?# [9 {3 K+ k2 B3 ^
我猜應該是在always和呼叫連結不起來的問題  卻不知道如何下手4 h& v) [3 s4 K* l7 x1 z
ncvlog: *W,FAAOP1 (shift.v,49|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].
5 a; b5 {: r; v7 ~+ houtput [7:0] mout;
: s+ ?1 u8 p& g0 A" h. A7 n9 Q" ?( V9 {& l                |5 f9 C, g5 v" C: P/ x: K
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)].1 m2 ^; j8 M8 _$ s* Z3 X4 H' p+ e/ Z0 i
multdiv8(right,indata,mout);
3 [% M: W$ B5 p, M       |
8 e4 J4 J; N5 m# Y/ {ncvlog: *W,FAAOP1 (shift.v,51|7): task or function call does not specify all formal output arguments [10.2.2][10.3(IEEE)].5 f9 S% s4 ^- K. ?6 R" a# M1 @
output [7:0] mout;1 w6 f2 |- y9 K  R6 G* T2 e4 ^
/ k: w+ ?* m9 f* m' H

0 ]+ v  [8 ]+ x6 w原本的code:; d. I6 ~9 i) f

+ k! q  G+ y' R  t6 Wmodule shift(indata,qout,mout);
, j$ q, e# X( Q+ ~- F9 {3 E* M5 U; u
output [7:0] qout;
$ I3 ?% ?1 t  y$ S8 Poutput [7:0] mout;
/ |) w0 z* z0 M; [2 s4 J  Y4 d& yinput   [7:0]  indata;$ s7 Z( D( r4 \7 Y& U( R) `9 x

4 @! D- ?, A/ `# W- Y  C, \. Ureg [7:0] qout;
7 O4 d: x- u5 u7 v8 D7 J+ yreg [7:0] mout;& c9 c, R) [& S  j% }* p
parameter left=1;7 z5 P. B9 J! ~" v$ [, {3 H% ?
parameter right=0;
* a, G) i# v$ k& s8 p
2 y9 ~# j+ g' I, q1 o* {: balways@(indata)
  S6 n0 Z5 B2 y5 J- W. s
0 C% u0 @2 ]. W$ A5 |. U0 ~begin
7 W, a* Z4 T* e8 _
% v/ [4 W* y2 d6 Umout=multdiv8 (left,indata);( z7 Z: {$ [/ h2 ?
qout=multdiv8  (right,indata);
6 p; @# D( t  z8 I# u3 i0 V' `9 o9 y1 `5 r/ Z
end) @: V" n3 v3 X3 A5 k
6 B; q9 G1 B1 h! }$ Z) B/ k
function [7:0] multdiv8;) B8 N8 B& F4 b0 K
# k. y/ z& }" p1 o# S* z- _
input fcn_left :
1 g" N% R1 m) Binput[7:0] fcn_in;0 j5 V; E4 R$ G! e0 a  k0 C* w
begin
% Y+ E3 i0 i" X& O  ]$ _( T    multdiv8=(fcn_left==1)?(fcn_in<<3): (fcn_in>>3);
6 B6 }: U. k: [% Bend
+ q; s8 V' c& Z+ A: X; F5 S: rendfunction$ i4 @. q9 Q& `1 z% {( K
$ s) m7 q2 ~+ m$ R" i
endmodule( u5 ~, G( O8 }) {

$ H7 r2 O; K- P& _# V# {5 K! x0 y3 ^以下是我自己寫的
: p1 e6 n2 O# i3 I, L1 W$ |( T. f& g* x$ u
module (qout, mout,indata);& r: _. r2 i2 J- x6 ]
3 P# s. k) Z/ T
output [7:0] qout;
4 x& G# k  s9 Qoutput [7:0] mout;& H) r' Q* M: }
input [7:0] indata;
9 S% |4 a3 k7 Z$ jreg [7:0] qout;- W! [$ c+ P% @, X6 m- C
reg [7:0] mout;9 O% [7 Z' n; h' o6 q
parameter left=1;" }2 z8 T) Q4 J+ c# ^( i+ I
parameter right=0;( [# @+ _& @8 ?

2 ]( y4 Z: H  d2 h) jalways@(indata) begin
$ Y' B+ F! E2 B/ m6 A* `. ~  f6 T3 j
multdiv8 (left,indata,qout);1 i& E7 T6 {0 G& O+ }
multdiv8 (right,indata,mout);
7 g) K. z- P0 L5 ~- n$ _: Q
0 S* ?4 T$ O9 V8 Cend1 M/ M& |* w: v6 X
2 R& @* d/ w# Q. Q/ ^$ ^. ~% o
task multdiv8;. U. V8 @$ W' x+ ~8 c
% ?; i" Y0 m3 O+ c
input fcn_left;
& A; x" [% \& P; _% F4 h1 a; S, Jinput [7:0] fcn_in;1 N3 [8 b. B9 [9 J+ B3 I
output [7:0] qout;% J0 x' t" M9 y  ^- G
output [7:0] mout;! o/ z% I8 b! k# s$ P; Z

+ Y+ D. s5 f& D' y+ S. y; w, C3 N  Z( T3 C$ N7 r8 H- [
if (fcn_left==1)
2 }5 ^; u. }# y3 oqout=fcn_in<<3;6 \& a$ |" s% }2 p2 I# ^
else1 a/ [. C( z% r* X
mout=fcn_in>>3;( Q# E/ Y& t. l2 m
# [' ?& t1 R; y0 B- I
endtask 1 B2 X0 K# ]: e. Y9 b
endmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
3#
 樓主| 發表於 2010-12-29 16:34:47 | 只看該作者
我知道我問題所在了  task的port和宣告的port不一致1 j* B, f) v+ Z" E
5 l/ f! ~7 A) q
要在task後面多打qout and mout 這樣就OK了
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.
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-5 12:07 PM , Processed in 0.128517 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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