297 lines
3.7 KiB
Coq
297 lines
3.7 KiB
Coq
|
|
/*
|
||
|
|
* This test is derived from bug report PR#511. Mostly what it is
|
||
|
|
* doing is checking the behavior of === and wait.
|
||
|
|
*/
|
||
|
|
|
||
|
|
`timescale 1 ps / 1 ps
|
||
|
|
|
||
|
|
module I54;
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
#500000
|
||
|
|
$display( "FAILED." );
|
||
|
|
$finish;
|
||
|
|
end
|
||
|
|
|
||
|
|
parameter I148 = 4096;
|
||
|
|
|
||
|
|
integer I20;
|
||
|
|
integer I57;
|
||
|
|
integer I58;
|
||
|
|
|
||
|
|
integer I137;
|
||
|
|
|
||
|
|
time I106;
|
||
|
|
time I95;
|
||
|
|
time I97;
|
||
|
|
|
||
|
|
time I122;
|
||
|
|
time I142;
|
||
|
|
time I67;
|
||
|
|
time I25;
|
||
|
|
time I83;
|
||
|
|
time I128;
|
||
|
|
time I10;
|
||
|
|
time I12;
|
||
|
|
time I73;
|
||
|
|
time I159;
|
||
|
|
|
||
|
|
reg I77;
|
||
|
|
reg I108;
|
||
|
|
reg I2;
|
||
|
|
reg I81;
|
||
|
|
reg I60;
|
||
|
|
reg I114;
|
||
|
|
reg I124;
|
||
|
|
reg I41;
|
||
|
|
|
||
|
|
reg I151;
|
||
|
|
reg I43;
|
||
|
|
reg [1:0] I68;
|
||
|
|
reg [4*8-1:0] I138;
|
||
|
|
reg [3:0] I71;
|
||
|
|
reg [3:0] I149;
|
||
|
|
reg [3:0] I6;
|
||
|
|
reg [3:0] I76;
|
||
|
|
reg I48;
|
||
|
|
reg I61;
|
||
|
|
reg I62;
|
||
|
|
reg I49;
|
||
|
|
reg I158;
|
||
|
|
reg I85;
|
||
|
|
reg [2:0] I84;
|
||
|
|
reg [2:0] I30;
|
||
|
|
reg I94;
|
||
|
|
|
||
|
|
wire I69;
|
||
|
|
wire I98;
|
||
|
|
|
||
|
|
reg I115;
|
||
|
|
reg I101;
|
||
|
|
reg I14;
|
||
|
|
reg I78;
|
||
|
|
reg I131;
|
||
|
|
reg I24;
|
||
|
|
reg I52;
|
||
|
|
reg I13;
|
||
|
|
reg I132;
|
||
|
|
reg I139;
|
||
|
|
reg I107;
|
||
|
|
|
||
|
|
wire I93;
|
||
|
|
wire [3:0] I120;
|
||
|
|
wire [3:0] I82;
|
||
|
|
wire I38;
|
||
|
|
wire I22;
|
||
|
|
wire [1:0] I46;
|
||
|
|
wire [2:0] I1;
|
||
|
|
wire [4*8-1:0] I4;
|
||
|
|
wire [3:0] I125;
|
||
|
|
wire [3:0] I36;
|
||
|
|
wire [3:0] I91;
|
||
|
|
wire [3:0] I3;
|
||
|
|
wire [3:0] I143;
|
||
|
|
wire [1:0] I72;
|
||
|
|
wire I34;
|
||
|
|
wire I150;
|
||
|
|
wire I40;
|
||
|
|
wire [1:0] I51;
|
||
|
|
|
||
|
|
reg [1:0] I39;
|
||
|
|
reg [4-1:0] I70;
|
||
|
|
|
||
|
|
wire I103;
|
||
|
|
wire I29;
|
||
|
|
|
||
|
|
wire I74;
|
||
|
|
wire I144;
|
||
|
|
|
||
|
|
reg I63;
|
||
|
|
reg I15;
|
||
|
|
reg I146;
|
||
|
|
reg I110;
|
||
|
|
reg I152;
|
||
|
|
reg I129;
|
||
|
|
reg I19;
|
||
|
|
reg I112;
|
||
|
|
reg I102;
|
||
|
|
reg I156;
|
||
|
|
reg I121;
|
||
|
|
|
||
|
|
wire I23;
|
||
|
|
wire [3:0] I118;
|
||
|
|
wire [3:0] I86;
|
||
|
|
wire I28;
|
||
|
|
wire I65;
|
||
|
|
wire [1:0] I79;
|
||
|
|
wire [2:0] I17;
|
||
|
|
wire [4*8-1:0] I133;
|
||
|
|
wire [3:0] I27;
|
||
|
|
wire [3:0] I99;
|
||
|
|
wire [3:0] I135;
|
||
|
|
wire [3:0] I90;
|
||
|
|
wire [3:0] I35;
|
||
|
|
wire [1:0] I55;
|
||
|
|
wire I8;
|
||
|
|
wire I126;
|
||
|
|
wire I5;
|
||
|
|
wire [1:0] I140;
|
||
|
|
|
||
|
|
reg [1:0] I116;
|
||
|
|
reg [4-1:0] I45;
|
||
|
|
|
||
|
|
wire I105;
|
||
|
|
wire I33;
|
||
|
|
|
||
|
|
wire I75;
|
||
|
|
wire I145;
|
||
|
|
|
||
|
|
reg I64;
|
||
|
|
reg I16;
|
||
|
|
reg I147;
|
||
|
|
reg I111;
|
||
|
|
reg I153;
|
||
|
|
reg I130;
|
||
|
|
reg I21;
|
||
|
|
reg I113;
|
||
|
|
reg I104;
|
||
|
|
reg I157;
|
||
|
|
reg I123;
|
||
|
|
|
||
|
|
wire I26;
|
||
|
|
wire [3:0] I119;
|
||
|
|
wire [3:0] I87;
|
||
|
|
wire I32;
|
||
|
|
wire I66;
|
||
|
|
wire [1:0] I80;
|
||
|
|
wire [2:0] I18;
|
||
|
|
wire [4*8-1:0] I134;
|
||
|
|
wire [3:0] I31;
|
||
|
|
wire [3:0] I100;
|
||
|
|
wire [3:0] I136;
|
||
|
|
wire [3:0] I92;
|
||
|
|
wire [3:0] I37;
|
||
|
|
wire [1:0] I56;
|
||
|
|
wire I9;
|
||
|
|
wire I127;
|
||
|
|
wire I7;
|
||
|
|
wire [1:0] I141;
|
||
|
|
|
||
|
|
reg [1:0] I117;
|
||
|
|
reg [4-1:0] I47;
|
||
|
|
|
||
|
|
wire [256:0] I59;
|
||
|
|
wire [256:0] I50;
|
||
|
|
wire [256:0] I88;
|
||
|
|
wire [256:0] I154;
|
||
|
|
wire [256:0] I89;
|
||
|
|
wire [256:0] I155;
|
||
|
|
|
||
|
|
assign I69 = I59[I20];
|
||
|
|
assign I98 = I50[I20];
|
||
|
|
assign I103 = I88[I57];
|
||
|
|
assign I29 = I154[I57];
|
||
|
|
assign I105 = I89[I58];
|
||
|
|
assign I33 = I155[I58];
|
||
|
|
|
||
|
|
wire I109 = ( ~ I94 ) & ( ~ I151 );
|
||
|
|
wire I96 = ( ~ I94 ) & ( I151 );
|
||
|
|
wire I42 = ( I94 ) & ( ~ I151 );
|
||
|
|
wire I44 = ( I94 ) & ( I151 );
|
||
|
|
|
||
|
|
always @( I114 ) begin
|
||
|
|
I132 <= #I106 I114;
|
||
|
|
I102 <= #I95 I114;
|
||
|
|
I104 <= #I97 I114;
|
||
|
|
end
|
||
|
|
|
||
|
|
always @( I124 ) begin
|
||
|
|
I139 <= #I106 I124;
|
||
|
|
I156 <= #I95 I124;
|
||
|
|
I157 <= #I97 I124;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
I77 = 1'b0;
|
||
|
|
#0 ;
|
||
|
|
#(I142) I77 = 1'b1;
|
||
|
|
forever #(I122/2) I77 = ~ I77;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
I108 = 1'b0;
|
||
|
|
#0 ;
|
||
|
|
#(I25) I108 = 1'b1;
|
||
|
|
forever #(I67/2) I108 = ~ I108;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
I2 = 1'b0;
|
||
|
|
#0 ;
|
||
|
|
#(I128) I2 = 1'b1;
|
||
|
|
forever #(I83/2) I2 = ~ I2;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
I81 = 1'b0;
|
||
|
|
#0 ;
|
||
|
|
#(I12) I81 = 1'b1;
|
||
|
|
forever #(I10/2) I81 = ~ I81;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
I60 = 1'b0;
|
||
|
|
#0 ;
|
||
|
|
#(I159) I60 = 1'b1;
|
||
|
|
forever #(I73/2) I60 = ~ I60;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
I114 = 1'b1;
|
||
|
|
#300000 ;
|
||
|
|
@( posedge I81 ) ;
|
||
|
|
@( posedge I81 ) ;
|
||
|
|
#50 I114 = 1'b0;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
I124 = 1'b1;
|
||
|
|
#300000 ;
|
||
|
|
@( posedge I60 ) ;
|
||
|
|
@( posedge I60 ) ;
|
||
|
|
#50 I124 = 1'b0;
|
||
|
|
end
|
||
|
|
|
||
|
|
initial begin : I53
|
||
|
|
|
||
|
|
I137 = 1600;
|
||
|
|
I20 = 40;
|
||
|
|
I57 = 0;
|
||
|
|
I58 = 80;
|
||
|
|
I106 = 150;
|
||
|
|
I95 = 300;
|
||
|
|
I97 = 0;
|
||
|
|
I151 = 1'b0;
|
||
|
|
I94 = 1'b0;
|
||
|
|
I122 = 6400;
|
||
|
|
I142 = 0;
|
||
|
|
I67 = 6270;
|
||
|
|
I25 = 0;
|
||
|
|
I83 = 6400;
|
||
|
|
I128 = 1000;
|
||
|
|
I10 = 6270;
|
||
|
|
I12 = 0;
|
||
|
|
I73 = 6400;
|
||
|
|
I159 = 1000;
|
||
|
|
|
||
|
|
wait ( I114 === 1'b1 );
|
||
|
|
wait ( I114 === 1'b0 );
|
||
|
|
wait ( I124 === 1'b0 );
|
||
|
|
|
||
|
|
$display( "PASSED" );
|
||
|
|
$finish;
|
||
|
|
|
||
|
|
end
|
||
|
|
|
||
|
|
endmodule
|