Modified testbenches according to new arch.

This commit is contained in:
CHARAS SAMY 2020-05-11 11:46:03 -06:00
parent a5076ae1b0
commit e71b9e9881
9 changed files with 18651 additions and 1011 deletions

View File

@ -3,13 +3,11 @@
// Description: FPGA Verilog Testbench for Top-level netlist of Design: and2
// Author: Xifan TANG
// Organization: University of Utah
// Date: Wed Apr 29 17:01:11 2020
// Date: Mon May 11 11:03:56 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
`define AUTOCHECKED_SIMULATION
module and2_autocheck_top_tb;
// ----- Local wires for global ports of FPGA fabric -----
wire [0:0] pReset;
@ -22,9 +20,9 @@ wire [0:0] clk;
wire [0:7] gfpga_pad_GPIO_Y;
wire [0:3] gfpga_pad_frac_lut6_spypad_lut4_spy;
wire [0:1] gfpga_pad_frac_lut6_spypad_lut5_spy;
wire [0:0] gfpga_pad_frac_lut6_spypad_lut6_spy;
wire [0:15] gfpga_pad_frac_lut6_spypad_lut4_spy;
wire [0:7] gfpga_pad_frac_lut6_spypad_lut5_spy;
wire [0:3] gfpga_pad_frac_lut6_spypad_lut6_spy;
wire [0:7] gfpga_pad_GPIO_A;
wire [0:7] gfpga_pad_GPIO_IE;
wire [0:7] gfpga_pad_GPIO_OE;
@ -38,10 +36,6 @@ reg [0:0] prog_reset;
reg [0:0] prog_set;
reg [0:0] greset;
reg [0:0] gset;
// ---- Configuration-chain head -----
reg [0:0] ccff_head;
// ---- Configuration-chain tail -----
wire [0:0] ccff_tail;
// ---- Spypads ----
wire [0:0] lut4_out_0;
@ -61,6 +55,10 @@ wire [0:0] shiftreg_spypad_0;
wire [0:0] cout_spypad_0;
wire [0:0] perf_spypad_0;
// ---- Configuration-chain head -----
reg [0:0] ccff_head;
// ---- Configuration-chain tail -----
wire [0:0] ccff_tail;
// ----- Shared inputs -------
reg [0:0] a;
reg [0:0] b;
@ -96,7 +94,7 @@ initial
end
always
begin
#500.00000381 prog_clock_reg[0] = ~prog_clock_reg[0];
#200.00000381 prog_clock_reg[0] = ~prog_clock_reg[0];
end
// ----- End raw programming clock signal generation -----
@ -111,7 +109,7 @@ initial
end
always wait(~greset)
begin
#2.5 op_clock_reg[0] = ~op_clock_reg[0];
#200 op_clock_reg[0] = ~op_clock_reg[0];
end
// ----- End raw operating clock signal generation -----
@ -162,6 +160,8 @@ initial
assign Test_en[0] = 1'b0;
// ----- End connecting global ports of FPGA fabric to stimuli -----
// ----- FPGA top-level module to be capsulated -----
fpga_top FPGA_DUT (
.pReset_pad(pReset[0]),
.prog_clk_pad(prog_clk[0]),
@ -188,12 +188,12 @@ initial
.ccff_head_pad(ccff_head[0]),
.ccff_tail_pad(ccff_tail[0]));
bind fpga_top inv_checker #(.enable_assertions(0), // Write 0 to disable assertions, 1 for enabling them.
bind fpga_top inv_checker #(.enable_assertions(1), // Write 0 to disable assertions, 1 for enabling them.
.BS_LGT(8387), // Bitstream length
.FF_n(80)) // Number of flipflop in all 4 clbs
sva_checker
(.pReset(pReset),
.Reset(Reset),
( .pReset(pReset_pad),
.Reset(Reset_pad),
.prog_clk(prog_clk_pad),
.clk(clk_pad),
.Test_en(Test_en_pad),
@ -204,11 +204,11 @@ bind fpga_top inv_checker #(.enable_assertions(0), // Write 0 to disable asserti
.lut5_out_0(lut5_out_0[0]),
.lut5_out_1(lut5_out_1[0]),
.lut6_out_0(lut6_out_0[0]),
// .cc_spypad_0(cc_spypad_0[0]),
.cc_spypad_0(cc_spypad_0[0]),
.cc_spypad_1(cc_spypad_1[0]),
.cc_spypad_2(cc_spypad_2[0]),
.sc_spypad_0(sc_spypad_0[0]),
// .shiftreg_spypad_0(shiftreg_spypad_0[0]),
.shiftreg_spypad_0(shiftreg_spypad_0[0]),
.cout_spypad_0(cout_spypad_0[0]),
.perf_spypad_0(perf_spypad_0[0]),
.ccff_head(ccff_head_pad),
@ -246,8 +246,8 @@ bind fpga_top inv_checker #(.enable_assertions(0), // Write 0 to disable asserti
.ccff_tail(ccff_tail_pad));
// ----- Link BLIF Benchmark I/Os to FPGA I/Os -----
// ----- Blif Benchmark input a is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[1] -----
assign gfpga_pad_GPIO_Y[1] = a[0];
// ----- Blif Benchmark input a is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[5] -----
assign gfpga_pad_GPIO_Y[5] = a[0];
// ----- Blif Benchmark input b is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[3] -----
assign gfpga_pad_GPIO_Y[3] = b[0];
// ----- Blif Benchmark output out_c is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[2] -----
@ -255,8 +255,8 @@ bind fpga_top inv_checker #(.enable_assertions(0), // Write 0 to disable asserti
// ----- Wire unused FPGA I/Os to constants -----
assign gfpga_pad_GPIO_Y[0] = 1'b0;
assign gfpga_pad_GPIO_Y[1] = 1'b0;
assign gfpga_pad_GPIO_Y[4] = 1'b0;
assign gfpga_pad_GPIO_Y[5] = 1'b0;
assign gfpga_pad_GPIO_Y[6] = 1'b0;
assign gfpga_pad_GPIO_Y[7] = 1'b0;
@ -1923,8 +1923,8 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -2064,22 +2064,13 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2423,7 +2414,21 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2432,7 +2437,6 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2454,18 +2458,14 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -3196,6 +3196,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3231,6 +3232,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3266,21 +3268,13 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3298,6 +3292,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3658,8 +3653,10 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3729,10 +3726,8 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3761,6 +3756,12 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3816,7 +3817,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3904,6 +3904,10 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -3912,16 +3916,12 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -4297,12 +4297,7 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -4311,6 +4306,7 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -4332,14 +4328,18 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -5001,6 +5001,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5036,6 +5037,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5066,7 +5068,12 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5084,19 +5091,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5133,6 +5127,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5168,6 +5163,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5203,6 +5199,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5226,6 +5223,9 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5271,8 +5271,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5449,6 +5447,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5623,6 +5622,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -7170,6 +7170,9 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -7179,6 +7182,9 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8347,8 +8353,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8372,7 +8376,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8397,7 +8400,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8469,8 +8471,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8667,7 +8667,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
@ -8730,7 +8730,7 @@ initial begin
$timeformat(-9, 2, "ns", 20);
$display("Simulation start");
// ----- Can be changed by the user for his/her need -------
#8390100
#83903500
if(nb_error == 0) begin
$display("Simulation Succeed");
end else begin

File diff suppressed because it is too large Load Diff

View File

@ -3,13 +3,11 @@
// Description: FPGA Verilog Testbench for Top-level netlist of Design: decoder_2_4
// Author: Xifan TANG
// Organization: University of Utah
// Date: Fri May 1 15:40:39 2020
// Date: Fri May 8 17:12:30 2020
//-------------------------------------------
//----- Time scale -----
`timescale 1ns / 1ps
`define AUTOCHECKED_SIMULATION
module decoder_2_4_autocheck_top_tb;
// ----- Local wires for global ports of FPGA fabric -----
wire [0:0] pReset;
@ -22,9 +20,9 @@ wire [0:0] clk;
wire [0:7] gfpga_pad_GPIO_Y;
wire [0:3] gfpga_pad_frac_lut6_spypad_lut4_spy;
wire [0:1] gfpga_pad_frac_lut6_spypad_lut5_spy;
wire [0:0] gfpga_pad_frac_lut6_spypad_lut6_spy;
wire [0:15] gfpga_pad_frac_lut6_spypad_lut4_spy;
wire [0:7] gfpga_pad_frac_lut6_spypad_lut5_spy;
wire [0:3] gfpga_pad_frac_lut6_spypad_lut6_spy;
wire [0:7] gfpga_pad_GPIO_A;
wire [0:7] gfpga_pad_GPIO_IE;
wire [0:7] gfpga_pad_GPIO_OE;
@ -104,7 +102,7 @@ initial
end
always
begin
#50.00000381 prog_clock_reg[0] = ~prog_clock_reg[0];
#200.00000381 prog_clock_reg[0] = ~prog_clock_reg[0];
end
// ----- End raw programming clock signal generation -----
@ -119,7 +117,7 @@ initial
end
always wait(~greset)
begin
#2.5 op_clock_reg[0] = ~op_clock_reg[0];
#200 op_clock_reg[0] = ~op_clock_reg[0];
end
// ----- End raw operating clock signal generation -----
@ -170,6 +168,22 @@ initial
assign Test_en[0] = 1'b0;
// ----- End connecting global ports of FPGA fabric to stimuli -----
// ----- FPGA top-level module to be capsulated -----
/*fpga_top FPGA_DUT (
.pReset(pReset[0]),
.prog_clk(prog_clk[0]),
.Reset(Reset[0]),
.Test_en(Test_en[0]),
.clk(clk[0]),
.gfpga_pad_frac_lut6_spypad_lut4_spy(gfpga_pad_frac_lut6_spypad_lut4_spy[0:15]),
.gfpga_pad_frac_lut6_spypad_lut5_spy(gfpga_pad_frac_lut6_spypad_lut5_spy[0:7]),
.gfpga_pad_frac_lut6_spypad_lut6_spy(gfpga_pad_frac_lut6_spypad_lut6_spy[0:3]),
.gfpga_pad_GPIO_A(gfpga_pad_GPIO_A[0:7]),
.gfpga_pad_GPIO_IE(gfpga_pad_GPIO_IE[0:7]),
.gfpga_pad_GPIO_OE(gfpga_pad_GPIO_OE[0:7]),
.gfpga_pad_GPIO_Y(gfpga_pad_GPIO_Y[0:7]),
.ccff_head(ccff_head[0]),
.ccff_tail(ccff_tail[0]));*/
fpga_top FPGA_DUT (
.pReset_pad(pReset[0]),
.prog_clk_pad(prog_clk[0]),
@ -254,22 +268,22 @@ initial
.ccff_tail(ccff_tail_pad));
// ----- Link BLIF Benchmark I/Os to FPGA I/Os -----
// ----- Blif Benchmark input in0 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[1] -----
assign gfpga_pad_GPIO_Y[1] = in0[0];
// ----- Blif Benchmark input in1 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[0] -----
assign gfpga_pad_GPIO_Y[0] = in1[0];
// ----- Blif Benchmark output out_out0 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[7] -----
assign out_out0_fpga[0] = gfpga_pad_GPIO_Y[7];
// ----- Blif Benchmark output out_out1 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[2] -----
assign out_out1_fpga[0] = gfpga_pad_GPIO_Y[2];
// ----- Blif Benchmark output out_out2 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[3] -----
assign out_out2_fpga[0] = gfpga_pad_GPIO_Y[3];
// ----- Blif Benchmark input in0 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[3] -----
assign gfpga_pad_GPIO_Y[3] = in0[0];
// ----- Blif Benchmark input in1 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[1] -----
assign gfpga_pad_GPIO_Y[1] = in1[0];
// ----- Blif Benchmark output out_out0 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[0] -----
assign out_out0_fpga[0] = gfpga_pad_GPIO_Y[0];
// ----- Blif Benchmark output out_out1 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[6] -----
assign out_out1_fpga[0] = gfpga_pad_GPIO_Y[6];
// ----- Blif Benchmark output out_out2 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[2] -----
assign out_out2_fpga[0] = gfpga_pad_GPIO_Y[2];
// ----- Blif Benchmark output out_out3 is mapped to FPGA IOPAD gfpga_pad_GPIO_Y[5] -----
assign out_out3_fpga[0] = gfpga_pad_GPIO_Y[5];
// ----- Wire unused FPGA I/Os to constants -----
assign gfpga_pad_GPIO_Y[4] = 1'b0;
assign gfpga_pad_GPIO_Y[6] = 1'b0;
assign gfpga_pad_GPIO_Y[7] = 1'b0;
`ifdef AUTOCHECKED_SIMULATION
// ----- Reference Benchmark Instanication -------
@ -1901,9 +1915,9 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -2078,10 +2092,6 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2096,12 +2106,7 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2114,18 +2119,9 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2137,9 +2133,18 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2164,9 +2169,18 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2437,31 +2451,19 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2498,30 +2500,16 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2538,6 +2526,16 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -2563,18 +2561,6 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2596,8 +2582,6 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2609,10 +2593,24 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2622,6 +2620,14 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -2654,6 +2660,14 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -3284,11 +3298,14 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3307,12 +3324,8 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3465,6 +3478,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
@ -3498,7 +3512,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3561,7 +3574,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3670,7 +3682,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3682,7 +3693,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3746,8 +3756,11 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3770,7 +3783,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3795,10 +3807,8 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3834,6 +3844,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -3842,7 +3853,10 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5107,9 +5121,9 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
@ -5239,7 +5253,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5285,6 +5299,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -5297,7 +5312,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -7401,7 +7415,13 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -7603,6 +7623,8 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -7628,13 +7650,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -7936,9 +7952,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8035,23 +8049,14 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8063,6 +8068,11 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8082,6 +8092,8 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8090,6 +8102,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8206,6 +8219,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8455,7 +8469,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8500,13 +8514,10 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8526,7 +8537,7 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8546,7 +8557,7 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8566,7 +8577,7 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8586,7 +8597,7 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8606,6 +8617,7 @@ initial
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8622,8 +8634,10 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8640,7 +8654,7 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
@ -8663,7 +8677,6 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
@ -8680,9 +8693,10 @@ initial
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
prog_cycle_task(1'b1);
prog_cycle_task(1'b0);
prog_cycle_task(1'b0);
prog_cycle_task(1'b1);
@ -8783,7 +8797,7 @@ initial begin
$timeformat(-9, 2, "ns", 20);
$display("Simulation start");
// ----- Can be changed by the user for his/her need -------
#839050
#8390500
if(nb_error == 0) begin
$display("Simulation Succeed");
end else begin

File diff suppressed because it is too large Load Diff

View File

@ -4,9 +4,12 @@
`define assert_prog_clk( arg ) \
assert property (@(posedge prog_clk) disable iff (pReset || (enable_assertions == 1'b0)) arg ) else $fatal("Simulation failed");
`define assert_clk( arg ) \
`define assert_sc( arg ) \
assert property (@(posedge clk) disable iff (Reset || ~Test_en || (enable_assertions == 1'b0)) arg ) else $fatal("Simulation failed");
`define assert_clk( arg ) \
assert property (@(posedge clk) disable iff (Reset || (enable_assertions == 1'b0)) arg ) else $fatal("Simulation failed");
`define assert_undefined( arg ) \
assert property (@(posedge clk) disable iff (pReset || Reset || (enable_assertions == 1'b0)) !$isunknown(arg)) else $fatal("Simulation failed");
@ -131,11 +134,11 @@ always @(posedge(pReset))
Grid2_2to1_2: `assert_prog_clk( ccff_head_g22 |-> ##1773 ccff_head_g12 )
// Scan chain path checker
SC_TEST: `assert_clk( sc_head |-> ##FF_n sc_tail)
First_sc: `assert_clk( sc_head == sc_tail_clb_1_2)
Second_sc: `assert_clk( sc_head |-> ##(FF_n/4) sc_tail_clb_1_1)
Third_sc: `assert_clk( sc_head |-> ##(FF_n/2) sc_tail_clb_2_2)
Fourth_sc: `assert_clk( sc_head |-> ##(3*FF_n/4) sc_tail_clb_2_1)
SC_TEST: `assert_sc( sc_head |-> ##FF_n sc_tail)
First_sc: `assert_sc( sc_head == sc_tail_clb_1_2)
Second_sc: `assert_sc( sc_head |-> ##(FF_n/4) sc_tail_clb_1_1)
Third_sc: `assert_sc( sc_head |-> ##(FF_n/2) sc_tail_clb_2_2)
Fourth_sc: `assert_sc( sc_head |-> ##(3*FF_n/4) sc_tail_clb_2_1)
// Spypad assertions
ccff_head_top: `assert_prog_clk(ccff_head |-> ##1 cc_spypad_0)

View File

@ -0,0 +1,169 @@
`timescale 1ns/1ps
`define assert_prog_clk( arg ) \
assert property (@(posedge prog_clk) disable iff (pReset || (enable_assertions == 1'b0)) arg ) else $fatal("Simulation failed");
`define assert_sc( arg ) \
assert property (@(posedge clk) disable iff (Reset || ~Test_en || (enable_assertions == 1'b0)) arg ) else $fatal("Simulation failed");
`define assert_clk( arg ) \
assert property (@(posedge clk) disable iff (Reset || (enable_assertions == 1'b0)) arg ) else $fatal("Simulation failed");
`define assert_undefined( arg ) \
assert property (@(posedge clk) disable iff (pReset || Reset || (enable_assertions == 1'b0)) !$isunknown(arg)) else $fatal("Simulation failed");
module inv_checker#(
parameter enable_assertions = 1,
BS_LGT = 8387,
FF_n = 80
)(
//Top level inputs
input [0:0] prog_clk,
input [0:0] clk,
input [0:0] pReset,
input [0:0] Reset,
input [0:0] Test_en,
input [0:0] cc_spypad_0, // ok
input [0:0] cc_spypad_1, // ok
input [0:0] cc_spypad_2, // ok
input [0:0] cout_spypad_0,
input [0:0] lut4_out_0,
input [0:0] lut4_out_1,
input [0:0] lut4_out_2,
input [0:0] lut4_out_3,
input [0:0] lut5_out_0,
input [0:0] lut5_out_1,
input [0:0] lut6_out_0,
input [0:0] perf_spypad_0,
input [0:0] sc_spypad_0,
input [0:0] shiftreg_spypad_0,
// Inputs for CC PATH Check
input [0:0] ccff_head,
input [0:0] ccff_tail_gbot_1_0,
input [0:0] ccff_head_gbot_2_0,
input [0:0] ccff_head_gright_3_1,
input [0:0] ccff_head_gright_3_2,
input [0:0] ccff_tail_gright_3_2,
input [0:0] ccff_head_sb_2_2,
input [0:0] ccff_tail_sb_2_2,
input [0:0] ccff_head_cbx_2_2,
input [0:0] ccff_head_g11,
input [0:0] ccff_head_g21,
input [0:0] ccff_head_g22,
input [0:0] ccff_head_g12,
input [0:0] ccff_tail,
// Inputs for SC PATH Check
input [0:0] sc_head,
input [0:0] sc_tail,
input [0:0] sc_tail_clb_1_2,
input [0:0] sc_tail_clb_1_1,
input [0:0] sc_tail_clb_2_2,
input [0:0] sc_tail_clb_2_1,
// Ref signals for spypads
input [0:0] cc_spypad_1_ref,
input [0:0] cc_spypad_2_ref,
input [0:0] cout_spypad_0_ref,
input [0:0] lut4_out_0_ref,
input [0:0] lut4_out_1_ref,
input [0:0] lut4_out_2_ref,
input [0:0] lut4_out_3_ref,
input [0:0] lut5_out_0_ref,
input [0:0] lut5_out_1_ref,
input [0:0] lut6_out_0_ref,
input [0:0] perf_spypad_0_ref,
input [0:0] sc_spypad_0_ref,
input [0:0] shiftreg_spypad_0_ref
);
bit reset_lock =0;
bit preset_lock=0;
reg [0:0] clk_sva = 1'b0;
always
begin
#2.5 clk_sva[0] = ~clk_sva[0];
end
always @(posedge(Reset))
begin
reset_lock = 1'b1;
end
always @(posedge(pReset))
begin
preset_lock = 1'b1;
end
//No Signal should be undefined after Reset apart from gpio_pad
U_prog_clk: `assert_undefined(prog_clk)
U_clk: `assert_undefined(clk)
U_pReset: `assert_undefined(pReset)
U_Test_en: `assert_undefined(Test_en)
U_ccff_head: `assert_undefined(ccff_head)
// U_sc_head: `assert_undefined(sc_head) // This one depends on the test actually
U_cc_spypad_0: `assert_undefined(cc_spypad_0)
U_cc_spypad_1: `assert_undefined(cc_spypad_1)
U_cc_spypad_2: `assert_undefined(cc_spypad_2)
U_ccff_tail: `assert_undefined(ccff_tail)
U_cout_spypad_0: `assert_undefined(cout_spypad_0)
U_lut4_out_0: `assert_undefined(lut4_out_0)
U_lut4_out_1: `assert_undefined(lut4_out_1)
U_lut4_out_2: `assert_undefined(lut4_out_2)
U_lut4_out_3: `assert_undefined(lut4_out_3)
U_lut5_out_0: `assert_undefined(lut5_out_0)
U_lut5_out_1: `assert_undefined(lut5_out_1)
U_lut6_out_0: `assert_undefined(lut6_out_0)
U_perf_spypad_0: `assert_undefined(perf_spypad_0)
U_sc_spypad_0: `assert_undefined(sc_spypad_0)
U_sc_tail: `assert_undefined(sc_tail)
U_shiftreg_spypad_0: `assert_undefined(shiftreg_spypad_0)
// Configuration chain path checker
CC_TEST_HIGH: `assert_prog_clk( ccff_head |-> ##BS_LGT ccff_tail )
CC_TEST_LOW: `assert_prog_clk( !ccff_head |-> ##BS_LGT !ccff_tail )
Path1: `assert_prog_clk( ccff_tail_gbot_1_0 == ccff_head_gbot_2_0 )
Path2: `assert_prog_clk( ccff_head_gright_3_1 |-> ##1 ccff_head_gright_3_2 )
Path3: `assert_prog_clk( ccff_tail_gright_3_2 |-> ccff_head_sb_2_2 )
Path4: `assert_prog_clk( ccff_head_sb_2_2 |-> ##(220) ccff_tail_sb_2_2 )
Path5: `assert_prog_clk( ccff_tail_sb_2_2 == ccff_head_cbx_2_2 )
Core_to_grid: `assert_prog_clk( ccff_head |-> ##1933 ccff_head_g11 )
Grid1_1to2_1: `assert_prog_clk( ccff_head_g11 |-> ##1767 ccff_head_g21 )
Grid2_1to2_2: `assert_prog_clk( ccff_head_g21 |-> ##1799 ccff_head_g22 )
Grid2_2to1_2: `assert_prog_clk( ccff_head_g22 |-> ##1773 ccff_head_g12 )
// Scan chain path checker
SC_TEST: `assert_clk( sc_head |-> ##FF_n sc_tail)
First_sc: `assert_clk( sc_head == sc_tail_clb_1_2)
Second_sc: `assert_clk( sc_head |-> ##(FF_n/4) sc_tail_clb_1_1)
Third_sc: `assert_clk( sc_head |-> ##(FF_n/2) sc_tail_clb_2_2)
Fourth_sc: `assert_clk( sc_head |-> ##(3*FF_n/4) sc_tail_clb_2_1)
// Spypad assertions
ccff_head_top: `assert_prog_clk(ccff_head |-> ##1 cc_spypad_0)
cc_spypad_1_check: `assert_prog_clk(cc_spypad_1_ref == cc_spypad_1)
cc_spypad_2_check: `assert_prog_clk(cc_spypad_2_ref == cc_spypad_2)
cout_spypad_0_check: `assert_clk(cout_spypad_0_ref == cout_spypad_0)
lut4_out_0_check: `assert_clk(lut4_out_0_ref == lut4_out_0)
lut4_out_1_check: `assert_clk(lut4_out_1_ref == lut4_out_1)
lut4_out_2_check: `assert_clk(lut4_out_2_ref == lut4_out_2)
lut4_out_3_check: `assert_clk(lut4_out_3_ref == lut4_out_3)
lut5_out_0_check: `assert_clk(lut5_out_0_ref == lut5_out_0)
lut5_out_1_check: `assert_clk(lut5_out_1_ref == lut5_out_1)
lut6_out_0_check: `assert_clk(lut6_out_0_ref == lut6_out_0)
perf_spypad_0_check: `assert_clk(perf_spypad_0_ref == perf_spypad_0)
sc_spypad_0_check: `assert_clk(sc_spypad_0_ref == sc_spypad_0)
shiftreg_spypad_0_check:`assert_prog_clk(shiftreg_spypad_0_ref == shiftreg_spypad_0)
// Reset assertions
reset_at_start: assert property
(@(posedge clk_sva) disable iff (enable_assertions == 1'b0) ~reset_lock & ~Reset |-> ~clk)
else $fatal("Reset has to trigger before stimuli goes in");
preset_at_start: assert property
(@(posedge clk_sva) disable iff (enable_assertions == 1'b0) ~preset_lock & ~pReset |-> ~prog_clk)
else $fatal("pReset has to trigger before the beginning of programming phase");
endmodule

View File

@ -82,7 +82,7 @@ initial
end
always //wait(~greset)
begin
#2.5 op_clock_reg[0] = ~op_clock_reg[0];
#50 op_clock_reg[0] = ~op_clock_reg[0];
end
// ----- End raw operating clock signal generation -----

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff