fosstodon.org is one of the many independent Mastodon servers you can use to participate in the fediverse.
Fosstodon is an invite only Mastodon instance that is open to those who are interested in technology; particularly free & open source software. If you wish to join, contact us for an invite.

Administered by:

Server stats:

10K
active users

PipelineC

Say I am debugging an project on the of pico-ice board. I want to know the contents of some registers down in my design (which destination MAC address my tried to transmit). I don't want to use manufacturer specific ILAs and don't want to hand route a bunch of debug signals to my top level for external equipment I don't have.

In PipelineC just assign to a globally visible debug probe wire:
github.com/JulianKemmerer/Pipe

From there the bytes of probe data are shipped over UART to a host PC. A simple C program reading UART bytes displays your data:

How do you configure this? You define a type and a method for printing the data to console. The struct type is shared between software C and hardware PipelineC. Upon receiving bytes for your probe they are converted to your struct type and printed as specified.

How does the hardware work? The probes can be in any clock domain and cdc over to the UART clock is handled for you with small FIFOs. Upon receiving the read enable pulse from the control program on the host PC, hardware responds over UART with the sample bytes from your debug probe. This hardware is all included for you as a pipelinec library.