| |
| /* |
| * 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 |
| |