电子产业一站式赋能平台

PCB联盟网

搜索
查看: 1803|回复: 0
收起左侧

求助各位大佬,下面的代码哪里出现了错误,在vivado上仿真不通过

[复制链接]

591

主题

959

帖子

5157

积分

四级会员

Rank: 4

积分
5157
发表于 2023-3-18 10:10:30 | 显示全部楼层 |阅读模式
ALU:
. r( A0 B' ^1 i" h# ^: w& z# e* {+ y4 Emodule ALU(CTRL,A,B,Q,Code);; Z" `' |) Y; M" A9 p
input CTRL;
& ~1 g* R: I( d; e) W0 }input A;
& V+ B7 w: q  v0 t1 v# G! j5 E" iinput B;
; X# k& b& u7 u2 w; Uoutput Q;
  c4 A. {8 v1 b' G) Q; ~input[2:0] Code;
3 \- F! H' A  P5 X5 M/ lif (CTLR === 0)3 F8 f2 X7 p* r3 }( }
   Q = 0;
: A" q* t6 R% f# belse
. \9 G+ w* C- r% z7 Z   case(Code)9 }; Z) k$ f0 n) u& F2 {6 V7 j/ Q
     3'b000: Q = A+1;
5 t. u9 M) g( \     3'b001: Q = A+B+1;9 T" ^6 }; c$ J
     3'b010: Q = A;
) r4 M7 ?8 e: u- z5 H" _/ ^     3'b011: Q = A+B;- {: q  h. \) t5 r4 N3 @
     3'b100: Q = A-1;3 ~4 K, I. m; w# c! X
     3'b101: Q = A-B;3 Q: F, k# i! ~  u0 o
     3'b110: Q = B;' i9 F8 J  M5 j- F  f
     default: Q = A-B-1;2 P3 [- [% a, C+ ^: l7 U
   endcase
* _0 _6 z1 f; g+ w/ H1 Z2 yendmodule) T0 T0 V, k( m" D8 V; N

& J+ k, q7 @& F% \6 c/ L+ x% F, w$ }+ P
testbench:
0 D. U/ u0 l: W  |3 _0 |; H5 X/ ~module ALU_tb();' u: K+ k, a( l2 y  y1 J
reg A,B,CTRL;' e/ t2 z' [" V! @7 p. p5 Y  l1 p
wire Q;$ X# j* ?- w$ Y9 A1 ], {
reg[2:0] Code;
! z0 o/ F* E4 Finteger case_num;$ _5 f$ \% i  }. g' N5 d7 d5 P( h
initial begin
+ h& }/ [$ h) g; @) P3 j3 |  CTRL=0;
, G  G0 E4 K9 ^6 V! b* ^/ _  case_num = 1;3 `7 F$ Z& t7 X8 I
  A=1 'b0;
3 L* F' v# N# I6 E( N3 d, \% k& e  B=1 'b1;
# t* ?$ v: P: F8 u, p  #100;: C$ W. }* \4 z6 A. {6 l. d# K
  if(Q==0)
: h$ N1 w1 ~$ b% h* d  $display("[Simulation Info] Case %2d PASS.",case_num);
) G4 i6 d* c' I+ H! p4 y/ }! }  else
: t7 j, V) T/ J' y$ B& V, Z   $display("[Simulation Info] Case %2d ERROR.",case_num);/ d: z* w" I, O- G3 Y4 f9 y
   #100;
3 }- v9 j) a6 s& @% ]) l& n   CTRL=1;, T8 \) C- j' |0 Q
   case_num = 2;# x4 |" f% t* G2 M$ q8 n
   A= 1 'b1;
  u# a+ S1 _/ Y( {, W4 @   B= 1 'b0;0 Q2 p2 f1 O, @' ~, }* v
   Code = 3 'b000;9 Y; L& y4 V) H9 s+ B% e
   #20;
+ r" z  z4 y( J. }$ d) |2 r    if(Q==0)
: C# y0 j/ X9 Y, p% K! ^  $display("[Simulation Info] Case %2d PASS.",case_num);
& c4 a+ c/ X% o. s% l  r+ p+ J! h8 Z  else
1 o, v  M9 \4 i0 I' I   $display("[Simulation Info] Case %2d ERROR.",case_num);
, j0 g) k, Q3 K   #100;
0 Y( |/ m1 r" \/ [0 E7 P0 W% A   case_num = 3;
; G  v9 F  g( K( e3 L' j% W( j$ V9 w   Code = 3 'b001;
6 Y7 M9 y0 S' E2 j   #20;
7 e: a0 A+ Z$ n) k* A9 r+ n8 g    if(Q==0)
7 _+ l+ o. U7 t! o% o+ J# X3 @, X; u, r  $display("[Simulation Info] Case %2d PASS.",case_num);* r, ]$ W9 O) t" C
  else0 Z2 p2 B/ k, [3 g( A
   $display("[Simulation Info] Case %2d ERROR.",case_num);0 s% f, j5 Q' J
   #100;4 u+ H7 W1 C' B1 U& R! b3 b  u
    case_num = 4;
  X# ^9 m, C3 g" c2 v6 p2 `   Code = 3 'b010;
# Z+ r/ V$ R# U$ F' t" i) ]   #20;
4 J( Y! y; ?9 i    if(Q==1)
+ S( [+ k* t) j- P( a  $display("[Simulation Info] Case %2d PASS.",case_num);- o( p' A) p& l2 R% f7 N% \
  else
& h5 s1 N8 F; L" ^: i) d( F+ g   $display("[Simulation Info] Case %2d ERROR.",case_num);! n- p* |  u" x% ^* U% u
   #100;% Z+ w! X2 E5 g# R" I
    case_num = 5;7 C# ?5 Q$ b4 H2 K. z4 T0 D! t
   Code = 3 'b011;' V/ Y' B; ~% E/ [' t
   #20;) P9 i# w: R* [
    if(Q==1)$ S0 ^1 \0 j- S! z4 _
  $display("[Simulation Info] Case %2d PASS.",case_num);
& G% p" t/ H! y" f  else; e/ d. E8 @4 i, G
   $display("[Simulation Info] Case %2d ERROR.",case_num);4 C" q# t( F; F0 I9 @# R. s0 l
   #100;
) {5 C/ h  q& _    case_num = 6;
, r( D/ \& f2 x) m   Code = 3 'b100;
4 J* w. j% h+ D2 t   #20;
7 X( R& G% f$ @7 n    if(Q==0)) a3 Z2 {  p& [" ?: ~7 A3 @" O- {
  $display("[Simulation Info] Case %2d PASS.",case_num);
4 n4 g& J) `0 {: D' q7 X+ R  else
- t3 ]# o. g" R" ^; H, ~   $display("[Simulation Info] Case %2d ERROR.",case_num);5 k/ p6 ~4 {* C! o+ p) A3 ~# O
   #100;) B0 }9 J$ e' E* T
    case_num = 7;
8 ?6 {9 H) Q1 Q9 V   Code = 3 'b101;2 T" v5 a$ g% M/ P
   #20;
, Q. [& Q( W3 F    if(Q==1)
. C3 U* q, |: {9 U! s; U' r  $display("[Simulation Info] Case %2d PASS.",case_num);2 z" C# ]4 m, N5 v8 P+ j  [
  else4 R. Z5 |3 f8 A: n4 O
   $display("[Simulation Info] Case %2d ERROR.",case_num);
4 R' u, }0 g  q( N2 ~) B3 R   #100;* i2 p0 O. ?+ w
    case_num = 8;( m  A% ^% {4 }- A9 T
   Code = 3 'b110;8 z2 @0 O* o: t. q
   #20;
% i9 E% H1 s* T    if(Q==0)
: F- F- E+ E6 J+ g' g$ k# \  $display("[Simulation Info] Case %2d PASS.",case_num);" X3 }0 O4 `1 H% i) \
  else
2 B" \3 K3 Q" y! |. [   $display("[Simulation Info] Case %2d ERROR.",case_num);
' B) V" D, ]+ p$ W$ n   #100;
- O8 ^. `& z9 a  K" L" P& w2 M    case_num = 9;; w* H( `4 D/ S
   Code = 3 'b111;) d( Y9 |3 Y2 ]$ B# {
   #20;3 A8 a9 R* {1 \% O
    if(Q==0)
+ T* ^+ ~8 m+ Q$ d$ A1 K$ O" `& Y  $display("[Simulation Info] Case %2d PASS.",case_num);
2 _: k3 Q3 a0 D$ r/ u" t  else4 V; G7 G6 Z) ^5 |
   $display("[Simulation Info] Case %2d ERROR.",case_num);
/ t% Y& _1 L/ G! ?1 R2 e$ W   #100;7 Q% @& J) ^) J2 v4 r5 R
   $finish;+ [: p+ c4 H9 H2 y
end+ R% [7 o- S0 D. g' K% L9 x
endmodule
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表