From 688585fda65ead728672846742ec242d2b9535ab Mon Sep 17 00:00:00 2001 From: Shrideep Date: Thu, 25 Jul 2024 14:58:58 -0700 Subject: [PATCH] initial huffman decoder --- deepsocflow/rtl/axis_huffman_decoder.sv | 109 ++++++++++++++++++++++++ run/work/config_fw.h | 14 +-- run/work/config_tb.svh | 4 +- run/work/hardware.json | 4 +- run/work/sources.txt | 58 ++++++------- 5 files changed, 149 insertions(+), 40 deletions(-) create mode 100644 deepsocflow/rtl/axis_huffman_decoder.sv diff --git a/deepsocflow/rtl/axis_huffman_decoder.sv b/deepsocflow/rtl/axis_huffman_decoder.sv new file mode 100644 index 0000000..605d44f --- /dev/null +++ b/deepsocflow/rtl/axis_huffman_decoder.sv @@ -0,0 +1,109 @@ +`define K_BITS 4 // TODO:for testing only, remove after +module huffman_decoder #( + parameter IN_WORD_WIDTH = `K_BITS + 1 , + parameter OUT_WORD_WIDTH = `K_BITS , + parameter BITS_SHIFT_CNTR = $clog2(3*IN_WORD_WIDTH) +) +( + input logic clk, resetn; + + input logic [IN_WORD_WIDTH-1:0] s_data; + input logic s_valid; + output logic s_ready; + + input m_ready; + output [OUT_WORD_WIDTH-1:0] m_data; + output m_valid; +); + +logic [3*IN_WORD_WIDTH-1:0] buffer; +logic [BITS_SHIFT_CNTR-1:0] shift_counter; + +wire in_handshake, out_handshake; + +assign m_data = buffer[0] ? buffer[OUT_WORD_WIDTH:1] : '0 ; +assign m_valid = (shift_counter > 0) ? 1'b1 : 1'b0; +assign s_ready = (shift_counter <= 2*IN_WORD_WIDTH) ? 1'b1 : 1'b0; + +assign in_handshake = s_valid & s_ready; +assign out_handshake = m_valid & m_data; + +// Shift Counter Update - keeps track of how many positions in the buffer are filled. +always@(posedge clk `OR_NEGEDGE(resetn)) begin + if(~resetn) begin + shift_counter <= 0; + end + else begin + if(in_handshake) begin + if (out_handshake) begin // in and out handshakes + if(buffer[0]) shift_counter <= shift_counter; // one word shifted out, one word shifted in. + else shift_counter <= shift_counter + IN_WORD_WIDTH - 1; // one bit shifted out, one word shifted in + end + else begin // only in handshake + shift_counter <= shift_counter + IN_WORD_WIDTH; + end + end + else if (out_handshake) begin // in and out handshakes + if(buffer[0]) shift_counter <= shift_counter - IN_WORD_WIDTH; // one word shifted out, one word shifted in. + else shift_counter <= shift_counter + IN_WORD_WIDTH - 1; // one bit shifted out, one word shifted in + end + end +end + +// BUffer Write/Shift +genvar i; +generate + for (i=0; i < 3*IN_WORD_WIDTH; i++) begin + always@(posedge clk `OR_NEGEDGE(resetn)) begin + if (~resetn) begin + buffer[i] <= 0; + end + else begin + if(out_handshake) begin + if(in_handshake) begin + if(buffer[0]) begin + if(i>= shift_counter-IN_WORD_WIDTH && i < shift_counter) buffer[i] <= s_data[i-shift_counter-IN_WORD_WIDTH]; + else if(i < 2*IN_WORD_WIDTH) buffer[i] <= buffer[i+IN_WORD_WIDTH]; // shift by 1 word + end + else begin + if(i>= shift_counter-1&& i < shift_counter+IN_WORD_WIDTH-1) buffer[i] <= s_data[i-shift_counter-1]; + else if(i < 3*IN_WORD_WIDTH-1) buffer[i] <= buffer[i+1]; // shift by 1 bit + end + end + else begin + if(buffer[0]) begin + if(i < 2*IN_WORD_WIDTH) buffer[i] <= buffer[i+IN_WORD_WIDTH]; // shift by 1 word + end + else if (i<3*IN_WORD_WIDTH-1) buffer[i] <= buffer[i+1]; // shift by 1 bit + end + end + else begin + if(in_handshake) begin + if(i>= shift_counter && i < shift_counter + IN_WORD_WIDTH) buffer[i] <= s_data[i-shift_counter]; + end + end + end + end + end +endgenerate + +// always@(posedge clk `OR_NEGEDGE(resetn)) begin +// if(~resetn) begin +// buffer <= 0; +// end +// else begin +// if (m_valid && m_ready) begin +// if(buffer[0]) begin +// buffer <= buffer << IN_WORD_WIDTH; +// // TODO : cntr decrement +// //shift_counter <= shift_counter - IN_WORD_WIDTH; +// end +// else begin +// buffer <= buffer << 1; +// //shift_counter <= shift_counter - 1; +// end +// end +// end +// end + +endmodule \ No newline at end of file diff --git a/run/work/config_fw.h b/run/work/config_fw.h index a7545ad..38e6968 100644 --- a/run/work/config_fw.h +++ b/run/work/config_fw.h @@ -1,12 +1,12 @@ #define N_BUNDLES 7 Bundle_t bundles [N_BUNDLES] = { - {.n=1 , .l=4 , .kw=7 , .coe=3 , .h=28 , .w=28 , .ci=1 , .co=8 , .w_kw2=25 , .t=3 , .p=1 , .cm=2 , .cm_p0=1 , .on=1 , .oh=7 , .ow=10 , .oc=8 , .ch=14 , .ph=7 , .cw=28 , .pw=10 , .xp_words=1344 , .b_offset=0 , .w_bpt=84 , .w_bpt_p0=84 , .x_bpt=672 , .x_bpt_p0=672 , .o_words=640 , .o_bytes=320 , .ib_out=1 , .in_buffer_idx=-1 , .out_buffer_idx=0 , .add_out_buffer_idx=0 , .add_in_buffer_idx=-1, .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .x_pad=4 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=0 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=1 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .csh=2 , .csh_shift=1 , .pkh=3 , .psh=2 , .psh_shift=0 , .csw=1 , .csw_shift=0 , .pkw=4 , .psw=3 , .psw_shift=1 , .pool=POOL_AVG , .softmax_max_f=0 , .header= 29695610579857627u, .debug_nhwc_words=560 }, - {.n=1 , .l=1 , .kw=1 , .coe=24 , .h=7 , .w=10 , .ci=8 , .co=8 , .w_kw2=10 , .t=1 , .p=1 , .cm=20 , .cm_p0=8 , .on=1 , .oh=7 , .ow=10 , .oc=8 , .ch=7 , .ph=7 , .cw=10 , .pw=10 , .xp_words=80 , .b_offset=9 , .w_bpt=96 , .w_bpt_p0=96 , .x_bpt=320 , .x_bpt_p0=320 , .o_words=960 , .o_bytes=480 , .ib_out=2 , .in_buffer_idx=0 , .out_buffer_idx=1 , .add_out_buffer_idx=1 , .add_in_buffer_idx=0 , .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .x_pad=0 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=1 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=1 , .aa_shift=3 , .aa_pl_scale=3 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .csh=1 , .csh_shift=0 , .pkh=1 , .psh=1 , .psh_shift=0 , .csw=1 , .csw_shift=0 , .pkw=1 , .psw=1 , .psw_shift=0 , .pool=POOL_NONE , .softmax_max_f=0 , .header= 43276787871645768u, .debug_nhwc_words=560 }, - {.n=1 , .l=1 , .kw=7 , .coe=3 , .h=7 , .w=10 , .ci=8 , .co=8 , .w_kw2=7 , .t=3 , .p=4 , .cm=2 , .cm_p0=2 , .on=1 , .oh=7 , .ow=10 , .oc=8 , .ch=7 , .ph=7 , .cw=10 , .pw=10 , .xp_words=120 , .b_offset=33 , .w_bpt=168 , .w_bpt_p0=168 , .x_bpt=120 , .x_bpt_p0=120 , .o_words=960 , .o_bytes=480 , .ib_out=3 , .in_buffer_idx=1 , .out_buffer_idx=0 , .add_out_buffer_idx=-1, .add_in_buffer_idx=1 , .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .x_pad=4 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=1 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .csh=1 , .csh_shift=0 , .pkh=1 , .psh=1 , .psh_shift=0 , .csw=1 , .csw_shift=0 , .pkw=1 , .psw=1 , .psw_shift=0 , .pool=POOL_NONE , .softmax_max_f=0 , .header= 30188191789350987u, .debug_nhwc_words=560 }, - {.n=1 , .l=1 , .kw=5 , .coe=4 , .h=7 , .w=10 , .ci=8 , .co=8 , .w_kw2=8 , .t=2 , .p=2 , .cm=4 , .cm_p0=4 , .on=1 , .oh=7 , .ow=10 , .oc=8 , .ch=7 , .ph=7 , .cw=10 , .pw=10 , .xp_words=120 , .b_offset=42 , .w_bpt=240 , .w_bpt_p0=240 , .x_bpt=240 , .x_bpt_p0=240 , .o_words=960 , .o_bytes=480 , .ib_out=4 , .in_buffer_idx=0 , .out_buffer_idx=1 , .add_out_buffer_idx=-1, .add_in_buffer_idx=0 , .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .x_pad=4 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=1 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .csh=1 , .csh_shift=0 , .pkh=1 , .psh=1 , .psh_shift=0 , .csw=1 , .csw_shift=0 , .pkw=1 , .psw=1 , .psw_shift=0 , .pool=POOL_NONE , .softmax_max_f=0 , .header= 44121204210794570u, .debug_nhwc_words=560 }, - {.n=1 , .l=1 , .kw=3 , .coe=8 , .h=7 , .w=10 , .ci=8 , .co=24 , .w_kw2=9 , .t=3 , .p=2 , .cm=6 , .cm_p0=2 , .on=1 , .oh=7 , .ow=10 , .oc=24 , .ch=7 , .ph=7 , .cw=10 , .pw=10 , .xp_words=120 , .b_offset=50 , .w_bpt=216 , .w_bpt_p0=72 , .x_bpt=360 , .x_bpt_p0=120 , .o_words=1920 , .o_bytes=960 , .ib_out=5 , .in_buffer_idx=1 , .out_buffer_idx=0 , .add_out_buffer_idx=-1, .add_in_buffer_idx=-1, .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .x_pad=4 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=0 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .csh=1 , .csh_shift=0 , .pkh=1 , .psh=1 , .psh_shift=0 , .csw=1 , .csw_shift=0 , .pkw=1 , .psw=1 , .psw_shift=0 , .pool=POOL_NONE , .softmax_max_f=0 , .header= 38632443238154313u, .debug_nhwc_words=1680 }, - {.n=1 , .l=1 , .kw=1 , .coe=24 , .h=7 , .w=10 , .ci=24 , .co=10 , .w_kw2=10 , .t=1 , .p=2 , .cm=20 , .cm_p0=4 , .on=1 , .oh=1 , .ow=1 , .oc=700 , .ch=7 , .ph=7 , .cw=10 , .pw=10 , .xp_words=80 , .b_offset=74 , .w_bpt=240 , .w_bpt_p0=48 , .x_bpt=800 , .x_bpt_p0=160 , .o_words=5600 , .o_bytes=2800 , .ib_out=6 , .in_buffer_idx=0 , .out_buffer_idx=1 , .add_out_buffer_idx=-1, .add_in_buffer_idx=-1, .is_bias=1 , .is_flatten=1 , .is_softmax=0 , .x_pad=0 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=0 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .csh=1 , .csh_shift=0 , .pkh=1 , .psh=1 , .psh_shift=0 , .csw=1 , .csw_shift=0 , .pkw=1 , .psw=1 , .psw_shift=0 , .pool=POOL_NONE , .softmax_max_f=0 , .header= 42995312893886536u, .debug_nhwc_words=700 }, - {.n=1 , .l=1 , .kw=1 , .coe=24 , .h=1 , .w=1 , .ci=700 , .co=10 , .w_kw2=1 , .t=1 , .p=35 , .cm=20 , .cm_p0=20 , .on=1 , .oh=1 , .ow=1 , .oc=10 , .ch=1 , .ph=1 , .cw=1 , .pw=1 , .xp_words=8 , .b_offset=98 , .w_bpt=240 , .w_bpt_p0=240 , .x_bpt=80 , .x_bpt_p0=80 , .o_words=10 , .o_bytes=40 , .ib_out=-1 , .in_buffer_idx=1 , .out_buffer_idx=-1 , .add_out_buffer_idx=-1, .add_in_buffer_idx=-1, .is_bias=0 , .is_flatten=0 , .is_softmax=1 , .x_pad=0 , .b_val_shift=0 , .b_bias_shift=0 , .ca_nzero=1 , .ca_shift=3 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=3 , .csh=1 , .csh_shift=0 , .pkh=1 , .psh=1 , .psh_shift=0 , .csw=1 , .csw_shift=0 , .pkw=1 , .psw=1 , .psw_shift=0 , .pool=POOL_NONE , .softmax_max_f=0.875 , .header= 44121212804923392u, .debug_nhwc_words=10 } + {.n=1 , .l=4 , .kw=7 , .coe=3 , .coe_tl=2 , .r_ll=4 , .h=28 , .w=28 , .ci=1 , .co=8 , .w_kw2=25 , .t=3 , .p=1 , .cm=2 , .cm_p0=1 , .xp_words=1344 , .ib_out=1 , .w_bpt=84 , .w_bpt_p0=84 , .x_bpt=672 , .x_bpt_p0=672 , .o_words=640 , .o_bytes=320 , .x_pad=4 , .in_buffer_idx=-1 , .out_buffer_idx=0 , .add_out_buffer_idx=0 , .add_in_buffer_idx=-1, .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .b_offset=0 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=0 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=1 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .softmax_max_f=0 , .csh=2 , .ch=14 , .csh_shift=1 , .pkh=3 , .psh=2 , .ph=7 , .psh_shift=0 , .csw=1 , .cw=28 , .csw_shift=0 , .pkw=4 , .psw=3 , .pw=10 , .psw_shift=1 , .pool=POOL_AVG , .on=1 , .oh=7 , .ow=10 , .oc=8 , .header= 29695610579857627u, .debug_nhwc_words=560 }, + {.n=1 , .l=1 , .kw=1 , .coe=24 , .coe_tl=0 , .r_ll=7 , .h=7 , .w=10 , .ci=8 , .co=8 , .w_kw2=10 , .t=1 , .p=1 , .cm=20 , .cm_p0=8 , .xp_words=80 , .ib_out=2 , .w_bpt=96 , .w_bpt_p0=96 , .x_bpt=320 , .x_bpt_p0=320 , .o_words=960 , .o_bytes=480 , .x_pad=0 , .in_buffer_idx=0 , .out_buffer_idx=1 , .add_out_buffer_idx=1 , .add_in_buffer_idx=0 , .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .b_offset=9 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=1 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=1 , .aa_shift=3 , .aa_pl_scale=3 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .softmax_max_f=0 , .csh=1 , .ch=7 , .csh_shift=0 , .pkh=1 , .psh=1 , .ph=7 , .psh_shift=0 , .csw=1 , .cw=10 , .csw_shift=0 , .pkw=1 , .psw=1 , .pw=10 , .psw_shift=0 , .pool=POOL_NONE , .on=1 , .oh=7 , .ow=10 , .oc=8 , .header= 43276787871645768u, .debug_nhwc_words=560 }, + {.n=1 , .l=1 , .kw=7 , .coe=3 , .coe_tl=2 , .r_ll=7 , .h=7 , .w=10 , .ci=8 , .co=8 , .w_kw2=7 , .t=3 , .p=4 , .cm=2 , .cm_p0=2 , .xp_words=120 , .ib_out=3 , .w_bpt=168 , .w_bpt_p0=168 , .x_bpt=120 , .x_bpt_p0=120 , .o_words=960 , .o_bytes=480 , .x_pad=4 , .in_buffer_idx=1 , .out_buffer_idx=0 , .add_out_buffer_idx=-1, .add_in_buffer_idx=1 , .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .b_offset=33 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=1 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .softmax_max_f=0 , .csh=1 , .ch=7 , .csh_shift=0 , .pkh=1 , .psh=1 , .ph=7 , .psh_shift=0 , .csw=1 , .cw=10 , .csw_shift=0 , .pkw=1 , .psw=1 , .pw=10 , .psw_shift=0 , .pool=POOL_NONE , .on=1 , .oh=7 , .ow=10 , .oc=8 , .header= 30188191789350987u, .debug_nhwc_words=560 }, + {.n=1 , .l=1 , .kw=5 , .coe=4 , .coe_tl=4 , .r_ll=7 , .h=7 , .w=10 , .ci=8 , .co=8 , .w_kw2=8 , .t=2 , .p=2 , .cm=4 , .cm_p0=4 , .xp_words=120 , .ib_out=4 , .w_bpt=240 , .w_bpt_p0=240 , .x_bpt=240 , .x_bpt_p0=240 , .o_words=960 , .o_bytes=480 , .x_pad=4 , .in_buffer_idx=0 , .out_buffer_idx=1 , .add_out_buffer_idx=-1, .add_in_buffer_idx=0 , .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .b_offset=42 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=1 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .softmax_max_f=0 , .csh=1 , .ch=7 , .csh_shift=0 , .pkh=1 , .psh=1 , .ph=7 , .psh_shift=0 , .csw=1 , .cw=10 , .csw_shift=0 , .pkw=1 , .psw=1 , .pw=10 , .psw_shift=0 , .pool=POOL_NONE , .on=1 , .oh=7 , .ow=10 , .oc=8 , .header= 44121204210794570u, .debug_nhwc_words=560 }, + {.n=1 , .l=1 , .kw=3 , .coe=8 , .coe_tl=8 , .r_ll=7 , .h=7 , .w=10 , .ci=8 , .co=24 , .w_kw2=9 , .t=3 , .p=2 , .cm=6 , .cm_p0=2 , .xp_words=120 , .ib_out=5 , .w_bpt=216 , .w_bpt_p0=72 , .x_bpt=360 , .x_bpt_p0=120 , .o_words=1920 , .o_bytes=960 , .x_pad=4 , .in_buffer_idx=1 , .out_buffer_idx=0 , .add_out_buffer_idx=-1, .add_in_buffer_idx=-1, .is_bias=1 , .is_flatten=0 , .is_softmax=0 , .b_offset=50 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=0 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .softmax_max_f=0 , .csh=1 , .ch=7 , .csh_shift=0 , .pkh=1 , .psh=1 , .ph=7 , .psh_shift=0 , .csw=1 , .cw=10 , .csw_shift=0 , .pkw=1 , .psw=1 , .pw=10 , .psw_shift=0 , .pool=POOL_NONE , .on=1 , .oh=7 , .ow=10 , .oc=24 , .header= 38632443238154313u, .debug_nhwc_words=1680 }, + {.n=1 , .l=1 , .kw=1 , .coe=24 , .coe_tl=0 , .r_ll=7 , .h=7 , .w=10 , .ci=24 , .co=10 , .w_kw2=10 , .t=1 , .p=2 , .cm=20 , .cm_p0=4 , .xp_words=80 , .ib_out=6 , .w_bpt=240 , .w_bpt_p0=48 , .x_bpt=800 , .x_bpt_p0=160 , .o_words=5600 , .o_bytes=2800 , .x_pad=0 , .in_buffer_idx=0 , .out_buffer_idx=1 , .add_out_buffer_idx=-1, .add_in_buffer_idx=-1, .is_bias=1 , .is_flatten=1 , .is_softmax=0 , .b_offset=74 , .b_val_shift=9 , .b_bias_shift=0 , .ca_nzero=0 , .ca_shift=12 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=0 , .softmax_max_f=0 , .csh=1 , .ch=7 , .csh_shift=0 , .pkh=1 , .psh=1 , .ph=7 , .psh_shift=0 , .csw=1 , .cw=10 , .csw_shift=0 , .pkw=1 , .psw=1 , .pw=10 , .psw_shift=0 , .pool=POOL_NONE , .on=1 , .oh=1 , .ow=1 , .oc=700 , .header= 42995312893886536u, .debug_nhwc_words=700 }, + {.n=1 , .l=1 , .kw=1 , .coe=24 , .coe_tl=0 , .r_ll=1 , .h=1 , .w=1 , .ci=700 , .co=10 , .w_kw2=1 , .t=1 , .p=35 , .cm=20 , .cm_p0=20 , .xp_words=8 , .ib_out=-1 , .w_bpt=240 , .w_bpt_p0=240 , .x_bpt=80 , .x_bpt_p0=80 , .o_words=10 , .o_bytes=40 , .x_pad=0 , .in_buffer_idx=1 , .out_buffer_idx=-1 , .add_out_buffer_idx=-1, .add_in_buffer_idx=-1, .is_bias=0 , .is_flatten=0 , .is_softmax=1 , .b_offset=98 , .b_val_shift=0 , .b_bias_shift=0 , .ca_nzero=1 , .ca_shift=3 , .ca_pl_scale=0 , .aa_nzero=0 , .aa_shift=0 , .aa_pl_scale=0 , .pa_nzero=0 , .pa_shift=0 , .pa_pl_scale=0 , .softmax_frac=3 , .softmax_max_f=0.875 , .csh=1 , .ch=1 , .csh_shift=0 , .pkh=1 , .psh=1 , .ph=1 , .psh_shift=0 , .csw=1 , .cw=1 , .csw_shift=0 , .pkw=1 , .psw=1 , .pw=1 , .psw_shift=0 , .pool=POOL_NONE , .on=1 , .oh=1 , .ow=1 , .oc=10 , .header= 44121212804923392u, .debug_nhwc_words=10 } }; #define X_BITS_L2 2 diff --git a/run/work/config_tb.svh b/run/work/config_tb.svh index 32b9724..641b9e5 100644 --- a/run/work/config_tb.svh +++ b/run/work/config_tb.svh @@ -1,6 +1,6 @@ -`define VALID_PROB 100 -`define READY_PROB 10 +`define VALID_PROB 10 +`define READY_PROB 100 `define CLK_PERIOD 4.0 `define INPUT_DELAY_NS 0.8ns `define OUTPUT_DELAY_NS 0.8ns diff --git a/run/work/hardware.json b/run/work/hardware.json index 7ac1789..8e1096c 100644 --- a/run/work/hardware.json +++ b/run/work/hardware.json @@ -21,7 +21,7 @@ "axi_max_burst_len": 16, "target_cpu_int_bits": 32, "async_resetn": true, - "valid_prob": 0.1, - "ready_prob": 0.01, + "valid_prob": 0.01, + "ready_prob": 0.1, "data_dir": "vectors" } \ No newline at end of file diff --git a/run/work/sources.txt b/run/work/sources.txt index f33bd61..1f264f7 100644 --- a/run/work/sources.txt +++ b/run/work/sources.txt @@ -1,29 +1,29 @@ -/mnt/d/dnn-engine/deepsocflow/test/sv/axi_sys_tb.sv -/mnt/d/dnn-engine/deepsocflow/test/sv/cgra4ml_axi2ram_tb.sv -/mnt/d/dnn-engine/deepsocflow/test/sv/ext/axi_addr.v -/mnt/d/dnn-engine/deepsocflow/test/sv/ext/skidbuffer.v -/mnt/d/dnn-engine/deepsocflow/test/sv/ext/zipcpu_axi2ram.v -/mnt/d/dnn-engine/deepsocflow/rtl/axi_cgra4ml.v -/mnt/d/dnn-engine/deepsocflow/rtl/dnn_engine.v -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axis_pipeline_register.v -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axis_register.v -/mnt/d/dnn-engine/deepsocflow/rtl/ext/xilinx_spwf.v -/mnt/d/dnn-engine/deepsocflow/rtl/axis_out_shift.sv -/mnt/d/dnn-engine/deepsocflow/rtl/axis_pixels.sv -/mnt/d/dnn-engine/deepsocflow/rtl/axis_weight_rotator.sv -/mnt/d/dnn-engine/deepsocflow/rtl/counter.sv -/mnt/d/dnn-engine/deepsocflow/rtl/cyclic_bram.sv -/mnt/d/dnn-engine/deepsocflow/rtl/dma_controller.sv -/mnt/d/dnn-engine/deepsocflow/rtl/n_delay.sv -/mnt/d/dnn-engine/deepsocflow/rtl/proc_engine.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ram.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axilite_ram.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axilite_rd.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axilite_wr.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axis_adapter.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axis_adapter_any.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axi_dma_rd.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ext/alex_axi_dma_wr.sv -/mnt/d/dnn-engine/deepsocflow/rtl/ext/xilinx_sdp.sv -/mnt/d/dnn-engine/run/work/config_hw.svh -/mnt/d/dnn-engine/run/work/config_tb.svh \ No newline at end of file +E:\SP24\CSE298\deepsocflow\deepsocflow\test\sv\axi_sys_tb.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\test\sv\cgra4ml_axi2ram_tb.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\test\sv\ext\axi_addr.v +E:\SP24\CSE298\deepsocflow\deepsocflow\test\sv\ext\skidbuffer.v +E:\SP24\CSE298\deepsocflow\deepsocflow\test\sv\ext\zipcpu_axi2ram.v +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\axi_cgra4ml.v +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\dnn_engine.v +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axis_pipeline_register.v +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axis_register.v +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\xilinx_spwf.v +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\axis_out_shift.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\axis_pixels.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\axis_weight_rotator.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\counter.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\cyclic_bram.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\dma_controller.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\n_delay.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\proc_engine.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ram.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axilite_ram.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axilite_rd.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axilite_wr.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axis_adapter.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axis_adapter_any.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axi_dma_rd.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\alex_axi_dma_wr.sv +E:\SP24\CSE298\deepsocflow\deepsocflow\rtl\ext\xilinx_sdp.sv +E:\SP24\CSE298\deepsocflow\run\work\config_hw.svh +E:\SP24\CSE298\deepsocflow\run\work\config_tb.svh