|
剛接觸,看不懂,希望先進們可以解說一下程式,還有一直編譯錯誤,我不懂為什麼錯誤,如果可以也想請教一下5 @) P, ]; _$ g5 G6 v. e+ B
5 V$ k5 [ A+ s) K) f0 b+ T'timescale 1ns/1ns
0 d2 h! J- O) P
1 X# c! d7 M2 Smodule the_2-4_decoder_testing_and_certification_program;
$ k8 }$ f" p0 k1 t. s E$ e
" c+ P- D& s- u3 r( Z2 Cwire[3:0]y;" g, n- F# P' H8 f
reg a;) b0 N% I' e) q
reg b;7 l2 G' x3 Y7 y& z8 v: ?+ H
* [' h5 f( ]" D: [7 pdeco2_4g UUT(; f3 o2 N5 K, x
.y(y),9 b; @# o' O+ v$ ?- `* X
.a(a),/ x& q8 F- }* \2 U+ @
.b(b));3 j% ~2 X L7 P2 U" B
0 s# S0 Q" m5 A5 ]! H9 T3 Zinteger TX_FILE;
8 A% H+ |* i( Q7 einteger TX_ERROR;% W# N" l" ~5 F6 M! x$ W. F
* i5 o4 U; s8 y4 k0 K
initial 4 D% ]! m5 A! z
begin) {; ?+ [6 t6 S& d2 J
TX_ERROR=0;$ E- H! g* A' j0 s) e/ V1 v: |
TX_FILE=$fopen("result.txt");- ^# L+ Y/ v" o; V3 Q f2 \; n
E' m, M9 f0 S/ _ a=1'b0; 1 u5 q& ]+ K9 @' w% r
b=1'b0;: L! b3 N3 |5 `( y) k, m1 Y: |4 x
8 d7 O6 g" ]' w8 }. H0 J- b
#1000 G) A6 d9 k* l2 a
a=1'b1;
& j4 i6 Y0 n9 E; @ + j( `8 ~5 g3 |1 o4 P! c% z
#100
/ D5 k) ?0 K' u/ a a=1'b0; # ^/ Z( U1 x7 Z. e8 ^! K# O1 I
b=1'b1;1 |/ R1 Q# U2 U( Z* k
6 {/ B$ S% Q. G! A5 d& N #100
! R- |7 V! M" N6 u o% g, U) _. Y b=1'b1;8 E6 Z6 c4 d# l: \0 E
% N. L% _5 q4 Q$ C" d+ J( a
#150
/ \ c; u0 w+ ~1 ^ u9 D if(TX_ERROR==0)
! V$ i, K& u% m1 l6 j0 q begin
7 v6 R& r# `+ Z $display("No errors or warning");0 ]# n% P2 H Z& v# V
$display(TX_FILE,"No errors or warning");8 t+ O# m8 W# G7 ]& t% \0 O
end else begin" p' f! C& @& [$ L
$display("%d errors found in simulation",TX_ERROR);
" Q5 N' j4 N. W1 X' f. d $display(TX_FILE,"%d errors found in simulation",TX_ERROR);/ S0 Z0 \. }2 M* T3 z
end 6 H+ s1 B* W9 b! }+ m# x
$fclose(TX_FILE);, Y2 l* E; ^+ }/ {
$stop;2 `9 i9 S. H' }2 K4 {
end
* A" h2 Z. V* ]% S H; Y- Z9 e 4 Q( u$ [* y( [7 B' \, p
task CHECK_y;
6 `1 N) Z7 v( Y# }; g- R input[3:0]NEXT_y;7 k% F& y$ y* B4 B3 V
#0 begin
$ f4 i. R& W3 y9 g! c" g9 E if(NEXT_y!==y)begin( f' Y6 ~ B R% A0 v1 _! |
$display("Error at time=%dns y=%b,expected=%b",3 s. z/ z5 \9 C
$time,y,NEXT_y);
( A- N# H: u/ u $fdisplay(TX_FILE,"Error at time=%dns y=%b,expected=%b", ( k9 b, f6 u0 W( S8 U$ s+ F
$time,y,NEXT_y);
2 y* H. n7 ?8 J) }0 q TX_ERROR=TX_ERROR+1;$ b# [+ `2 _( d- K/ X2 c4 w
end 0 j5 Y; y, M4 n9 v( w
end5 w3 \) r7 g6 c( w0 k
endtask
! a7 j/ W% `- k+ cendmodule |
|