42 parameter MULT_SAXI_BSLOG0 =
4,
// number of bits to represent burst size (4 - b.s. = 16, 0 - b.s = 1) 47 input mclk,
// system clock 48 input aclk,
// global clock to run s_axi (@150MHz?) 50 input [
29:
0]
sa_len_di,
// input data to write pointers address/data 51 input [
2:
0]
sa_len_wa,
// channel address to write sa/lengths 53 input [
1:
0]
chn,
// selected channel number, valid with start 54 input start,
// start address generation/pointer increment 55 output busy,
// suspend new accesses (check latencies) 56 // provide address and burst length for AXI @aclk, will stay until ackn 59 // write data to external pointre memory (to be read out by PIO) @ aclk 60 // alternatively - read out directly from ptr_ram? 73 reg [
1:
0]
resetting;
// resetting chunk_pointer and eof_pointer 75 reg [
3:
0]
reset_rq;
// request to reset pointers when ready 79 reg [
1:
0]
chn_r;
// registered channel being processed (or reset) 80 reg [
1:
0]
seq;
// 1-hot sequence of address generation 84 reg ptr_we;
// write to the pointer memory 85 reg [
29:
0]
ptr_inc;
// incremented pointer 106 // 8x30 RAM for address/length 107 reg [
29:
0]
sa_len_ram[
0:
7];
// start chunk/num cunks in a buffer (write port @mclk) 113 // 4 x 30 RAM for current pointers 114 reg [
29:
0]
ptr_ram[
0:
3];
// start chunk/num cunks in a buffer (write port @mclk) 145 else if (
start)
chn_r[
1:
0] <=
chn;
// during normal address generation 148 if (
seq[
0])
case (
chn_r)
// small ROM 161 // add one extra register layer here? [0:7] 949sa_len_ramreg[29:0]
[0:3] 950ptr_ramreg[29:0]
941sa_len_ram_outwire[29:0]
931rst_pntr_aclkwire[3:0]
930rst_pntr_mclkwire[3:0]
rst_pntr_aclk3_i pulse_cross_clock