PipelineC's Avatar

PipelineC

@pipelinec.bsky.social

PipelineC Hardware Description Language An easy to understand hardware description language with a powerful autopipelining compiler and growing set of real life design inspired features. github.com/JulianKemmerer/PipelineC https://discord.gg/Aupm3DDrK2

114 Followers  |  23 Following  |  50 Posts  |  Joined: 17.11.2024
Posts Following

Posts by PipelineC (@pipelinec.bsky.social)

shared resource bus diagram

shared resource bus diagram

Existing libraries help: memory mapping is as simple as a struct. All stitched together with valid ready handshaking 'streams'. Writes done over StreamSoC's AXI-Lite like 'shared resource bus' that comes with helper FSMs

github.com/JulianKemmer...

#hardware #fpga #rtl #hls #hdl #graphics #gpu #cpu

13.02.2026 21:53 — 👍 2    🔁 0    💎 0    📌 0
Post image Post image

Easy: draw_rect_t struct shared between embedded C software and PipelineC hardware. Mem mapped registers enqueue into command FIFO. Small hardware FSM reads from cmd FIFO does simple iteration to draw a rect of pixels.

github.com/JulianKemmer...

#hardware #fpga #rtl #hls #hdl #graphics #gpu #cpu

13.02.2026 21:51 — 👍 2    🔁 0    💎 1    📌 0
streamsoc new 2d drawing block

streamsoc new 2d drawing block

Is a hardware FSM that draws rectangles to a frame buffer a GPU? Well whatever you call it, it's no longer the CPU pushing pixels in the PipelineC StreamSoC design. Now it sends 'draw rectangle' commands to hardware. And how? #hardware #fpga #rtl #hls #hdl #graphics #gpu #cpu

13.02.2026 21:47 — 👍 1    🔁 0    💎 1    📌 0
Preview
Results from the Advent of FPGA Challenge At the end of last year, we decided to try something new: achallenge that would runalongside Advent of Code, where we asked the community toshow us how they ...

Make sure to see all the other neat Advent of FPGA solutions that Jane Street highlighted too!

blog.janestreet.com/advent-of-fp...

12.02.2026 17:14 — 👍 1    🔁 0    💎 0    📌 0
aof banner

aof banner

Check out PipelineC #HDL Advent of FPGA #hardware solutions: high perf, deeply pipelined, multiple #FPGA platforms, 10's Gbit per sec throughput, easily scales: variable latency off chip mem, faster off chip IO and more resources.

github.com/JulianKemmer...

#rtl #hls #verilog #vhdl #asic #eda

12.02.2026 17:13 — 👍 2    🔁 0    💎 1    📌 0

Advent of Code Day 5: Iterates over RAM holding fresh ID ranges. Autopipeline checks N IDs against M ranges each cycle. Easily does N=3,M=2 at ~235MHz, ~1.4 billion ID-in-range checks computed per sec 😎

github.com/JulianKemmer...

#aoc25 #fpga #hardware #verilog #vhdl #hdl #rtl #hls #asic #eda

03.01.2026 16:09 — 👍 1    🔁 0    💎 0    📌 0

Advent of Code Day 7: very simple design, good intro to #pipelinec. processing all ~hundreds of elements of an entire line each cycle. ~600 million to ~5.3 billion tachyon beams splitting per second. 😎

github.com/JulianKemmer...

#aoc25 #fpga #hardware #verilog #vhdl #hdl #rtl #hls #asic #eda

01.01.2026 19:56 — 👍 1    🔁 0    💎 0    📌 0

Advent of Code Day 4: video-like stream of 'pixel' data to a sliding 3x3 window via line buffer fifos. Auto pipeline for kernel function (counting neighbors), ~150M windows per sec. github.com/JulianKemmer...

#fpga #rtl #hdl #hls #aoc25

26.12.2025 19:36 — 👍 2    🔁 0    💎 0    📌 0

Advent of Code Day 9: Iterates over RAM holding points. Autopipeline computes N rectangle areas per clock cycle and finds max. Easily does N=4 at ~100MHz with few pipeline stages, ~400M rect areas computed per sec 🎄

github.com/JulianKemmer...

#fpga #rtl #hdl #hls #aoc25

22.12.2025 15:03 — 👍 1    🔁 0    💎 0    📌 0

Advent of Code Day 3 pipelined no back pressure. N ascii chars as input each cycle. finding max pair of digits pipelined arbitrarily. 8 chars of input each cycle? no problem to get FMAX of 100+MHz.

~1 Gbyte per sec of ascii could be processed 😎 🎄
github.com/JulianKemmer... #aoc25 #fpga #hdl #hls

20.12.2025 16:40 — 👍 1    🔁 0    💎 0    📌 0

Advent of Code 2025 Day 2 in FPGA ðŸĪ“

github.com/JulianKemmer...

#fpga #hardware #verilog #vhdl #hdl #rtl #hls #asic #eda

04.12.2025 03:41 — 👍 1    🔁 0    💎 0    📌 0
Software, FPGA Execution, a PipelineC response

"How do FPGAs execute blocking assignments in one clock cycle?"

Is the perfect question to frame common learning curve hurdles that folks need to get over when learning HDL.

www.reddit.com/r/FPGA/comme...

#fpga #hardware #verilog #vhdl #hdl #rtl #hls #asic #eda

07.08.2025 21:37 — 👍 2    🔁 1    💎 0    📌 0
Preview
From the FPGA community on Reddit: How to send a struct from one dev board to another? Explore this post and more from the FPGA community

How to send a struct from one dev board to another? A PipelineC Story

#hdl #hls #RTL #fpga #ethernet #i2s #hardware

www.reddit.com/r/FPGA/comme...

24.07.2025 21:24 — 👍 0    🔁 0    💎 0    📌 0
jtag-xvc - Glasgow Interface ExplorerContentsMenuExpandLight modeDark modeAuto light/dark, in light modeAuto light/dark, in dark mode

implemented a xilinx virtual cable applet. this way you can connect vivado to glasgow and program any supported FPGA

glasgow-embedded.org/latest/apple...

22.05.2025 05:51 — 👍 27    🔁 3    💎 0    📌 0
FuryGpu

Heh not there yet ðŸĪŠ

Leave it to awesome folks like this guy 😏 www.furygpu.com

28.04.2025 15:18 — 👍 0    🔁 0    💎 0    📌 0

Yes that python running hardware has been all over this morning - super cool! Reminds me of some java/lisp machines from back in the day!

Also saw this Python to Digital Logic work today too - reminds me a smidge of pipelinec ðŸĪ“ repository.lincoln.ac.uk/articles/con...

28.04.2025 15:09 — 👍 0    🔁 0    💎 1    📌 0

Oh wow I didnt recall us speaking - but your post did remind me of that old desire for posix in hardware of some kind ðŸĪ“ Good to hear you are still around looking at cool things too!

28.04.2025 15:07 — 👍 0    🔁 0    💎 0    📌 0

#FPGA Congrats to Prof. Jason Cong, for Chuck Thacker Breakthrough in Computing Award, recognized for "fundamental contributions to the design and automation of field-programmable systems and customizable computing".

insidehpc.com/2025/04/jaso...

C-to-gates was a dream until Cong made it real.

09.04.2025 15:52 — 👍 10    🔁 4    💎 1    📌 0
Post image

Check out @dutracgi@mastodon.radio 's very cool #16APSK #FPGA Modulator written in #PipelineC #HDL !
#dsp #sdr #rf #apsk #dac #deltasigma #space #qam #radio #hardware www.linkedin.com/pulse/16-aps...

14.03.2025 15:19 — 👍 4    🔁 1    💎 0    📌 0

Will this (fpga+cpu+graphics) make it into a projectf tutorial somewhere? Seems like everyone wants to make their own GPU and this feels like a perfect intro ðŸĪ“

09.03.2025 16:35 — 👍 2    🔁 0    💎 1    📌 0

yeah 'set the clock too high' build to evaluate fmax is something the pipelinec tool does as well. But be careful some tools, if given a large design with a goal too high they will give up early and you won't get representative fmax out.

09.03.2025 16:27 — 👍 1    🔁 0    💎 1    📌 0

Id say its this reasoning that the tools don't tell you fmax. Most users have a target and just want to know if they made it there or not ðŸĪ·

09.03.2025 16:26 — 👍 1    🔁 0    💎 0    📌 0

It's a C like HDL. So gets you into describing hardware without needing to learn verilog sensitivity lists and blocking non blocking etc. So just hopefully easier. And then has some fancier compiler things it can do: ex. help you pipeline for high performance designs ðŸĪ™

05.03.2025 21:48 — 👍 0    🔁 0    💎 1    📌 0

Happen to know some basic C? If you are in the mood to experiment with getting right to hardware design and past the annoying Verilog/VHDL learning curve - happy to chat about PipelineC ðŸĪ“

05.03.2025 15:44 — 👍 0    🔁 0    💎 1    📌 0
capture of last 4 bytes of ethernet frame shown in gtkwave

capture of last 4 bytes of ethernet frame shown in gtkwave

What can you do with reading arbitrary #FPGA registers out of your design over #UART? Capture time series data (last four #ethernet packet bytes), write a little #python script that launches #GTKWave, and you have a tiny homemade cross platform logic analyzer thing!
github.com/JulianKemmer...

20.02.2025 20:21 — 👍 3    🔁 1    💎 0    📌 0
Post image

How does the hardware work? Probes can be in any clock domain and cdc to UART clock is handled for you with small FIFOs. Host PC control program read enable pulse causes hardware to respond over UART with the sample bytes from your debug probe. All included as a pipelinec library.

20.02.2025 20:18 — 👍 0    🔁 0    💎 0    📌 0
struct ddef and print func code

struct ddef and print func code

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.

20.02.2025 20:15 — 👍 0    🔁 0    💎 1    📌 0
print of mac address matching wireshark

print of mac address matching wireshark

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:

20.02.2025 20:14 — 👍 0    🔁 0    💎 1    📌 0
declaring and assigning debug probes code

declaring and assigning debug probes code

#hardware debugging and wanted to see some #ethernet MAC address registers down in my pico-ice #ice40 #fpga design. Don't want manufacturer specific ILAs. Don't want to route signals to top, external #debug equipment I don't have.

Just assign to #UART debug probe wire:
github.com/JulianKemmer...

20.02.2025 20:13 — 👍 1    🔁 0    💎 1    📌 0

Not having #AMD #Xilinx #Vivado #Chipscope based live #hardware debug for the #picoice #Lattice #ice40 #FPGA was a little annoying

so I have revived the small pipelinec project that was sorta a build your own chipscope attempt ðŸĪ™ and will demo that on the pico ice

20.02.2025 16:56 — 👍 2    🔁 0    💎 0    📌 0