电子产业一站式赋能平台

PCB联盟网

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

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

[复制链接]

591

主题

959

帖子

5157

积分

四级会员

Rank: 4

积分
5157
发表于 2023-3-18 10:10:30 | 显示全部楼层 |阅读模式
ALU:% f* m: d& V8 L/ T
module ALU(CTRL,A,B,Q,Code);$ T3 t3 ]- |1 p) @
input CTRL;7 c3 x* Z# K* d6 m4 g3 d' T6 y: M
input A;
, I5 g0 d: Q: f1 }input B;
5 n0 q; Z: j3 N; Routput Q;; C& p3 z4 q  V+ I/ U' T/ D
input[2:0] Code;+ k1 g  p4 A) S
if (CTLR === 0)
+ [% s( F, V: {( W   Q = 0;
/ }2 D: R8 z& _3 b/ N7 Lelse( x# h# D4 k) n" l2 h6 w1 P
   case(Code)
+ ~2 q2 z- f. O) v) T8 ?     3'b000: Q = A+1;  X* J7 ~( W1 P; k; t! R/ x) D' E; P
     3'b001: Q = A+B+1;  Q9 J" S7 D: F9 b9 _4 B6 v0 T0 C
     3'b010: Q = A;
+ J9 b# J% r5 a% }6 I- V* ~0 H     3'b011: Q = A+B;
! j* \! s! j4 X% Z, i. E     3'b100: Q = A-1;
+ G  p4 ]0 J! w4 w! p+ {     3'b101: Q = A-B;) k: e3 y2 x  i/ E8 K: x& _# X
     3'b110: Q = B;
# Y. w4 d3 v4 ^! Y4 Y2 R' Y5 `     default: Q = A-B-1;
9 L7 r" d. k2 ^9 f  W   endcase" \3 s- l' ?( \4 ^3 B
endmodule
# {; H8 T, {8 i% [
. p2 N6 h+ Q9 P. ~! ^6 \* T
, W$ E$ c& l$ O1 \6 w2 S! Ttestbench:: O. n5 [. v7 J1 r  V' x0 E) s
module ALU_tb();
' ^: `! ^) B9 u) Lreg A,B,CTRL;
# y% w; F+ h9 O7 P: rwire Q;
# ~/ v: s& t; }# [! ?( Ireg[2:0] Code;
0 l# E% R4 O5 q: W9 q' U$ Rinteger case_num;* q8 ]6 G( D, e1 [
initial begin7 Y; V! W5 m; u" m" M
  CTRL=0;2 J7 `! x( G' x! Y
  case_num = 1;  D3 o; \: `2 u4 j$ X1 p. O: y! G
  A=1 'b0;
, D% G  g& |  J; z2 ?  B=1 'b1;1 K" [2 P' X7 t
  #100;1 d( k5 v: H1 w( j
  if(Q==0)
. E0 A& M; v  x/ ^5 o  G) D, s  $display("[Simulation Info] Case %2d PASS.",case_num);9 N0 j! E  e1 V) y1 E1 y2 r$ P
  else
  X3 e% n4 A  D' X! J   $display("[Simulation Info] Case %2d ERROR.",case_num);' |& o% \: s6 S8 V
   #100;1 |. l3 V, @! T/ e0 O5 ?' n
   CTRL=1;
9 q. s0 Q/ t, {, y. _   case_num = 2;
" q1 ~' K( k5 t& i   A= 1 'b1;% k* J+ X7 Y& S$ ]- ?7 x
   B= 1 'b0;
; A- e9 x* P% O8 g   Code = 3 'b000;5 n, O: y6 a( \4 i
   #20;
! x4 ]  R! l9 [; k9 x    if(Q==0)
  @8 r  `5 d# J1 E- D7 D7 y  $display("[Simulation Info] Case %2d PASS.",case_num);2 G$ F$ d, m9 }
  else
2 n0 u4 x6 G+ s( h, ?   $display("[Simulation Info] Case %2d ERROR.",case_num);2 g$ r' H9 j1 B* d6 B0 |! s% \" i
   #100;
1 D' @, }+ W1 ^6 Y' r9 W; d) ^  Q/ G   case_num = 3;
& i( N: o/ B& R# R   Code = 3 'b001;+ U: h5 Z- i, S  r3 e% l
   #20;, P  ^4 |0 a. d
    if(Q==0)
# D3 X& h- h' C  $display("[Simulation Info] Case %2d PASS.",case_num);
; v2 k$ n; P  C" L0 U- |  else2 I1 ^% N1 F+ w. O
   $display("[Simulation Info] Case %2d ERROR.",case_num);# w1 G- ^6 B: b4 G
   #100;
  @; x8 I0 [- q. y3 Y" o3 x    case_num = 4;; F7 r( n6 B/ z; h5 c
   Code = 3 'b010;* j2 ]- j- I8 P: Z! W4 z: k
   #20;/ \' i* ]7 ^( p6 T& U0 W7 i- `" P
    if(Q==1)
% {2 b. o" K8 S& h: \) L1 F  $display("[Simulation Info] Case %2d PASS.",case_num);9 I( Q- J3 S/ D* g0 y
  else
& ]- U, R2 p) J, J! l& L   $display("[Simulation Info] Case %2d ERROR.",case_num);, f6 b: \) F: l" z2 F  W
   #100;
  H; w& k' n- ~  Y    case_num = 5;
- ?3 H7 ]1 n7 {. c. d0 A% s   Code = 3 'b011;
7 b3 J! F) s- j4 c" ]1 Y   #20;
* S3 E) s5 v& x' q' O3 @1 [' x  }1 F' Z    if(Q==1)# H, L) G6 h* T+ F9 w; d, [
  $display("[Simulation Info] Case %2d PASS.",case_num);
4 m( ?: d& B% o: H8 f9 d4 W- k  else
1 X1 G9 K2 {8 B5 T+ F  P   $display("[Simulation Info] Case %2d ERROR.",case_num);
) a; g9 W& e7 e, Y9 _   #100;  w+ d: v7 P7 B
    case_num = 6;: `. M2 E" w4 e3 O
   Code = 3 'b100;8 }$ t* c. X  N
   #20;
$ X" r# s1 s, ]6 `* h% ?! E* H    if(Q==0), x( w0 K$ w& N
  $display("[Simulation Info] Case %2d PASS.",case_num);6 K# p0 C! J* @7 w0 f
  else- |  U7 E; C  o0 J* v: }/ j& M! y" r5 r
   $display("[Simulation Info] Case %2d ERROR.",case_num);
! e1 E: R% o, ]% ~/ P6 ^   #100;
+ Y) m7 d# n7 ^$ n    case_num = 7;
1 D; J7 C$ S# E* q5 f+ g2 B   Code = 3 'b101;
7 L: K7 k: ?* L& N; a, a  Q: d* B   #20;7 |  }0 {# m, z( \
    if(Q==1)# [  I# Z+ E/ a+ N  L
  $display("[Simulation Info] Case %2d PASS.",case_num);
/ K: O5 B/ o% C5 {( C  else
' e! F0 R/ w  O1 `3 m2 B3 A  l   $display("[Simulation Info] Case %2d ERROR.",case_num);# @3 y9 @/ H2 \0 M
   #100;' n/ n7 j; k4 B
    case_num = 8;2 H' Y0 p( u, w
   Code = 3 'b110;
2 g% y( i6 M: ?7 @1 z   #20;5 l+ v4 ]% f, ~! R5 _1 r
    if(Q==0)
2 T. u5 i) }& Z' Q  $display("[Simulation Info] Case %2d PASS.",case_num);+ A4 f, P- D! v) m; f) i
  else
+ k6 M( a' c# p8 x0 X6 b   $display("[Simulation Info] Case %2d ERROR.",case_num);
3 Z$ b: b% h. `) h( [4 D   #100;% w4 E% y1 E9 q
    case_num = 9;
. c( T( Y- s( N6 Z   Code = 3 'b111;$ x7 K8 {. D! I: V$ o# y5 M1 a
   #20;
' z0 g8 x8 I& p9 {: M    if(Q==0); D  a" y% F7 o- s& `
  $display("[Simulation Info] Case %2d PASS.",case_num);, B2 K8 u2 M8 j1 f+ x
  else0 ~" r' x7 S% E3 b) F
   $display("[Simulation Info] Case %2d ERROR.",case_num);
3 [' Z8 m& W* r3 f5 M5 v$ j8 I( r3 p   #100;1 f/ _7 {8 P7 D) d: P& s
   $finish;
$ T) [* d0 Z3 u/ x; P end
6 Q$ l" O  v2 V8 |1 ]/ s: kendmodule
回复

使用道具 举报

发表回复

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

本版积分规则


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