电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

591

主题

959

帖子

5157

积分

四级会员

Rank: 4

积分
5157
发表于 2023-3-18 10:10:30 | 显示全部楼层 |阅读模式
ALU:; v' J7 D- f1 P  R
module ALU(CTRL,A,B,Q,Code);- x; f$ n3 H  d/ G6 T5 f- f
input CTRL;
+ M% W$ v) C! Q7 l0 F. Pinput A;. w* ]' N- O: h8 S! h
input B;* U" |  `+ @+ x* A
output Q;
0 ~) a: d4 y- b" H, binput[2:0] Code;' M& K( W) ?# Y" M; c
if (CTLR === 0)6 h* p, H" ]* h6 ~  `5 L
   Q = 0;3 T# ^* ~# Y( j& [5 `2 S
else0 R) N6 {7 n! X
   case(Code)3 q. A, t+ Y+ G9 }3 L: \& n
     3'b000: Q = A+1;7 W: b% `: v' T( R0 n' B
     3'b001: Q = A+B+1;! T: x" a7 V+ \6 \: m' M2 }! [
     3'b010: Q = A;* g8 P0 w7 f/ u
     3'b011: Q = A+B;
# X: v, I. ?  y) C3 A8 X     3'b100: Q = A-1;
9 G, _* |4 ~, n  {+ Y1 H& a% _     3'b101: Q = A-B;  j; Z# p# V! Y: E0 K
     3'b110: Q = B;
- k4 |. A: R5 q( j& }. P     default: Q = A-B-1;
9 D$ ^2 k# {( ^   endcase5 q; p# C! V. X9 F! f2 T. @
endmodule
: @6 |9 R. S8 Q
7 y* F% E# ~2 M* @2 ]9 p
7 |8 H6 p, ?, s4 |testbench:
+ A  t5 C0 J( O. C- v# ?# Xmodule ALU_tb();
" s( Q3 W+ [( Ireg A,B,CTRL;% i5 }5 d$ D% d9 R' b
wire Q;
5 T  v. q- ]1 B" x( F8 g- H- Areg[2:0] Code;, i. g# V' _* q$ k+ _1 P
integer case_num;5 S: d0 z# |; P- c5 ~
initial begin
# r0 R1 Y' C1 W& h  CTRL=0;
- l0 U  X0 d5 j& o- d  case_num = 1;& \/ e) U$ D2 F. w% L. s
  A=1 'b0;( g% c" R0 w8 I! ]
  B=1 'b1;% c% |6 \( O# t/ F6 U) M: t* u
  #100;
( c+ p: U( Q  I* x% L  if(Q==0)
2 M' W8 @* M9 a, U2 u$ ]4 |  $display("[Simulation Info] Case %2d PASS.",case_num);
5 B6 [) s. |; N* g4 j6 _3 ?  else5 m& _( E6 }+ ]* z1 F
   $display("[Simulation Info] Case %2d ERROR.",case_num);- P+ t5 c# D: g
   #100;( V+ A1 ^# E# ?+ y9 _
   CTRL=1;% ~3 l3 ~# V) |+ Q$ Q7 J9 |
   case_num = 2;
6 V1 V% R4 Z; j- }9 {1 J% y   A= 1 'b1;6 R3 B: `" I' i+ q) k- j
   B= 1 'b0;9 Q) M6 j4 d* a/ V/ {
   Code = 3 'b000;2 R0 {" A- J* a! N5 \
   #20;
5 J  x7 s- J) Z    if(Q==0)
: g  N+ B6 s, A. P0 L  $display("[Simulation Info] Case %2d PASS.",case_num);
9 F. `% {8 C% R* O  else" x0 J6 l, n( s# G/ m) s' x, {" `2 V
   $display("[Simulation Info] Case %2d ERROR.",case_num);
/ u3 Q" o# \/ A   #100;
; f! e8 m, V. K! Y   case_num = 3;
+ X) W$ d& u( K, ~; b# q0 l5 t0 z   Code = 3 'b001;0 y% G* H9 u3 y
   #20;: Y: u. H/ K% z: v9 j1 I! ?
    if(Q==0)
" e: K9 W1 ?, c. F  $display("[Simulation Info] Case %2d PASS.",case_num);0 y5 {1 X% J: u" R/ \* {% E6 n% x( y
  else+ v9 h3 a3 O: a" S
   $display("[Simulation Info] Case %2d ERROR.",case_num);
: O5 c) W8 V% f; N4 y   #100;
- ?  k, Y# R% f" x: g% I    case_num = 4;+ R; P4 O8 E* j! n1 b$ a% c  W
   Code = 3 'b010;9 F- q1 V; t/ s$ f% Z, \
   #20;. j. s  j) f0 G5 P2 b/ l
    if(Q==1)
2 T2 v3 [4 E- c6 M7 C2 o( _  $display("[Simulation Info] Case %2d PASS.",case_num);
  X9 R. C3 c; n# ^( x: J  else
5 x7 n. W" x( d" `- `5 A8 A   $display("[Simulation Info] Case %2d ERROR.",case_num);
3 o* U0 Y! z7 j   #100;
7 V9 Q' @$ V5 K" B9 V3 q' w3 N! l    case_num = 5;) O  M5 X3 Z" x# o! f
   Code = 3 'b011;
% ?7 h- b( L( N5 V   #20;
  Y1 R; z0 f; U    if(Q==1)6 c3 S) C- u# ?8 g
  $display("[Simulation Info] Case %2d PASS.",case_num);, q) [( z# w) m4 |
  else
& j) Q# o/ T" `# k- y2 Y6 G# a   $display("[Simulation Info] Case %2d ERROR.",case_num);+ {" \$ i1 w1 t3 E5 s/ w% T
   #100;
) x0 M/ {# |" Q    case_num = 6;0 Z. W" H; g. B3 d- N- t3 [2 p
   Code = 3 'b100;
9 {: ]1 F) T# [. O) y& |0 T   #20;
6 i" q% g) k* }7 w7 A3 t$ M! G    if(Q==0)
, z7 {( ]8 g; {  $display("[Simulation Info] Case %2d PASS.",case_num);. [, o* E, e, \8 H5 o  A
  else
" o) O4 }  i! V- R% R# t6 L4 z   $display("[Simulation Info] Case %2d ERROR.",case_num);; Q4 p' \( J3 H$ i3 U0 k9 k# b
   #100;9 R" V2 M& Q. t
    case_num = 7;, t& w+ [5 ~2 u# ^! k  h
   Code = 3 'b101;
. {; p$ a/ `2 s+ C4 t" @; `   #20;7 y! B7 G# J+ C+ m; i3 z
    if(Q==1)
5 L6 c/ P5 U8 S( W9 q4 m  $display("[Simulation Info] Case %2d PASS.",case_num);
0 w/ y( D9 {* U$ W8 f0 b  else4 D( E- p8 x& ~( V" ?7 S$ o
   $display("[Simulation Info] Case %2d ERROR.",case_num);* p& D. }6 z# v0 [$ V( q( F
   #100;
' Y+ s' F$ l1 g- Q* O8 e, F0 e! k4 |    case_num = 8;
! y( U0 [0 J2 f0 a9 T   Code = 3 'b110;
5 r; o) S2 Z9 ~0 W   #20;; X4 ]- @6 q" I7 G& X7 P- Q6 V+ \
    if(Q==0)
$ `- Y. [) L! O% K0 d. k  $display("[Simulation Info] Case %2d PASS.",case_num);% f/ ]6 p% y0 [: j  b- k6 F! l
  else: o' l; H  t+ c6 a  G( C
   $display("[Simulation Info] Case %2d ERROR.",case_num);
' f  E" F+ S; A4 s# _% ^  ^   #100;
+ U* A) O( {! v6 t+ g/ n    case_num = 9;( J" g2 H/ W. l  G
   Code = 3 'b111;1 h6 a- \: V% ]: Q& @$ \  v* u
   #20;$ M0 A; J/ F8 w9 F7 t, a
    if(Q==0)! [% D1 x4 H$ v4 [9 y$ R5 x
  $display("[Simulation Info] Case %2d PASS.",case_num);
* w( D+ E6 D1 V4 p. t  else8 @3 C' h, P$ C3 J
   $display("[Simulation Info] Case %2d ERROR.",case_num);
; a6 O; A. U" S( R. q6 c   #100;( K( M$ Z2 o( H+ Q7 }6 q1 {0 q
   $finish;
4 O% v5 j4 _: c9 H* ~1 H1 E end
! a6 I' F5 [6 m) Qendmodule
回复

使用道具 举报

发表回复

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

本版积分规则


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