|
@@
-96,8
+96,8
rtems_isr waveforms_isr( rtems_vector_nu
|
|
96
|
current_ring_node_f2 = current_ring_node_f2->next;
|
|
96
|
current_ring_node_f2 = current_ring_node_f2->next;
|
|
97
|
waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
|
|
97
|
waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
|
|
98
|
//
|
|
98
|
//
|
|
99
|
if (nb_swf < 2)
|
|
99
|
// if (nb_swf < 2)
|
|
100
|
// if (true)
|
|
100
|
if (true)
|
|
101
|
{
|
|
101
|
{
|
|
102
|
if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
|
|
102
|
if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
|
|
103
|
rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
|
|
103
|
rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
|
|
@@
-1096,7
+1096,84
void compute_acquisition_time( unsigned
|
|
1096
|
|
|
1096
|
|
|
1097
|
//**************
|
|
1097
|
//**************
|
|
1098
|
// wfp registers
|
|
1098
|
// wfp registers
|
|
1099
|
void set_wfp_data_shaping()
|
|
1099
|
void reset_wfp_burst_enable(void)
|
|
|
|
|
1100
|
{
|
|
|
|
|
1101
|
/** This function resets the waveform picker burst_enable register.
|
|
|
|
|
1102
|
*
|
|
|
|
|
1103
|
* The burst bits [f2 f1 f0] and the enable bits [f3 f2 f1 f0] are set to 0.
|
|
|
|
|
1104
|
*
|
|
|
|
|
1105
|
*/
|
|
|
|
|
1106
|
|
|
|
|
|
1107
|
#ifdef VHDL_DEV
|
|
|
|
|
1108
|
waveform_picker_regs->run_burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
|
|
|
|
|
1109
|
#else
|
|
|
|
|
1110
|
waveform_picker_regs->burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
|
|
|
|
|
1111
|
#endif
|
|
|
|
|
1112
|
}
|
|
|
|
|
1113
|
|
|
|
|
|
1114
|
void reset_wfp_status( void )
|
|
|
|
|
1115
|
{
|
|
|
|
|
1116
|
/** This function resets the waveform picker status register.
|
|
|
|
|
1117
|
*
|
|
|
|
|
1118
|
* All status bits are set to 0 [new_err full_err full].
|
|
|
|
|
1119
|
*
|
|
|
|
|
1120
|
*/
|
|
|
|
|
1121
|
|
|
|
|
|
1122
|
#ifdef GSA
|
|
|
|
|
1123
|
#else
|
|
|
|
|
1124
|
waveform_picker_regs->status = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
|
|
|
|
|
1125
|
#endif
|
|
|
|
|
1126
|
}
|
|
|
|
|
1127
|
|
|
|
|
|
1128
|
void reset_waveform_picker_regs(void)
|
|
|
|
|
1129
|
{
|
|
|
|
|
1130
|
/** This function resets the waveform picker module registers.
|
|
|
|
|
1131
|
*
|
|
|
|
|
1132
|
* The registers affected by this function are located at the following offset addresses:
|
|
|
|
|
1133
|
* - 0x00 data_shaping
|
|
|
|
|
1134
|
* - 0x04 run_burst_enable
|
|
|
|
|
1135
|
* - 0x08 addr_data_f0
|
|
|
|
|
1136
|
* - 0x0C addr_data_f1
|
|
|
|
|
1137
|
* - 0x10 addr_data_f2
|
|
|
|
|
1138
|
* - 0x14 addr_data_f3
|
|
|
|
|
1139
|
* - 0x18 status
|
|
|
|
|
1140
|
* - 0x1C delta_snapshot
|
|
|
|
|
1141
|
* - 0x20 delta_f0
|
|
|
|
|
1142
|
* - 0x24 delta_f0_2
|
|
|
|
|
1143
|
* - 0x28 delta_f1
|
|
|
|
|
1144
|
* - 0x2c delta_f2
|
|
|
|
|
1145
|
* - 0x30 nb_data_by_buffer
|
|
|
|
|
1146
|
* - 0x34 nb_snapshot_param
|
|
|
|
|
1147
|
* - 0x38 start_date
|
|
|
|
|
1148
|
* - 0x3c nb_word_in_buffer
|
|
|
|
|
1149
|
*
|
|
|
|
|
1150
|
*/
|
|
|
|
|
1151
|
|
|
|
|
|
1152
|
waveform_picker_regs->data_shaping = 0x01; // 0x00 *** R1 R0 SP1 SP0 BW
|
|
|
|
|
1153
|
waveform_picker_regs->run_burst_enable = 0x00; // 0x04 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
|
|
|
|
|
1154
|
waveform_picker_regs->addr_data_f0 = current_ring_node_f0->buffer_address; // 0x08
|
|
|
|
|
1155
|
waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address; // 0x0c
|
|
|
|
|
1156
|
waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; // 0x10
|
|
|
|
|
1157
|
waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a); // 0x14
|
|
|
|
|
1158
|
waveform_picker_regs->status = 0x00; // 0x18
|
|
|
|
|
1159
|
//
|
|
|
|
|
1160
|
set_wfp_delta_snapshot(); // 0x1c
|
|
|
|
|
1161
|
set_wfp_delta_f0_f0_2(); // 0x20, 0x24
|
|
|
|
|
1162
|
set_wfp_delta_f1(); // 0x28
|
|
|
|
|
1163
|
set_wfp_delta_f2(); // 0x2c
|
|
|
|
|
1164
|
DEBUG_PRINTF1("delta_snapshot %x\n", waveform_picker_regs->delta_snapshot)
|
|
|
|
|
1165
|
DEBUG_PRINTF1("delta_f0 %x\n", waveform_picker_regs->delta_f0)
|
|
|
|
|
1166
|
DEBUG_PRINTF1("delta_f0_2 %x\n", waveform_picker_regs->delta_f0_2)
|
|
|
|
|
1167
|
DEBUG_PRINTF1("delta_f1 %x\n", waveform_picker_regs->delta_f1)
|
|
|
|
|
1168
|
DEBUG_PRINTF1("delta_f2 %x\n", waveform_picker_regs->delta_f2)
|
|
|
|
|
1169
|
// 2352 = 7 * 336
|
|
|
|
|
1170
|
waveform_picker_regs->nb_data_by_buffer = 0x92f; // 0x30 *** 2352 - 1 => nb samples -1
|
|
|
|
|
1171
|
waveform_picker_regs->snapshot_param = 0x930; // 0x34 *** 2352 => nb samples
|
|
|
|
|
1172
|
waveform_picker_regs->start_date = 0x00; // 0x38
|
|
|
|
|
1173
|
waveform_picker_regs->nb_word_in_buffer = 0x1b92; // 0x3c *** 2352 * 3 + 2 = 7058
|
|
|
|
|
1174
|
}
|
|
|
|
|
1175
|
|
|
|
|
|
1176
|
void set_wfp_data_shaping( void )
|
|
1100
|
{
|
|
1177
|
{
|
|
1101
|
/** This function sets the data_shaping register of the waveform picker module.
|
|
1178
|
/** This function sets the data_shaping register of the waveform picker module.
|
|
1102
|
*
|
|
1179
|
*
|
|
@@
-1112,56
+1189,14
void set_wfp_data_shaping()
|
|
1112
|
|
|
1189
|
|
|
1113
|
data_shaping = parameter_dump_packet.bw_sp0_sp1_r0_r1;
|
|
1190
|
data_shaping = parameter_dump_packet.bw_sp0_sp1_r0_r1;
|
|
1114
|
|
|
1191
|
|
|
1115
|
#ifdef GSA
|
|
|
|
|
1116
|
#else
|
|
|
|
|
1117
|
waveform_picker_regs->data_shaping =
|
|
1192
|
waveform_picker_regs->data_shaping =
|
|
1118
|
( (data_shaping & 0x10) >> 4 ) // BW
|
|
1193
|
( (data_shaping & 0x10) >> 4 ) // BW
|
|
1119
|
+ ( (data_shaping & 0x08) >> 2 ) // SP0
|
|
1194
|
+ ( (data_shaping & 0x08) >> 2 ) // SP0
|
|
1120
|
+ ( (data_shaping & 0x04) ) // SP1
|
|
1195
|
+ ( (data_shaping & 0x04) ) // SP1
|
|
1121
|
+ ( (data_shaping & 0x02) << 2 ) // R0
|
|
1196
|
+ ( (data_shaping & 0x02) << 2 ) // R0
|
|
1122
|
+ ( (data_shaping & 0x01) << 4 ); // R1
|
|
1197
|
+ ( (data_shaping & 0x01) << 4 ); // R1
|
|
1123
|
#endif
|
|
|
|
|
1124
|
}
|
|
1198
|
}
|
|
1125
|
|
|
1199
|
|
|
1126
|
char set_wfp_delta_snapshot()
|
|
|
|
|
1127
|
{
|
|
|
|
|
1128
|
/** This function sets the delta_snapshot register of the waveform picker module.
|
|
|
|
|
1129
|
*
|
|
|
|
|
1130
|
* The value is read from two (unsigned char) of the parameter_dump_packet structure:
|
|
|
|
|
1131
|
* - sy_lfr_n_swf_p[0]
|
|
|
|
|
1132
|
* - sy_lfr_n_swf_p[1]
|
|
|
|
|
1133
|
*
|
|
|
|
|
1134
|
*/
|
|
|
|
|
1135
|
|
|
|
|
|
1136
|
char ret;
|
|
|
|
|
1137
|
unsigned int delta_snapshot;
|
|
|
|
|
1138
|
unsigned int aux;
|
|
|
|
|
1139
|
|
|
|
|
|
1140
|
aux = 0;
|
|
|
|
|
1141
|
ret = LFR_DEFAULT;
|
|
|
|
|
1142
|
|
|
|
|
|
1143
|
delta_snapshot = parameter_dump_packet.sy_lfr_n_swf_p[0]*256
|
|
|
|
|
1144
|
+ parameter_dump_packet.sy_lfr_n_swf_p[1];
|
|
|
|
|
1145
|
|
|
|
|
|
1146
|
#ifdef GSA
|
|
|
|
|
1147
|
#else
|
|
|
|
|
1148
|
if ( delta_snapshot < MIN_DELTA_SNAPSHOT )
|
|
|
|
|
1149
|
{
|
|
|
|
|
1150
|
aux = MIN_DELTA_SNAPSHOT;
|
|
|
|
|
1151
|
ret = LFR_DEFAULT;
|
|
|
|
|
1152
|
}
|
|
|
|
|
1153
|
else
|
|
|
|
|
1154
|
{
|
|
|
|
|
1155
|
aux = delta_snapshot ;
|
|
|
|
|
1156
|
ret = LFR_SUCCESSFUL;
|
|
|
|
|
1157
|
}
|
|
|
|
|
1158
|
waveform_picker_regs->delta_snapshot = aux - 1; // max 2 bytes
|
|
|
|
|
1159
|
#endif
|
|
|
|
|
1160
|
|
|
|
|
|
1161
|
return ret;
|
|
|
|
|
1162
|
}
|
|
|
|
|
1163
|
|
|
|
|
|
1164
|
#ifdef VHDL_DEV
|
|
|
|
|
1165
|
void set_wfp_burst_enable_register( unsigned char mode )
|
|
1200
|
void set_wfp_burst_enable_register( unsigned char mode )
|
|
1166
|
{
|
|
1201
|
{
|
|
1167
|
/** This function sets the waveform picker burst_enable register depending on the mode.
|
|
1202
|
/** This function sets the waveform picker burst_enable register depending on the mode.
|
|
@@
-1196,267
+1231,63
void set_wfp_burst_enable_register( unsi
|
|
1196
|
break;
|
|
1231
|
break;
|
|
1197
|
}
|
|
1232
|
}
|
|
1198
|
}
|
|
1233
|
}
|
|
1199
|
#else
|
|
1234
|
|
|
1200
|
void set_wfp_burst_enable_register( unsigned char mode )
|
|
1235
|
void set_wfp_delta_snapshot( void )
|
|
1201
|
{
|
|
1236
|
{
|
|
1202
|
/** This function sets the waveform picker burst_enable register depending on the mode.
|
|
1237
|
/** This function sets the delta_snapshot register of the waveform picker module.
|
|
1203
|
*
|
|
|
|
|
1204
|
* @param mode is the LFR mode to launch.
|
|
|
|
|
1205
|
*
|
|
|
|
|
1206
|
* The burst bits shall be before the enable bits.
|
|
|
|
|
1207
|
*
|
|
1238
|
*
|
|
1208
|
*/
|
|
1239
|
* The value is read from two (unsigned char) of the parameter_dump_packet structure:
|
|
1209
|
|
|
1240
|
* - sy_lfr_n_swf_p[0]
|
|
1210
|
// [0000 0000] burst f2, f1, f0 enable f3 f2 f1 f0
|
|
1241
|
* - sy_lfr_n_swf_p[1]
|
|
1211
|
// the burst bits shall be set first, before the enable bits
|
|
|
|
|
1212
|
switch(mode) {
|
|
|
|
|
1213
|
case(LFR_MODE_NORMAL):
|
|
|
|
|
1214
|
waveform_picker_regs->burst_enable = 0x00; // [0000 0000] no burst enable
|
|
|
|
|
1215
|
waveform_picker_regs->burst_enable = 0x0f; // [0000 1111] enable f3 f2 f1 f0
|
|
|
|
|
1216
|
break;
|
|
|
|
|
1217
|
case(LFR_MODE_BURST):
|
|
|
|
|
1218
|
waveform_picker_regs->burst_enable = 0x40; // [0100 0000] f2 burst enabled
|
|
|
|
|
1219
|
waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x04; // [0100] enable f2
|
|
|
|
|
1220
|
break;
|
|
|
|
|
1221
|
case(LFR_MODE_SBM1):
|
|
|
|
|
1222
|
waveform_picker_regs->burst_enable = 0x20; // [0010 0000] f1 burst enabled
|
|
|
|
|
1223
|
waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x0f; // [1111] enable f3 f2 f1 f0
|
|
|
|
|
1224
|
break;
|
|
|
|
|
1225
|
case(LFR_MODE_SBM2):
|
|
|
|
|
1226
|
waveform_picker_regs->burst_enable = 0x40; // [0100 0000] f2 burst enabled
|
|
|
|
|
1227
|
waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x0f; // [1111] enable f3 f2 f1 f0
|
|
|
|
|
1228
|
break;
|
|
|
|
|
1229
|
default:
|
|
|
|
|
1230
|
waveform_picker_regs->burst_enable = 0x00; // [0000 0000] no burst enabled, no waveform enabled
|
|
|
|
|
1231
|
break;
|
|
|
|
|
1232
|
}
|
|
|
|
|
1233
|
}
|
|
|
|
|
1234
|
#endif
|
|
|
|
|
1235
|
|
|
|
|
|
1236
|
void reset_wfp_burst_enable()
|
|
|
|
|
1237
|
{
|
|
|
|
|
1238
|
/** This function resets the waveform picker burst_enable register.
|
|
|
|
|
1239
|
*
|
|
|
|
|
1240
|
* The burst bits [f2 f1 f0] and the enable bits [f3 f2 f1 f0] are set to 0.
|
|
|
|
|
1241
|
*
|
|
|
|
|
1242
|
*/
|
|
|
|
|
1243
|
|
|
|
|
|
1244
|
#ifdef VHDL_DEV
|
|
|
|
|
1245
|
waveform_picker_regs->run_burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
|
|
|
|
|
1246
|
#else
|
|
|
|
|
1247
|
waveform_picker_regs->burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
|
|
|
|
|
1248
|
#endif
|
|
|
|
|
1249
|
}
|
|
|
|
|
1250
|
|
|
|
|
|
1251
|
void reset_wfp_status()
|
|
|
|
|
1252
|
{
|
|
|
|
|
1253
|
/** This function resets the waveform picker status register.
|
|
|
|
|
1254
|
*
|
|
|
|
|
1255
|
* All status bits are set to 0 [new_err full_err full].
|
|
|
|
|
1256
|
*
|
|
1242
|
*
|
|
1257
|
*/
|
|
1243
|
*/
|
|
1258
|
|
|
1244
|
|
|
1259
|
#ifdef GSA
|
|
1245
|
unsigned int delta_snapshot;
|
|
1260
|
#else
|
|
1246
|
unsigned int delta_snapshot_in_T2;
|
|
1261
|
waveform_picker_regs->status = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
|
|
|
|
|
1262
|
#endif
|
|
|
|
|
1263
|
}
|
|
|
|
|
1264
|
|
|
1247
|
|
|
1265
|
void reset_waveform_picker_regs_vhdl_dev()
|
|
1248
|
delta_snapshot = parameter_dump_packet.sy_lfr_n_swf_p[0]*256
|
|
1266
|
{
|
|
1249
|
+ parameter_dump_packet.sy_lfr_n_swf_p[1];
|
|
1267
|
/** This function resets the waveform picker module registers.
|
|
1250
|
|
|
1268
|
*
|
|
1251
|
delta_snapshot_in_T2 = delta_snapshot * 256;
|
|
1269
|
* The registers affected by this function are located at the following offset addresses:
|
|
1252
|
waveform_picker_regs->delta_snapshot = delta_snapshot_in_T2; // max 4 bytes
|
|
1270
|
* - 0x00 data_shaping
|
|
|
|
|
1271
|
* - 0x04 run_burst_enable
|
|
|
|
|
1272
|
* - 0x08 addr_data_f0
|
|
|
|
|
1273
|
* - 0x0C addr_data_f1
|
|
|
|
|
1274
|
* - 0x10 addr_data_f2
|
|
|
|
|
1275
|
* - 0x14 addr_data_f3
|
|
|
|
|
1276
|
* - 0x18 status
|
|
|
|
|
1277
|
* - 0x1C delta_snapshot
|
|
|
|
|
1278
|
* - 0x20 delta_f0
|
|
|
|
|
1279
|
* - 0x24 delta_f0_2
|
|
|
|
|
1280
|
* - 0x28 delta_f1
|
|
|
|
|
1281
|
* - 0x2c delta_f2
|
|
|
|
|
1282
|
* - 0x30 nb_data_by_buffer
|
|
|
|
|
1283
|
* - 0x34 nb_snapshot_param
|
|
|
|
|
1284
|
* - 0x38 start_date
|
|
|
|
|
1285
|
* - 0x3c nb_word_in_buffer
|
|
|
|
|
1286
|
*
|
|
|
|
|
1287
|
*/
|
|
|
|
|
1288
|
waveform_picker_regs->data_shaping = 0x01; // 0x00 *** R1 R0 SP1 SP0 BW
|
|
|
|
|
1289
|
waveform_picker_regs->run_burst_enable = 0x00; // 0x04 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
|
|
|
|
|
1290
|
//waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); // 0x08
|
|
|
|
|
1291
|
waveform_picker_regs->addr_data_f0 = current_ring_node_f0->buffer_address; // 0x08
|
|
|
|
|
1292
|
waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address; // 0x0c
|
|
|
|
|
1293
|
waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; // 0x10
|
|
|
|
|
1294
|
waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a); // 0x14
|
|
|
|
|
1295
|
waveform_picker_regs->status = 0x00; // 0x18
|
|
|
|
|
1296
|
//
|
|
|
|
|
1297
|
waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c *** 4096 = 16 * 256
|
|
|
|
|
1298
|
waveform_picker_regs->delta_f0 = 0xc0b; // 0x20 *** 3083 = 4096 - 1013
|
|
|
|
|
1299
|
waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
|
|
|
|
|
1300
|
waveform_picker_regs->delta_f1 = 0xc40; // 0x28 *** 3136 = 4096 - 960
|
|
|
|
|
1301
|
waveform_picker_regs->delta_f2 = 0xc00; // 0x2c *** 3072 = 12 * 256
|
|
|
|
|
1302
|
//
|
|
|
|
|
1303
|
// waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c *** 4096 = 16 * 256
|
|
|
|
|
1304
|
// waveform_picker_regs->delta_f0 = 0x1; // 0x20 ***
|
|
|
|
|
1305
|
// waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
|
|
|
|
|
1306
|
// waveform_picker_regs->delta_f1 = 0x1; // 0x28 ***
|
|
|
|
|
1307
|
// waveform_picker_regs->delta_f2 = 0x1; // 0x2c ***
|
|
|
|
|
1308
|
//
|
|
|
|
|
1309
|
// waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c *** 4096 = 16 * 256
|
|
|
|
|
1310
|
// waveform_picker_regs->delta_f0 = 0x0fff; // 0x20 ***
|
|
|
|
|
1311
|
// waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
|
|
|
|
|
1312
|
// waveform_picker_regs->delta_f1 = 0x0fff; // 0x28 ***
|
|
|
|
|
1313
|
// waveform_picker_regs->delta_f2 = 0x1; // 0x2c ***
|
|
|
|
|
1314
|
// 2048
|
|
|
|
|
1315
|
// waveform_picker_regs->nb_data_by_buffer = 0x7ff; // 0x30 *** 2048 -1 => nb samples -1
|
|
|
|
|
1316
|
// waveform_picker_regs->snapshot_param = 0x800; // 0x34 *** 2048 => nb samples
|
|
|
|
|
1317
|
// waveform_picker_regs->start_date = 0x00; // 0x38
|
|
|
|
|
1318
|
// waveform_picker_regs->nb_word_in_buffer = 0x1802; // 0x3c *** 2048 * 3 + 2 = 6146
|
|
|
|
|
1319
|
// 2352 = 7 * 336
|
|
|
|
|
1320
|
// waveform_picker_regs->nb_data_by_buffer = 0x92f; // 0x30 *** 2352 - 1 => nb samples -1
|
|
|
|
|
1321
|
// waveform_picker_regs->snapshot_param = 0x930; // 0x34 *** 2352 => nb samples
|
|
|
|
|
1322
|
// waveform_picker_regs->start_date = 0x00; // 0x38
|
|
|
|
|
1323
|
// waveform_picker_regs->nb_word_in_buffer = 0x1b92; // 0x3c *** 2352 * 3 + 2 = 7058
|
|
|
|
|
1324
|
// 128
|
|
|
|
|
1325
|
waveform_picker_regs->nb_data_by_buffer = 0x7f; // 0x30 *** 128 - 1 => nb samples -1
|
|
|
|
|
1326
|
waveform_picker_regs->snapshot_param = 0x80; // 0x34 *** 128 => nb samples
|
|
|
|
|
1327
|
waveform_picker_regs->start_date = 0x00; // 0x38
|
|
|
|
|
1328
|
waveform_picker_regs->nb_word_in_buffer = 0x182; // 0x3c *** 128 * 3 + 2 = 386
|
|
|
|
|
1329
|
}
|
|
1253
|
}
|
|
1330
|
|
|
1254
|
|
|
1331
|
void reset_waveform_picker_regs_vhdl_dev_debug()
|
|
1255
|
void set_wfp_delta_f0_f0_2( void )
|
|
1332
|
{
|
|
1256
|
{
|
|
1333
|
/** This function resets the waveform picker module registers.
|
|
1257
|
unsigned int delta_snapshot;
|
|
1334
|
*
|
|
1258
|
unsigned int nb_samples_per_snapshot;
|
|
1335
|
* The registers affected by this function are located at the following offset addresses:
|
|
1259
|
float delta_f0_in_float;
|
|
1336
|
* - 0x00 data_shaping
|
|
1260
|
|
|
1337
|
* - 0x04 run_burst_enable
|
|
1261
|
delta_snapshot = waveform_picker_regs->delta_snapshot;
|
|
1338
|
* - 0x08 addr_data_f0
|
|
1262
|
nb_samples_per_snapshot = parameter_dump_packet.sy_lfr_n_swf_l[0] * 256 + parameter_dump_packet.sy_lfr_n_swf_l[1];
|
|
1339
|
* - 0x0C addr_data_f1
|
|
1263
|
delta_f0_in_float =nb_samples_per_snapshot / 2. * ( 1. / 256. - 1. / 24576.) * 256.;
|
|
1340
|
* - 0x10 addr_data_f2
|
|
1264
|
|
|
1341
|
* - 0x14 addr_data_f3
|
|
1265
|
waveform_picker_regs->delta_f0 = delta_snapshot - floor( delta_f0_in_float );
|
|
1342
|
* - 0x18 status
|
|
1266
|
waveform_picker_regs->delta_f0_2 = 0x7; // max 7 bits
|
|
1343
|
* - 0x1C delta_snapshot
|
|
|
|
|
1344
|
* - 0x20 delta_f0
|
|
|
|
|
1345
|
* - 0x24 delta_f0_2
|
|
|
|
|
1346
|
* - 0x28 delta_f1
|
|
|
|
|
1347
|
* - 0x2c delta_f2
|
|
|
|
|
1348
|
* - 0x30 nb_data_by_buffer
|
|
|
|
|
1349
|
* - 0x34 nb_snapshot_param
|
|
|
|
|
1350
|
* - 0x38 start_date
|
|
|
|
|
1351
|
* - 0x3c nb_word_in_buffer
|
|
|
|
|
1352
|
*
|
|
|
|
|
1353
|
*/
|
|
|
|
|
1354
|
waveform_picker_regs->data_shaping = 0x01; // 0x00 *** R1 R0 SP1 SP0 BW
|
|
|
|
|
1355
|
waveform_picker_regs->run_burst_enable = 0x00; // 0x04 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
|
|
|
|
|
1356
|
//waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); // 0x08
|
|
|
|
|
1357
|
waveform_picker_regs->addr_data_f0 = current_ring_node_f0->buffer_address; // 0x08
|
|
|
|
|
1358
|
waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address; // 0x0c
|
|
|
|
|
1359
|
waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; // 0x10
|
|
|
|
|
1360
|
waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a); // 0x14
|
|
|
|
|
1361
|
waveform_picker_regs->status = 0x00; // 0x18
|
|
|
|
|
1362
|
//
|
|
|
|
|
1363
|
waveform_picker_regs->delta_snapshot = 0x100; // 0x1c *** 256
|
|
|
|
|
1364
|
waveform_picker_regs->delta_f0 = 0xc1; // 0x20 *** 256 - 63
|
|
|
|
|
1365
|
waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
|
|
|
|
|
1366
|
waveform_picker_regs->delta_f1 = 0xc4; // 0x28 *** 256 - 60
|
|
|
|
|
1367
|
waveform_picker_regs->delta_f2 = 0xc0; // 0x2c *** 192
|
|
|
|
|
1368
|
// 128
|
|
|
|
|
1369
|
waveform_picker_regs->nb_data_by_buffer = 0x7f; // 0x30 *** 128 - 1 => nb samples -1
|
|
|
|
|
1370
|
waveform_picker_regs->snapshot_param = 0x80; // 0x34 *** 128 => nb samples
|
|
|
|
|
1371
|
waveform_picker_regs->start_date = 0x00; // 0x38
|
|
|
|
|
1372
|
waveform_picker_regs->nb_word_in_buffer = 0x182; // 0x3c *** 128 * 3 + 2 = 386
|
|
|
|
|
1373
|
}
|
|
1267
|
}
|
|
1374
|
|
|
1268
|
|
|
1375
|
void reset_waveform_picker_regs_vhdl_dev_debug_64()
|
|
1269
|
void set_wfp_delta_f1( void )
|
|
1376
|
{
|
|
1270
|
{
|
|
1377
|
/** This function resets the waveform picker module registers.
|
|
1271
|
unsigned int delta_snapshot;
|
|
1378
|
*
|
|
1272
|
unsigned int nb_samples_per_snapshot;
|
|
1379
|
* The registers affected by this function are located at the following offset addresses:
|
|
1273
|
float delta_f1_in_float;
|
|
1380
|
* - 0x00 data_shaping
|
|
1274
|
|
|
1381
|
* - 0x04 run_burst_enable
|
|
1275
|
delta_snapshot = waveform_picker_regs->delta_snapshot;
|
|
1382
|
* - 0x08 addr_data_f0
|
|
1276
|
nb_samples_per_snapshot = parameter_dump_packet.sy_lfr_n_swf_l[0] * 256 + parameter_dump_packet.sy_lfr_n_swf_l[1];
|
|
1383
|
* - 0x0C addr_data_f1
|
|
1277
|
delta_f1_in_float = nb_samples_per_snapshot / 2. * ( 1. / 256. - 1. / 4096.) * 256.;
|
|
1384
|
* - 0x10 addr_data_f2
|
|
1278
|
|
|
1385
|
* - 0x14 addr_data_f3
|
|
1279
|
waveform_picker_regs->delta_f1 = delta_snapshot - floor( delta_f1_in_float );
|
|
1386
|
* - 0x18 status
|
|
|
|
|
1387
|
* - 0x1C delta_snapshot
|
|
|
|
|
1388
|
* - 0x20 delta_f0
|
|
|
|
|
1389
|
* - 0x24 delta_f0_2
|
|
|
|
|
1390
|
* - 0x28 delta_f1
|
|
|
|
|
1391
|
* - 0x2c delta_f2
|
|
|
|
|
1392
|
* - 0x30 nb_data_by_buffer
|
|
|
|
|
1393
|
* - 0x34 nb_snapshot_param
|
|
|
|
|
1394
|
* - 0x38 start_date
|
|
|
|
|
1395
|
* - 0x3c nb_word_in_buffer
|
|
|
|
|
1396
|
*
|
|
|
|
|
1397
|
*/
|
|
|
|
|
1398
|
waveform_picker_regs->data_shaping = 0x01; // 0x00 *** R1 R0 SP1 SP0 BW
|
|
|
|
|
1399
|
waveform_picker_regs->run_burst_enable = 0x00; // 0x04 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
|
|
|
|
|
1400
|
//waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); // 0x08
|
|
|
|
|
1401
|
waveform_picker_regs->addr_data_f0 = current_ring_node_f0->buffer_address; // 0x08
|
|
|
|
|
1402
|
waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address; // 0x0c
|
|
|
|
|
1403
|
waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; // 0x10
|
|
|
|
|
1404
|
waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a); // 0x14
|
|
|
|
|
1405
|
waveform_picker_regs->status = 0x00; // 0x18
|
|
|
|
|
1406
|
//
|
|
|
|
|
1407
|
waveform_picker_regs->delta_snapshot = 0x80; // 0x1c *** 128
|
|
|
|
|
1408
|
waveform_picker_regs->delta_f0 = 0x60; // 0x20 *** 128 - 32 = 96
|
|
|
|
|
1409
|
waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
|
|
|
|
|
1410
|
waveform_picker_regs->delta_f1 = 0x62; // 0x28 *** 128 - 30 = 90
|
|
|
|
|
1411
|
waveform_picker_regs->delta_f2 = 0x60; // 0x2c *** 192
|
|
|
|
|
1412
|
// 128
|
|
|
|
|
1413
|
waveform_picker_regs->nb_data_by_buffer = 0x3f; // 0x30 *** 64 - 1 => nb samples -1
|
|
|
|
|
1414
|
waveform_picker_regs->snapshot_param = 0x40; // 0x34 *** 64 => nb samples
|
|
|
|
|
1415
|
waveform_picker_regs->start_date = 0x00; // 0x38
|
|
|
|
|
1416
|
waveform_picker_regs->nb_word_in_buffer = 0xc2; // 0x3c *** 64 * 3 + 2 = 194
|
|
|
|
|
1417
|
}
|
|
1280
|
}
|
|
1418
|
|
|
1281
|
|
|
1419
|
void reset_waveform_picker_regs()
|
|
1282
|
void set_wfp_delta_f2()
|
|
1420
|
{
|
|
1283
|
{
|
|
1421
|
/** This function resets the waveform picker module registers.
|
|
1284
|
unsigned int delta_snapshot;
|
|
1422
|
*
|
|
1285
|
unsigned int nb_samples_per_snapshot;
|
|
1423
|
* The registers affected by this function are located at the following offset addresses:
|
|
|
|
|
1424
|
* - 0x00 data_shaping
|
|
|
|
|
1425
|
* - 0x04 burst_enable
|
|
|
|
|
1426
|
* - 0x08 addr_data_f0
|
|
|
|
|
1427
|
* - 0x0C addr_data_f1
|
|
|
|
|
1428
|
* - 0x10 addr_data_f2
|
|
|
|
|
1429
|
* - 0x14 addr_data_f3
|
|
|
|
|
1430
|
* - 0x18 status
|
|
|
|
|
1431
|
* - 0x1C delta_snapshot
|
|
|
|
|
1432
|
* - 0x20 delta_f2_f1
|
|
|
|
|
1433
|
* - 0x24 delta_f2_f0
|
|
|
|
|
1434
|
* - 0x28 nb_burst
|
|
|
|
|
1435
|
* - 0x2C nb_snapshot
|
|
|
|
|
1436
|
*
|
|
|
|
|
1437
|
*/
|
|
|
|
|
1438
|
|
|
1286
|
|
|
1439
|
#ifdef VHDL_DEV
|
|
1287
|
delta_snapshot = waveform_picker_regs->delta_snapshot;
|
|
1440
|
#else
|
|
1288
|
nb_samples_per_snapshot = parameter_dump_packet.sy_lfr_n_swf_l[0] * 256 + parameter_dump_packet.sy_lfr_n_swf_l[1];
|
|
1441
|
reset_wfp_burst_enable();
|
|
1289
|
|
|
1442
|
reset_wfp_status();
|
|
1290
|
waveform_picker_regs->delta_f2 = delta_snapshot - nb_samples_per_snapshot / 2;
|
|
1443
|
// set buffer addresses
|
|
|
|
|
1444
|
waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0);
|
|
|
|
|
1445
|
waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address;
|
|
|
|
|
1446
|
waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
|
|
|
|
|
1447
|
waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a);
|
|
|
|
|
1448
|
// set other parameters
|
|
|
|
|
1449
|
set_wfp_data_shaping();
|
|
|
|
|
1450
|
set_wfp_delta_snapshot(); // time in seconds between two snapshots
|
|
|
|
|
1451
|
waveform_picker_regs->delta_f2_f1 = 0xffff; // 0x16800 => 92160 (max 4 bytes)
|
|
|
|
|
1452
|
waveform_picker_regs->delta_f2_f0 = 0x17c00; // 97 280 (max 5 bytes)
|
|
|
|
|
1453
|
// waveform_picker_regs->nb_burst_available = 0x180; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets)
|
|
|
|
|
1454
|
// // 3 * 2048 / 16 = 384
|
|
|
|
|
1455
|
// waveform_picker_regs->nb_snapshot_param = 0x7ff; // max 3 octets, 2048 - 1
|
|
|
|
|
1456
|
waveform_picker_regs->nb_burst_available = 0x1b9; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets)
|
|
|
|
|
1457
|
// 3 * 2352 / 16 = 441
|
|
|
|
|
1458
|
waveform_picker_regs->nb_snapshot_param = 0x944; // max 3 octets, 2372 - 1
|
|
|
|
|
1459
|
#endif
|
|
|
|
|
1460
|
}
|
|
1291
|
}
|
|
1461
|
|
|
1292
|
|
|
1462
|
//*****************
|
|
1293
|
//*****************
|