diff --git a/sim/pstats_gen.sv b/sim/pstats_gen.sv index 27046de2cf1aa92eee4f8758af2262efed6abceb..1c21b7e7db1c296b72283bf40fe9eebdabbe3bdb 100644 --- a/sim/pstats_gen.sv +++ b/sim/pstats_gen.sv @@ -17,7 +17,7 @@ module pstats_gen (rst_n_i, clk_i, trig_o); fork begin stop = 1'b1; - #21496us + #43496us // #236us stop = 1'b0; end diff --git a/sim/regs/pstats_regs.vh b/sim/regs/pstats_regs.vh new file mode 100644 index 0000000000000000000000000000000000000000..62f011e6cf94b4911df9bcb6211e3bdd27fbbbe0 --- /dev/null +++ b/sim/regs/pstats_regs.vh @@ -0,0 +1,166 @@ +`define ADDR_PSTATS_CR 6'h0 +`define PSTATS_CR_RD_EN_OFFSET 0 +`define PSTATS_CR_RD_EN 32'h00000001 +`define PSTATS_CR_RD_IRQ_OFFSET 1 +`define PSTATS_CR_RD_IRQ 32'h00000002 +`define PSTATS_CR_PORT_OFFSET 8 +`define PSTATS_CR_PORT 32'h00001f00 +`define PSTATS_CR_ADDR_OFFSET 16 +`define PSTATS_CR_ADDR 32'h001f0000 +`define ADDR_PSTATS_L1_CNT_VAL 6'h4 +`define ADDR_PSTATS_L2_CNT_VAL 6'h8 +`define ADDR_PSTATS_INFO 6'hc +`define PSTATS_INFO_VER_OFFSET 0 +`define PSTATS_INFO_VER 32'h000000ff +`define PSTATS_INFO_CPW_OFFSET 8 +`define PSTATS_INFO_CPW 32'h0000ff00 +`define PSTATS_INFO_CPP_OFFSET 16 +`define PSTATS_INFO_CPP 32'hffff0000 +`define ADDR_PSTATS_EIC_IDR 6'h20 +`define PSTATS_EIC_IDR_PORT0_OFFSET 0 +`define PSTATS_EIC_IDR_PORT0 32'h00000001 +`define PSTATS_EIC_IDR_PORT1_OFFSET 1 +`define PSTATS_EIC_IDR_PORT1 32'h00000002 +`define PSTATS_EIC_IDR_PORT2_OFFSET 2 +`define PSTATS_EIC_IDR_PORT2 32'h00000004 +`define PSTATS_EIC_IDR_PORT3_OFFSET 3 +`define PSTATS_EIC_IDR_PORT3 32'h00000008 +`define PSTATS_EIC_IDR_PORT4_OFFSET 4 +`define PSTATS_EIC_IDR_PORT4 32'h00000010 +`define PSTATS_EIC_IDR_PORT5_OFFSET 5 +`define PSTATS_EIC_IDR_PORT5 32'h00000020 +`define PSTATS_EIC_IDR_PORT6_OFFSET 6 +`define PSTATS_EIC_IDR_PORT6 32'h00000040 +`define PSTATS_EIC_IDR_PORT7_OFFSET 7 +`define PSTATS_EIC_IDR_PORT7 32'h00000080 +`define PSTATS_EIC_IDR_PORT8_OFFSET 8 +`define PSTATS_EIC_IDR_PORT8 32'h00000100 +`define PSTATS_EIC_IDR_PORT9_OFFSET 9 +`define PSTATS_EIC_IDR_PORT9 32'h00000200 +`define PSTATS_EIC_IDR_PORT10_OFFSET 10 +`define PSTATS_EIC_IDR_PORT10 32'h00000400 +`define PSTATS_EIC_IDR_PORT11_OFFSET 11 +`define PSTATS_EIC_IDR_PORT11 32'h00000800 +`define PSTATS_EIC_IDR_PORT12_OFFSET 12 +`define PSTATS_EIC_IDR_PORT12 32'h00001000 +`define PSTATS_EIC_IDR_PORT13_OFFSET 13 +`define PSTATS_EIC_IDR_PORT13 32'h00002000 +`define PSTATS_EIC_IDR_PORT14_OFFSET 14 +`define PSTATS_EIC_IDR_PORT14 32'h00004000 +`define PSTATS_EIC_IDR_PORT15_OFFSET 15 +`define PSTATS_EIC_IDR_PORT15 32'h00008000 +`define PSTATS_EIC_IDR_PORT16_OFFSET 16 +`define PSTATS_EIC_IDR_PORT16 32'h00010000 +`define PSTATS_EIC_IDR_PORT17_OFFSET 17 +`define PSTATS_EIC_IDR_PORT17 32'h00020000 +`define ADDR_PSTATS_EIC_IER 6'h24 +`define PSTATS_EIC_IER_PORT0_OFFSET 0 +`define PSTATS_EIC_IER_PORT0 32'h00000001 +`define PSTATS_EIC_IER_PORT1_OFFSET 1 +`define PSTATS_EIC_IER_PORT1 32'h00000002 +`define PSTATS_EIC_IER_PORT2_OFFSET 2 +`define PSTATS_EIC_IER_PORT2 32'h00000004 +`define PSTATS_EIC_IER_PORT3_OFFSET 3 +`define PSTATS_EIC_IER_PORT3 32'h00000008 +`define PSTATS_EIC_IER_PORT4_OFFSET 4 +`define PSTATS_EIC_IER_PORT4 32'h00000010 +`define PSTATS_EIC_IER_PORT5_OFFSET 5 +`define PSTATS_EIC_IER_PORT5 32'h00000020 +`define PSTATS_EIC_IER_PORT6_OFFSET 6 +`define PSTATS_EIC_IER_PORT6 32'h00000040 +`define PSTATS_EIC_IER_PORT7_OFFSET 7 +`define PSTATS_EIC_IER_PORT7 32'h00000080 +`define PSTATS_EIC_IER_PORT8_OFFSET 8 +`define PSTATS_EIC_IER_PORT8 32'h00000100 +`define PSTATS_EIC_IER_PORT9_OFFSET 9 +`define PSTATS_EIC_IER_PORT9 32'h00000200 +`define PSTATS_EIC_IER_PORT10_OFFSET 10 +`define PSTATS_EIC_IER_PORT10 32'h00000400 +`define PSTATS_EIC_IER_PORT11_OFFSET 11 +`define PSTATS_EIC_IER_PORT11 32'h00000800 +`define PSTATS_EIC_IER_PORT12_OFFSET 12 +`define PSTATS_EIC_IER_PORT12 32'h00001000 +`define PSTATS_EIC_IER_PORT13_OFFSET 13 +`define PSTATS_EIC_IER_PORT13 32'h00002000 +`define PSTATS_EIC_IER_PORT14_OFFSET 14 +`define PSTATS_EIC_IER_PORT14 32'h00004000 +`define PSTATS_EIC_IER_PORT15_OFFSET 15 +`define PSTATS_EIC_IER_PORT15 32'h00008000 +`define PSTATS_EIC_IER_PORT16_OFFSET 16 +`define PSTATS_EIC_IER_PORT16 32'h00010000 +`define PSTATS_EIC_IER_PORT17_OFFSET 17 +`define PSTATS_EIC_IER_PORT17 32'h00020000 +`define ADDR_PSTATS_EIC_IMR 6'h28 +`define PSTATS_EIC_IMR_PORT0_OFFSET 0 +`define PSTATS_EIC_IMR_PORT0 32'h00000001 +`define PSTATS_EIC_IMR_PORT1_OFFSET 1 +`define PSTATS_EIC_IMR_PORT1 32'h00000002 +`define PSTATS_EIC_IMR_PORT2_OFFSET 2 +`define PSTATS_EIC_IMR_PORT2 32'h00000004 +`define PSTATS_EIC_IMR_PORT3_OFFSET 3 +`define PSTATS_EIC_IMR_PORT3 32'h00000008 +`define PSTATS_EIC_IMR_PORT4_OFFSET 4 +`define PSTATS_EIC_IMR_PORT4 32'h00000010 +`define PSTATS_EIC_IMR_PORT5_OFFSET 5 +`define PSTATS_EIC_IMR_PORT5 32'h00000020 +`define PSTATS_EIC_IMR_PORT6_OFFSET 6 +`define PSTATS_EIC_IMR_PORT6 32'h00000040 +`define PSTATS_EIC_IMR_PORT7_OFFSET 7 +`define PSTATS_EIC_IMR_PORT7 32'h00000080 +`define PSTATS_EIC_IMR_PORT8_OFFSET 8 +`define PSTATS_EIC_IMR_PORT8 32'h00000100 +`define PSTATS_EIC_IMR_PORT9_OFFSET 9 +`define PSTATS_EIC_IMR_PORT9 32'h00000200 +`define PSTATS_EIC_IMR_PORT10_OFFSET 10 +`define PSTATS_EIC_IMR_PORT10 32'h00000400 +`define PSTATS_EIC_IMR_PORT11_OFFSET 11 +`define PSTATS_EIC_IMR_PORT11 32'h00000800 +`define PSTATS_EIC_IMR_PORT12_OFFSET 12 +`define PSTATS_EIC_IMR_PORT12 32'h00001000 +`define PSTATS_EIC_IMR_PORT13_OFFSET 13 +`define PSTATS_EIC_IMR_PORT13 32'h00002000 +`define PSTATS_EIC_IMR_PORT14_OFFSET 14 +`define PSTATS_EIC_IMR_PORT14 32'h00004000 +`define PSTATS_EIC_IMR_PORT15_OFFSET 15 +`define PSTATS_EIC_IMR_PORT15 32'h00008000 +`define PSTATS_EIC_IMR_PORT16_OFFSET 16 +`define PSTATS_EIC_IMR_PORT16 32'h00010000 +`define PSTATS_EIC_IMR_PORT17_OFFSET 17 +`define PSTATS_EIC_IMR_PORT17 32'h00020000 +`define ADDR_PSTATS_EIC_ISR 6'h2c +`define PSTATS_EIC_ISR_PORT0_OFFSET 0 +`define PSTATS_EIC_ISR_PORT0 32'h00000001 +`define PSTATS_EIC_ISR_PORT1_OFFSET 1 +`define PSTATS_EIC_ISR_PORT1 32'h00000002 +`define PSTATS_EIC_ISR_PORT2_OFFSET 2 +`define PSTATS_EIC_ISR_PORT2 32'h00000004 +`define PSTATS_EIC_ISR_PORT3_OFFSET 3 +`define PSTATS_EIC_ISR_PORT3 32'h00000008 +`define PSTATS_EIC_ISR_PORT4_OFFSET 4 +`define PSTATS_EIC_ISR_PORT4 32'h00000010 +`define PSTATS_EIC_ISR_PORT5_OFFSET 5 +`define PSTATS_EIC_ISR_PORT5 32'h00000020 +`define PSTATS_EIC_ISR_PORT6_OFFSET 6 +`define PSTATS_EIC_ISR_PORT6 32'h00000040 +`define PSTATS_EIC_ISR_PORT7_OFFSET 7 +`define PSTATS_EIC_ISR_PORT7 32'h00000080 +`define PSTATS_EIC_ISR_PORT8_OFFSET 8 +`define PSTATS_EIC_ISR_PORT8 32'h00000100 +`define PSTATS_EIC_ISR_PORT9_OFFSET 9 +`define PSTATS_EIC_ISR_PORT9 32'h00000200 +`define PSTATS_EIC_ISR_PORT10_OFFSET 10 +`define PSTATS_EIC_ISR_PORT10 32'h00000400 +`define PSTATS_EIC_ISR_PORT11_OFFSET 11 +`define PSTATS_EIC_ISR_PORT11 32'h00000800 +`define PSTATS_EIC_ISR_PORT12_OFFSET 12 +`define PSTATS_EIC_ISR_PORT12 32'h00001000 +`define PSTATS_EIC_ISR_PORT13_OFFSET 13 +`define PSTATS_EIC_ISR_PORT13 32'h00002000 +`define PSTATS_EIC_ISR_PORT14_OFFSET 14 +`define PSTATS_EIC_ISR_PORT14 32'h00004000 +`define PSTATS_EIC_ISR_PORT15_OFFSET 15 +`define PSTATS_EIC_ISR_PORT15 32'h00008000 +`define PSTATS_EIC_ISR_PORT16_OFFSET 16 +`define PSTATS_EIC_ISR_PORT16 32'h00010000 +`define PSTATS_EIC_ISR_PORT17_OFFSET 17 +`define PSTATS_EIC_ISR_PORT17 32'h00020000 diff --git a/testbench/wrsw_pstats/main.sv b/testbench/wrsw_pstats/main.sv index 1c26274e7e2014ff3ed893a4dd5f14a84f652f35..4b144f0aceadf29d50ca6dbc6c02dd01699a98b0 100644 --- a/testbench/wrsw_pstats/main.sv +++ b/testbench/wrsw_pstats/main.sv @@ -1,7 +1,7 @@ `include "pstats_gen.sv" `include "if_wb_master.svh" -`define TRIG_WIDTH 17 +`define TRIG_WIDTH 38 `define NPORTS 8 module main; @@ -93,6 +93,11 @@ module main; acc.write('h0, 'h000002); acc.read('h4, dat); + acc.read('h8, dat); + acc.write('h0, 'h000001); + acc.read('h4, dat); + acc.read('h8, dat); + acc.write('h2c, 'h01); acc.write('h0, 'h000102); acc.read('h4, dat); @@ -150,6 +155,7 @@ module main; // acc.write('h0, 'h040001); // acc.read('h4, dat); //end + //end //#500ns diff --git a/testbench/wrsw_pstats/run.do b/testbench/wrsw_pstats/run.do index 943d23319127bf0ae16edf49820b751cbd35aa12..538f6859cf7888cec801e621e136a3f45ed7129a 100644 --- a/testbench/wrsw_pstats/run.do +++ b/testbench/wrsw_pstats/run.do @@ -5,6 +5,6 @@ set StdArithNoWarnings 1 set NumericStdNoWarnings 1 do wave.do radix -hexadecimal -run 21500us +run 43500us wave zoomfull radix -hexadecimal diff --git a/testbench/wrsw_pstats/wave.do b/testbench/wrsw_pstats/wave.do index 964f9279bb0f1e6e2b195518413d8334f44f7cdf..3c597b3e839e46355c79d37c1aa822b6cf0dbf65 100644 --- a/testbench/wrsw_pstats/wave.do +++ b/testbench/wrsw_pstats/wave.do @@ -1,57 +1,19 @@ onerror {resume} quietly WaveActivateNextPane {} 0 add wave -noupdate /main/rst_n -add wave -noupdate /main/DUT/nrst_cntrs add wave -noupdate /main/clk_sys add wave -noupdate /main/DUT/g_keep_ov add wave -noupdate /main/TRIG_GEN/trig_o -add wave -noupdate -divider +add wave -noupdate -divider <NULL> add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/mem_adr_d1 add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/ov_cnt_o - add wave -noupdate -divider <NULL> add wave -noupdate -divider <NULL> add wave -noupdate /main/DUT/L2_events add wave -noupdate /main/DUT/L3_events - -add wave -noupdate -divider <NULL> -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/dbg_evt_ov_o -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/dbg_cnt_ov_o -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/cnt_ov -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/ov_cnt_o -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/events_i -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/events_reg -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/events_clr -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/events_sub -add wave -noupdate -height 16 /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/cnt_state -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/mem_adr -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/mem_wr -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/mem_dat_in -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/mem_dat_out -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/events_grant -add wave -noupdate -expand /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/RAM_A1/gen_single_clk/U_RAM_SC/ram -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/ext_adr_i -add wave -noupdate /main/DUT/GEN_PCNT(0)/PER_PORT_CNT/ext_dat_o - add wave -noupdate -divider <NULL> -add wave -noupdate /main/DUT/L2_CNT/dbg_evt_ov_o -add wave -noupdate /main/DUT/L2_CNT/dbg_cnt_ov_o -add wave -noupdate /main/DUT/L2_CNT/events_reg -add wave -noupdate /main/DUT/L2_CNT/events_clr -add wave -noupdate /main/DUT/L2_CNT/events_sub -add wave -noupdate /main/DUT/L2_CNT/cnt_state -add wave -noupdate /main/DUT/L2_CNT/mem_adr -add wave -noupdate /main/DUT/L2_CNT/mem_wr -add wave -noupdate /main/DUT/L2_CNT/mem_dat_in -add wave -noupdate /main/DUT/L2_CNT/mem_dat_out -add wave -noupdate -expand /main/DUT/L2_CNT/RAM_A1/gen_single_clk/U_RAM_SC/ram -add wave -noupdate /main/DUT/L2_CNT/ext_adr_i -add wave -noupdate /main/DUT/L2_CNT/ext_dat_o - -add wave -noupdate -divider add wave -noupdate /main/DUT/irq -add wave -noupdate /main/DUT/CNTRS_IRQ/cnt_state - +add wave -noupdate -height 16 /main/DUT/CNTRS_IRQ/cnt_state add wave -noupdate /main/DUT/CNTRS_IRQ/irq_i add wave -noupdate /main/DUT/CNTRS_IRQ/events_reg add wave -noupdate /main/DUT/CNTRS_IRQ/events_clr @@ -66,7 +28,6 @@ add wave -noupdate /main/DUT/IRQ_adr add wave -noupdate /main/DUT/IRQ_we add wave -noupdate /main/DUT/IRQ_dat_out add wave -noupdate /main/DUT/wb_int_o - add wave -noupdate -divider <NULL> add wave -noupdate -divider <NULL> add wave -noupdate /main/DUT/wb_adr_i @@ -78,15 +39,22 @@ add wave -noupdate /main/DUT/wb_stall_o add wave -noupdate -height 16 /main/DUT/rd_state add wave -noupdate /main/DUT/wb_regs_out.cr_rd_en_o add wave -noupdate /main/DUT/wb_regs_out.cr_rd_en_load_o +add wave -noupdate /main/DUT/wb_regs_out.cr_rd_irq_o +add wave -noupdate /main/DUT/wb_regs_out.cr_rd_irq_load_o add wave -noupdate /main/DUT/wb_regs_out.cr_port_o add wave -noupdate /main/DUT/wb_regs_out.cr_addr_o add wave -noupdate /main/DUT/wb_regs_in.cr_rd_en_i -add wave -noupdate /main/DUT/wb_regs_in.L1_cnt_val_i +add wave -noupdate /main/DUT/wb_regs_in.l1_cnt_val_i +add wave -noupdate /main/DUT/IRQ_adr +add wave -noupdate /main/DUT/IRQ_dat_out +add wave -noupdate /main/DUT/L2_rd_val +add wave -noupdate /main/DUT/rd_val +add wave -noupdate /main/DUT/rd_irq +add wave -noupdate /main/DUT/wb_regs_in.l2_cnt_val_i add wave -noupdate -divider <NULL> -add wave -noupdate /main/DUMMY/regs TreeUpdate [SetDefaultTree] -WaveRestoreCursors {{Cursor 1} {90685000000 fs} 0} -configure wave -namecolwidth 150 +WaveRestoreCursors {{Cursor 1} {21003165000000 fs} 0} +configure wave -namecolwidth 293 configure wave -valuecolwidth 100 configure wave -justifyvalue left configure wave -signalnamewidth 1 @@ -100,4 +68,4 @@ configure wave -griddelta 40 configure wave -timeline 0 configure wave -timelineunits ns update -WaveRestoreZoom {0 fs} {111300 ns} +WaveRestoreZoom {0 fs} {22575 us}