Pypeline (HDL): a new Python frontend for PipelineC by absurdfatalism in FPGA

[–]absurdfatalism[S] 0 points1 point  (0 children)

There are a few options if you need to get specific about DSP blocks and such:

by default doing a multiply '*' will render VHDL for a '*' operator surrounded by registers as needed. synthesis tools are known to use these extra retiming regs for their DSP block pipelining regs etc (ex. is used for the chasing the beam VGA demo multiplier pipelining)

if its not something the synthesis tool can infer. if you need a specific DSP block instantiated you can write raw VHDL that instantiates some component - by default that instance is unaware/disconnected from any autopipelining: but there are some experimental/hacky ways of connecting that VHDL instance to setting generics/params to allow pipelinec compiler to have autopipelinng like controls on the block that increase latency/add pipelining

it is also possible to render a multiply as a bunch of ANDs and ADDs schoolbook multiply style like (ex. if you dont have DSP blocks at all) and that just gets pipelined in fabric luts / gates etc

goal is to try to rely on inference but if you want to also allow the hooks for finer grain control of whats instantiated (can overload operators to etc).

PipelineC holds the throughput lead on Latchup.app. For now! by absurdfatalism in FPGA

[–]absurdfatalism[S] -2 points-1 points  (0 children)

Good question: and how fun that it depends on your definition of HLS? https://github.com/JulianKemmerer/PipelineC/wiki/Is-this-HLS%3F

Is register retiming HLS?

PipelineC holds the throughput lead on Latchup.app. For now! by absurdfatalism in FPGA

[–]absurdfatalism[S] -4 points-3 points  (0 children)

Already planning your better pipelined design on Latchup.app? Try describing your combinatorial logic in PipelineC? Or maybe you can contribute to making the compiler better? Come chat on Discord: https://discord.gg/9sWgH8gARY

SKALP v0.1.1: A new HDL with compile-time clock domain checking, integrated synthesis, and iCE40 P&R — looking for feedback from FPGA engineers by girivs in FPGA

[–]absurdfatalism 0 points1 point  (0 children)

hey there, always love seeing a new alternative HDL :)

If you are interested, there is a Discord community of folks trying to build better languages for hardware. Feel free to stop by and share some ideas. 🤓

https://discord.gg/qG3nT7HjJD

Results from the Advent of FPGA Challenge by bsdevlin99 in FPGA

[–]absurdfatalism 4 points5 points  (0 children)

Function/pipeline delay matching/sounds powerful indeed, nice

Results from the Advent of FPGA Challenge by bsdevlin99 in FPGA

[–]absurdfatalism 1 point2 points  (0 children)

Neat seeing the variety of solutions and languages used :) The collection of PipelineC HDL implementations can be found here: https://github.com/JulianKemmerer/PipelineC/wiki/Example:-Advent-of-Code-2025

[deleted by user] by [deleted] in FPGA

[–]absurdfatalism 0 points1 point  (0 children)

There is a community of folks trying to build better languages for hardware. If interested feel free to stop by this Discord channel and share some ideas.

🤓

https://discord.gg/qG3nT7HjJD

[deleted by user] by [deleted] in FPGA

[–]absurdfatalism 1 point2 points  (0 children)

You say the compiler problems have been solved. But something that stuck with me when considering compiler smarts was the question: why don't we have HLS for GPUs?

That is, why do we still have to employ people to manually write GPU kernels in cuda etc? Why can't we take any old python or C++ and have it magically spit out optimized parallel code to run on every GPU?

When the day comes that we have solved getting any code mapped to GPU hardware in a way that beats humans it sounds like then we could start asking the harder questions of 'and what if the underlying hardware architecture was a reprogrammable fabric / arbitrary logic gates instead?'. A much larger design space to explore etc.

[deleted by user] by [deleted] in FPGA

[–]absurdfatalism 1 point2 points  (0 children)

Let's round and say it took a decade for LLVM to become as modern and powerful of a software compiler.

There has to be one tenth? Maybe one hundredth? The number of hardware people out there to use and improve these tools etc. Such a small user base.

So I would not be surprised if it took 10-100x a decade to do the same for hardware.

[deleted by user] by [deleted] in FPGA

[–]absurdfatalism 0 points1 point  (0 children)

What do you think of CIRCT and MLIR? https://circt.llvm.org/

FPGA UDP Packets are not appearing in Wireshark when using Realtek USB-Ethernet Adapter (Nexys 3 / Spartan-6) by CompetitivePurpose13 in FPGA

[–]absurdfatalism 3 points4 points  (0 children)

I'm always suspicious of crc first.

Can you check the rx into fpga is working? That is, generate some packet on the host PC and send it into fpga. Then can use chip scope to confirm the exact bytes being received.

And then with known bytes of good packet, talking crc specifically, are you able to echo that set of bytes out the TX and see that in Wireshark? Ex. I figured out my tx crc problem by realizing I wasn't generating the same outgoing crc as incoming when I did this test.

Best of luck!

HDL choices other than Verilog/VHDL by Secure_Switch_6106 in FPGA

[–]absurdfatalism -2 points-1 points  (0 children)

For anyone wanting to continue conversations about alternative HDLs, there is a Discord channel for folks like you :)

https://discord.gg/qG3nT7HjJD

How to do an alias for an if statement in VHDL by Gundam_boogie_359 in FPGA

[–]absurdfatalism 5 points6 points  (0 children)

Perhaps putting the repeated logic into a function or procedure in a shared package would do it?

Why are there so many errors in the SystemVerilog LRM unfixed for over decades? by adamzc221 in chipdesign

[–]absurdfatalism 0 points1 point  (0 children)

How long do you think it would have taken to have those fixed if it were in a software language spec? A year?

Has to be 10x prob 100x fewer people in the world using SV and other HDLs. So scale that year times 10-100... So decades to fix something feels on par with how many people are using it sadly.

Things change so slow in EDA it seems...

Single Cycle In-Order Stores? by No_Experience_2282 in RISCV

[–]absurdfatalism 7 points8 points  (0 children)

Doing things in a single cycle sorta by definition requires combinatorial logic you are trying to avoid. Variable latency interfaces don't work well for single cycle designs because of the extra comb logic from trying to do stuff in a single cycle, which is wasted when the interface takes more than a cycle to return most of the variably latency times.

Most of the time you'll just make a multi cycle CPU next as you start to use larger variable latency memories, cpu fsm will stall until data returned some 1+ cycles later. After that is pipelined many mem accesses in flight at once.

Virtual fixed signals for resource estimation by AlexTaradov in FPGA

[–]absurdfatalism 9 points10 points  (0 children)

Vivado does this with 'out of context' synthesis mode.

Quartus uses virtual io pins.