Modified testbenches according to new arch.
This commit is contained in:
parent
a5076ae1b0
commit
e71b9e9881
|
@ -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
|
@ -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
|
@ -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)
|
||||
|
|
|
@ -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
|
|
@ -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
Loading…
Reference in New Issue