Files
PeakRDL-BusDecoder/tests/test_read_buffer/regblock.rdl

118 lines
2.6 KiB
Plaintext

addrmap top {
default regwidth = 8;
default accesswidth = 8;
default sw=r;
default hw=r;
signal {} incr_en;
//--------------------------------------------------------------------------
// Wide registers
//--------------------------------------------------------------------------
reg {
regwidth = 32;
default counter;
default incr = incr_en;
buffer_reads;
field {} f1[3] = 0;
field {} f2[3] = 0;
field {} f3[3] = 0;
field {} f4[3] = 0;
field {} f5[3] = 0;
field {} f6[3] = 0;
field {} f7[3] = 0;
field {} f8[3] = 0;
field {} f9[3] = 0;
field {} fa[3] = 0;
} reg1;
reg {
regwidth = 32;
default counter;
default incr = incr_en;
buffer_reads;
field {} f1[28:30] = 0;
field {} f2[3] = 0;
field {} f3[3] = 0;
field {} f4[3] = 0;
field {} f5[3] = 0;
field {} f6[3] = 0;
field {} f7[3] = 0;
field {} f8[3] = 0;
field {} f9[3] = 0;
field {} fa[3] = 0;
} reg1_msb0;
reg {
regwidth = 32;
default counter;
default incr = incr_en;
default rclr;
buffer_reads;
field {} f1[4:0] = 0;
field {} f2[14:10] = 0;
field {} f3[26:22] = 0;
field {} f4[31:27] = 0;
} reg2;
//--------------------------------------------------------------------------
// Alternate Triggers
//--------------------------------------------------------------------------
reg myreg {
buffer_reads;
default counter;
default incr = incr_en;
field {} f1[7:0] = 0;
};
reg myreg_wide {
buffer_reads;
default counter;
default incr = incr_en;
regwidth = 16;
field {} f1[15:0] = 0xAAAA;
};
// Trigger via another register
myreg g1_r1;
myreg g1_r2;
g1_r2->rbuffer_trigger = g1_r1;
myreg_wide g2_r1 @ 0x10;
myreg_wide g2_r2;
g2_r2->rbuffer_trigger = g2_r1;
// triger from signal
signal {
activehigh;
} trigger_sig;
signal {
activelow;
} trigger_sig_n;
reg ro_reg {
buffer_reads;
field {
hw=w;
} f1[7:0];
};
ro_reg g3_r1;
ro_reg g3_r2;
g3_r1->rbuffer_trigger = trigger_sig;
g3_r2->rbuffer_trigger = trigger_sig_n;
// trigger from field/propref
reg {
field {
sw=w; hw=r; singlepulse;
} trig = 0;
} g4_trig;
myreg g4_r1;
myreg g4_r2;
g4_r1->rbuffer_trigger = g4_trig.trig;
g4_r2->rbuffer_trigger = g4_trig.trig->swmod;
};