Changes between Version 4 and Version 5 of WARPLab/Reference/TriggerManager/TriggerProcessor
- Timestamp:
- Mar 13, 2015, 12:36:38 PM (9 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WARPLab/Reference/TriggerManager/TriggerProcessor
v4 v5 170 170 171 171 172 == Command List and Documentation == 172 == Command List and Documentation == 173 173 174 === {{{add_ethernet_trigger}}} === 174 175 Associates node to a trigger input[[BR]] … … 180 181 181 182 183 182 184 === {{{delete_ethernet_trigger}}} === 183 De associates node to a trigger input[[BR]]185 De-associates node to a trigger input[[BR]] 184 186 185 187 … … 187 189 188 190 '''Returns:''' none 191 189 192 190 193 … … 198 201 199 202 203 204 === {{{set_ethernet_trigger_type}}} === 205 Set the Ethernet trigger type[[BR]] 206 207 In WARP v3, the ability was added to the trigger manager to "sniff" the axi stream between the Ethernet controller and the AXI interface to the Ethernet controller, such as the AXI DMA or AXI FIFO. This allows for more predictable timing for Ethernet triggers since it does not depend on any SW interaction. However, this feature could not be added to the WARP v2 trigger manager due to differences in Ethernet components. Therefore, in reference designs since this feature was introduced, WARP v3 has used hardware for Ethernet triggers while WARP v2 has used software.[[BR]] 208 209 Unfortunately, this introduced a large timing difference between WARP v2 and WARP v3 when asserting the Ethernet trigger within the node in response to a broadcast Ethernet trigger. This adds a complication to experiments involving a mix of WARP v2 and WARP v3 nodes. Therefore, trigger manager 210 v1.04.a addressed this by being able to select between using the hardware capabilities WARP v3 or using software, like WARP v2, for Ethernet triggers.[[BR]] 211 212 This command allows users to set whether the WARP v3 node uses hardware or software for Ethernet triggers. Since WARP v2 does not support using hardware for Ethernet triggers, this command does nothing. 213 214 215 '''Arguments:''' (TRIGGER_TYPE: 'hardware' or 'software') 216 217 '''Returns:''' none 218 219 220 200 221 === {{{get_ethernet_trigger}}} === 201 222 Reads current trigger association from node[[BR]] … … 204 225 '''Arguments:''' node 205 226 206 '''Returns:''' (uint32 TRIGGER_ASSOCIATION) 207 TRIGGER_ASSOCIATION: bit-wise AND of associated[[BR]]208 trigger IDs[[BR]] 227 '''Returns:''' (uint32 TRIGGER_ASSOCIATION)[[BR]] 228 TRIGGER_ASSOCIATION: bit-wise AND of associated trigger IDs[[BR]] 229 209 230 210 231 … … 216 237 '''Returns:''' none 217 238 218 OUTPUTS: vector of output trigger IDs, provided by[[BR]] 219 wl_getTriggerOutputIDs[[BR]] 220 221 OR_INPUTS: vector of input trigger IDs, provided by[[BR]] 222 wl_getTriggerInputIDs. Any triggers in[[BR]] 223 this vector that assert will cause the[[BR]] 224 output trigger to assert.[[BR]] 225 226 AND_INPUTS: vector of input trigger IDs, provided by[[BR]] 227 wl_getTriggerInputIDs. Only if all triggers[[BR]] 228 in this vector assert will the output [[BR]] 229 trigger assert. [[BR]] 230 231 Usage note: This command replaces the current input[[BR]] 232 selection on the board. Previous state is not saved.[[BR]] 239 OUTPUTS: vector of output trigger IDs, provided by wl_getTriggerOutputIDs[[BR]] 240 241 OR_INPUTS: vector of input trigger IDs, provided by wl_getTriggerInputIDs. Any triggers in this vector that assert will cause the output trigger to assert.[[BR]] 242 243 AND_INPUTS: vector of input trigger IDs, provided by wl_getTriggerInputIDs. Only if all triggers in this vector assert will the output trigger assert. [[BR]] 244 245 NOTE: This command replaces the current input selection on the board. The previous state is not saved.[[BR]] 246 233 247 234 248 235 249 === {{{output_config_delay}}} === 236 Configures specified output triggers to be have an[[BR]] 237 additional delay relative to their inputs[[BR]] 250 Configures specified output triggers to be have an additional delay relative to their inputs[[BR]] 238 251 239 252 … … 242 255 '''Returns:''' none 243 256 244 OUTPUTS: vector of output trigger IDs, provided by[[BR]] 245 wl_getTriggerOutputIDs[[BR]] 246 247 DELAY_NS: scalar value of the intended delay,[[BR]] 248 specified in nanoseconds (1e-9 seconds)[[BR]] 257 OUTPUTS: vector of output trigger IDs, provided by wl_getTriggerOutputIDs[[BR]] 258 259 DELAY_NS: scalar value of the intended delay, specified in nanoseconds (1e-9 seconds)[[BR]] 260 249 261 250 262 251 263 === {{{output_config_hold_mode}}} === 252 Configures whether specified output triggers should[[BR]] 253 hold their outputs once triggered[[BR]] 264 Configures whether specified output triggers should hold their outputs once triggered[[BR]] 254 265 255 266 … … 258 269 '''Returns:''' none 259 270 260 OUTPUTS: vector of output trigger IDs, provided by[[BR]] 261 wl_getTriggerOutputIDs[[BR]] 271 OUTPUTS: vector of output trigger IDs, provided by wl_getTriggerOutputIDs[[BR]] 262 272 263 273 MODE: 'enable' or 'disable'[[BR]] 264 274 265 275 276 266 277 === {{{output_state_read}}} === 267 Reads current state of output triggers. Note: this[[BR]] 268 command is intended to be used on output triggers[[BR]] 269 that have enabled their hold mode.[[BR]] 278 Reads current state of output triggers. Note: this command is intended to be used on output triggers that have enabled their hold mode.[[BR]] 270 279 271 280 … … 274 283 '''Returns:''' (bool STATES) 275 284 276 OUTPUTS: vector of output trigger IDs, provided by[[BR]] 277 wl_getTriggerOutputIDs[[BR]] 278 279 STATES: vector of (true, false) trigger states[[BR]] 280 corresponding to state of OUTPUTS vector[[BR]] 285 OUTPUTS: vector of output trigger IDs, provided by wl_getTriggerOutputIDs[[BR]] 286 287 STATES: vector of (true, false) trigger states corresponding to state of OUTPUTS vector[[BR]] 288 281 289 282 290 … … 289 297 '''Returns:''' none 290 298 291 OUTPUTS: vector of output trigger IDs, provided by[[BR]] 292 wl_getTriggerOutputIDs[[BR]] 299 OUTPUTS: vector of output trigger IDs, provided by wl_getTriggerOutputIDs[[BR]] 293 300 294 301 295 302 296 303 === {{{input_config_enable_selection}}} === 297 Configures specified input triggers to be enabled[[BR]] 298 as inputs that feed the trigger manager core.[[BR]] 299 Note: This command disables all inputs before[[BR]] 300 enabling the selected inputs -- no previous state is[[BR]] 301 stored in the node.[[BR]] 304 Configures specified input triggers to be enabled as inputs that feed the trigger manager core.[[BR]] 305 Note: This command disables all inputs before enabling the selected inputs -- no previous state is stored in the node.[[BR]] 302 306 303 307 … … 306 310 '''Returns:''' none 307 311 308 INPUTS: vector of output trigger IDs, provided by [[BR]]309 wl_getTriggerInputIDs[[BR]] 312 INPUTS: vector of output trigger IDs, provided by wl_getTriggerInputIDs[[BR]] 313 310 314 311 315 312 316 === {{{input_config_debounce_mode}}} === 313 Configures specified input triggers to enable or[[BR]] 314 disable debounce circuit. Note: debounce circuit adds[[BR]] 315 delay of 4 cycles, where each cycle is a duration[[BR]] 316 specified in the delayStep_ns property of the[[BR]] 317 wl_manager_proc.m class.[[BR]] 317 Configures specified input triggers to enable or disable debounce circuit. Note: debounce circuit adds delay of 4 cycles, where each cycle is a duration specified in the input_delayStep_ns property of the wl_trigger_manager_proc.m class.[[BR]] 318 318 319 319 … … 322 322 '''Returns:''' none 323 323 324 INPUTS: vector of output trigger IDs, provided by[[BR]] 325 wl_getTriggerInputIDs[[BR]] 324 INPUTS: vector of output trigger IDs, provided by wl_getTriggerInputIDs[[BR]] 326 325 327 326 MODE: 'enable' or 'disable'[[BR]] 328 327 329 328 329 330 === {{{input_config_delay}}} === 331 Configures specified input triggers to be have an additional delay relative to their inputs[[BR]] 332 333 334 '''Arguments:''' (uint32 INPUTS), (double DELAY_NS) 335 336 '''Returns:''' none 337 338 INPUTS: vector of input trigger IDs, provided by wl_getTriggerInputIDs[[BR]] 339 340 DELAY_NS: scalar value of the intended delay, specified in nanoseconds (1e-9 seconds)[[BR]] 341 342 343 330 344 === {{{energy_config_busy_threshold}}} === 331 Configures the threshold above which RSSI is[[BR]] 332 considered as a "busy" medium.[[BR]] 345 Configures the threshold above which RSSI is considered as a "busy" medium.[[BR]] 333 346 334 347 … … 337 350 '''Returns:''' none 338 351 339 THRESH: busy threshold. For the MAX2829-based[[BR]] 340 interfaces, WARP uses a 10-bit ADC for[[BR]] 341 RSSI (range of ![0,1023]).[[BR]] 342 343 Note: RSSI averaging in the core does NOT divide by[[BR]] 344 the number of samples that are summed together.[[BR]] 345 Averaging by N cycles means that the maximum possible[[BR]] 346 RSSI post-averaging is N*1023.[[BR]] 352 THRESH: busy threshold. For the MAX2829-based interfaces, WARP uses a 10-bit ADC for RSSI (range of ![0,1023]).[[BR]] 353 354 Note: RSSI averaging in the core does NOT divide by the number of samples that are summed together. Averaging by N cycles means that the maximum possible RSSI post-averaging is N*1023.[[BR]] 355 347 356 348 357 349 358 === {{{energy_config_average_length}}} === 350 Configures the number of samples over which RSSI is[[BR]] 351 averaged before it is compared to any threshold.[[BR]] 359 Configures the number of samples over which RSSI is averaged before it is compared to any threshold.[[BR]] 352 360 353 361 … … 356 364 '''Returns:''' none 357 365 358 LENGTH: Number of samples over which RSSI is[[BR]] 359 averaged.[[BR]] 360 361 Note: For all hardware versions, RSSI is sampled at[[BR]] 362 10 MHz. Each sample is, therefore, 100 ns.[[BR]] 366 LENGTH: Number of samples over which RSSI is averaged.[[BR]] 367 368 Note: For all hardware versions, RSSI is sampled at 10 MHz. Each sample is, therefore, 100 ns.[[BR]] 369 363 370 364 371 365 372 === {{{energy_config_busy_minlength}}} === 366 Average RSSI samples must exceed the busy threshold[[BR]] 367 for a minimum number of samples before the trigger is[[BR]] 368 activated. This command sets this minimum value.[[BR]] 373 Average RSSI samples must exceed the busy threshold for a minimum number of samples before the trigger is activated. This command sets this minimum value.[[BR]] 369 374 370 375 … … 373 378 '''Returns:''' none 374 379 375 LENGTH: Minimum number of samples that RSSI must [[BR]]376 be busy before trigger is raised.[[BR]] 380 LENGTH: Minimum number of samples that RSSI must be busy before trigger is raised.[[BR]] 381 377 382 378 383 379 384 === {{{energy_config_interface_selection}}} === 380 Selects the interfaces from which energy detection[[BR]] 381 should base its decision[[BR]] 385 Selects the interfaces from which energy detection should base its decision[[BR]] 382 386 383 387 … … 386 390 '''Returns:''' none 387 391 388 IFCSELECTION: One or more interfaces that the[[BR]] 389 energy detector system should[[BR]] 390 monitor[[BR]] 391 392 Note: IFCSELECTION is intended to be used with the[[BR]] 393 return values from the wl_getInterfaceIDs method.[[BR]] 392 IFCSELECTION: One or more interfaces that the energy detector system should monitor[[BR]] 393 394 Note: IFCSELECTION is intended to be used with the return values from the wl_getInterfaceIDs method.[[BR]] 395 394 396 395 397 … … 401 403 402 404 '''Returns:''' none 405