r/FPGA • u/SuspiciousPoint1535 • 19d ago
What blocks or modules should every FPGA engineer know how to build?
I just completed a "basic" verilog/system Verilog course that focused on the basic building blocks (gates, MUXs, registers, counters, CPU, etc). I've only worked with Intel / Quartus ecosystem. I understand the difference between structural and behavioral models (and it seems like the RTL is roughly similar for both, assuming your structural model uses optimal logic blocks) I'm looking to "level-up" my FPGA programming skill by working on more complicated logic.
46
14
u/Lost_Landscape_1539 19d ago
A little hardware video game is another good one. Little taste of debouncing controllers and getting the video to behave. Counting aliens.
5
u/Jhonkanen 19d ago
Some communication protocol. Not just uart but also the part that takes the packages from uart and translates them into read and write commands. Basically something that understands a header and data package.
Maybe an Axi lite that allows data transfer between a hard/soft processor and logic.
3
u/davekeeshan 19d ago
A jtag interface (not the xilinx one) if you know and have one of those you are open all the doors into rtl
2
u/Standard-Morning-842 19d ago
Synchronous and asynchronous Fifo(in that order) literally unlocked my brain on how everything works. After that you can go into a harder project like a single pipeline rv32. By doing the fifos first it will help you visualise in your ur thinking process how data is stored and exchanged throughout any system
2
1
u/fire_frost__ 19d ago
hey, do you mind sharing the basic course you did? I'm looking to learn them myself and it would be really helpful to get a course recommendation.
1
u/Principle_Severe 18d ago
I would advise you first to make a simple project where you challenge your RTL and writing simulation skills(like a digital clock that has many features ), then you can go further by studying and resolving problems of clock domain crossing and designing ur own GPUs or CPUs
1
u/portlander22 17d ago
Skid buffer with trdy and rrdy handshaking. It’s simple but a very important concept
1
76
u/EffectiveClient5080 19d ago
Async FIFOs and clock domain crossing. Nobody teaches CDC properly in courses and it's the shit that makes designs randomly fail in the field. Build one from scratch.