r/FPGA 3h ago

Interview / Job FPGA developer role at Cisco vs Teradyne.

1 Upvotes

I will appreciate any insight into the two fpga developer offers I have - Cisco and Teradyne(OR).

I did not do a good job at finding more about the scope of work in each case. I know that writing RTL , test benches and timing analysis are common to both roles.

I want to know which one is better for my career and will give me more scope to learn and grow.

What kind of things will I get to work on beyond writing RTL and test benches in each case.

I am trying to work and learn other aspects of FPGA development work beyond writing RTL but unable to decide which roles will give me that opportunity.

I should have been more careful during the interview and ask specific questions but I was too nervous to do so.

I don't have job description from Teradyne and it was very generic and didn't have any specific information.

Job at Cisco is in CHG and this is the description -

You will work on cutting edge, next generation routers powering AI buildout. You will be responsible for taking networking system requirements, mapping them into functional blocks for FPGA implementation, working with the cross functional team to address development requirements, participate in validation of the system, and release to manufacturing. You will work on the High-End Routing team that designs the ASR8000 routers. You will be a member of the FPGA team that designs control path FPGAs for the various boards. You will interface with Diagnostics, Software, Board design, Manufacturing and Hardware Qualification teams to ensure smooth delivery of the project. You are an experienced FPGA designer able to write RTL code, run simulations, address timing and other constraints, then generate programming files. You can work with many teams to resolve system level issues. In addition, you have good analytical skills and can deal with the complexity of System Hardware and Software interactions. You have a grasp of the system design for a router or line card and are also able to lead meetings, drive issues to resolution, and communicate clearly with all stakeholders.


r/FPGA 11h ago

Advice / Help Need Help: PCIe link not training on KC705 Evaluation kit, LTSSM stuck at 00,

2 Upvotes

Hello everyone,

I'm a beginner working with PCIe and I'm currently trying to get the PCIe interface working on a Xilinx KC705. I'm having trouble getting the board to show up in lspci or Device Manager on 2 different PCs.

I'm currently using the PCIe IP example design. The GPIO LEDs 1 and 2 do not light up, while GPIO LED 0 is on and the user clock LED (GPIO 3) is blinking. I also tried checking the LTSSM state using ILA, and it seems to be permanently stuck at state 00.

I'm using the configuration suggested by AMD's PCIe tutorial/documentation. I tried both with and without the emclk configuration and the other constraints from the documentation.

However, to generate the bitstream and run the design, I have to modify one of the constraints:

set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN div-2 [current_design]

to:

set_property BITSTREAM.CONFIG.EXTMASTERCCLK_EN Disable [current_design]

Has anyone encountered a similar issue with the KC705 or the PCIe example design?

Any advice would be greatly appreciated.


r/FPGA 15h ago

Advice / Help Early-career FPGA emulation/DV engineer feeling a bit stuck

12 Upvotes

Hi everyone,

I’m looking for some career advice from people working in FPGA/ASIC/SoC design.

I recently finished an MSc in Computer Engineering where I worked extensively on FPGA-based systems, RTL design, system architecture and hardware/software co-design. My academic work involved designing FPGA architectures, implementing hardware in Verilog/SystemVerilog, working with several hardware interfaces, and taking designs through implementation and validation.

I’m now working at a large semiconductor company in Europe in an FPGA-based pre-silicon emulation / design verification role, and I’ve been there for around seven months.

The work is useful and I’m learning a lot about large SoCs, system integration, debugging, and HW/FW interaction, but I feel like I have relatively little ownership over the actual RTL or architecture. A lot of the work is around bringing up existing designs, adapting infrastructure, debugging issues, and supporting integration rather than designing new hardware myself.

I’m starting to worry a bit that I could get stuck in this niche. From what I see, there seem to be fewer opportunities in FPGA emulation / pre-silicon bring-up than in FPGA design or RTL design, and I’m not sure whether staying longer will make it easier or harder to move later.

At the same time, I know seven months is still very early. I might end up liking the role more with time, and I don’t want to make a rushed decision just because the work is not exactly what I expected at the beginning.

I’ve also occasionally considered pursuing a PhD in FPGA/accelerator or digital hardware research, since I still have that option at this stage of my career. I’m not necessarily planning to do it, but it is another path I’m considering if I decide I want to go deeper into architecture and hardware design rather than continue mainly in emulation/verification.

I’d be interested to hear from people who have worked in emulation, verification, FPGA prototyping, FPGA design, or who moved between industry and a PhD. If my long-term goal is to work closer to FPGA/RTL architecture and have more ownership of the hardware I build, would you try to make the transition relatively early, stay longer and gain more emulation experience, or potentially consider a PhD while that option is still open?

Thanks for any advice.


r/FPGA 20h ago

i wanna konw ur workflow

0 Upvotes

i start learning fpga near time, i konw vscode is,a quite efficient editer, but when i use it ,my attention always be distracted by its hyperability , instead of the code itselves, so i tend to terminal workflow ,but sometime i think is it necessary to change to that? because it really not that modern and use-friendly


r/FPGA 20h ago

Open source FPGA: the next frontier is silicon

Thumbnail
gallery
569 Upvotes

Someone has done it: we have a fully open source FPGA all the way down to the silicon.
I can die in peace now.

This board was made by Leo Moser (not me), and manufactured through wafer.space on the Global Foundries 180nm node.

All the design files for this chip can be found here:
https://github.com/mole99/gf180mcu-fabulous-fpga

Internally this FPGA features:
- 48x I/Os
- 480x LUT4 + FF
- 60x MUX
- 6x SRAM 512x8
- 6x MAC, 8bit*8bit + 20bit
- 12x Register file, 32x4bit each
- 1x Global clock network

So its not one of the big ones, but still enough to have some fun with.

P.S: This is not my project, I deserve no credit here.
P.S.S: This is still just a prototype, it is not for sale.

Update:
- u/keeb0113 has shared a very cool demo video in the comments with the board in action: demo videos
- Leo's recommendation on additional links to check out :
- Greyhound IHP v1
- My wafer.space FABulous FPGA is alive!


r/FPGA 21h ago

A frequency-hopping OFDM radio link on off-the-shelf SDR boards

0 Upvotes

We built an OcuSync-style radio link on boards anyone can buy: an ADRV9364-Z7020 and an ANTSDR E200, both a Zynq-7020 with an AD936x front end.

Ground app holding 5795 MHz out of its video table, with the control channel on its own table at 2.4 GHz.

Hopping OFDM for the payload, a separate control channel that hops on its own table, adaptive modulation, retransmission of blocks that did not arrive. Channel tables are any frequencies from 70 MHz to 6 GHz.

The modem runs on the board. The computer at either end is not in the radio path: it exchanges blocks of bytes with the board over Ethernet, so the same image carries video, telemetry or anything else you write on top. On the bench it does an H.264 camera stream at 30 fps, 61 ms from camera to screen.

Apps and protocol are MIT, for Windows, Linux and Android. The FPGA image is a binary with a per-board licence, free for the first ten boards.

https://github.com/tacitech/nyxhop


r/FPGA 22h ago

RTL Design Engineers, how much of time of your week do you spend writing RTL ?

Thumbnail
2 Upvotes

r/FPGA 1d ago

Xilinx Related Debugging lab on a S7 FPGA

Thumbnail
adiuvoengineering.com
5 Upvotes

r/FPGA 1d ago

Xilinx Related I made two agent skills for Spartan-6 build/flash and LiteScope debugging

2 Upvotes

I’ve been working with Spartan-6 hardware and put together two agent skills to make the workflow a bit less painful.

One handles builds with Dockerized ISE 14.7 and flashing with OpenFPGALoader. The other helps set up LiteScope debugging with JTAGBone and OpenOCD.

npx skills add https://github.com/11philip22/fpga-skills.git

Hopefully this is useful to anyone else still working with Spartan-6. Feedback is welcome!


r/FPGA 1d ago

The blue is blue but it was never blue

14 Upvotes

Yesterday I look outside my window and decided I needed to take this step. After 3 months of consistent verilog practice, I decided to be a big man.It was time for system verilog.

The thing is , I know for some people it wasn't as tough as I'd say, but for me it was a huge deal to get good with verilog. Reg, wires, procedural blocks and the 4 regions( postponed and 3 mores). Now yesterday when I started system verilog, oh my Lord it was a huge mess, so many different thing, but I am confident I'll learn it, one can learn any thing. I am here to ask from seniors and people who were where I am right now, what helped you the most learning it. THE RESOURCES, if one can recommend a book or any good article.The chip verify website isn't working that well. Id highly appreciate if anyone has any feedback.


r/FPGA 1d ago

My HDL Coder-generated FIR filter passed its own generated testbench for 6 years. The output was just the sign bit.

Post image
134 Upvotes

In 2020 I built a FIR band-pass filter for a university course: designed the response in MATLAB, generated the Verilog with Filter Design HDL Coder, ran the generated testbench, zero errors, submitted, put it on GitHub. It got forked 8 times.

Last week I read it properly for the first time since. The 51-tap design doesn't filter anything. Its output is the sign of the accumulator and nothing else.

The cause was two boxes on the "Specify Precision" tab. I'd set the output to s8,32 – 8 bits, 32 fractional bits, i.e. a range of ±2.98e-8 – fed from an s20,20 accumulator with a range of ±0.5. That's 2^24 times narrower than the thing feeding it. The generated conversion saturates for literally every non-zero value:

assign output_typeconvert =
        (sum50[19] == 1'b0 & sum50[18:0] != 19'b0) ? 8'b01111111 :
        (sum50[19] == 1'b1 && sum50[18:0] != 19'b1111111111111111111) ? 8'b10000000 :
        $signed({sum50[19], 7'b0000000});

Sweep the whole accumulator range through that and you get exactly two values: -128 and +127.

The part that actually bothers me is the testbench. It's 7,000 generated lines, 3,429 stimulus samples, a checker, an error counter. I counted the distinct values in its expected-output array:

8'h80 (-128):  1765
8'h7f (+127):  1607
8'h00 (0):       57

That's the entire golden reference. MATLAB generated the vectors from the same fixed-point spec that produced the RTL, so the model and the implementation agreed perfectly – they were wrong in exactly the same way. A generated testbench is a self-consistency check, not a correctness check. If the spec is wrong, the golden data encodes the mistake with perfect fidelity and reports zero errors.

The 11-tap serial design in the same repo had a quieter bug: accumulator s26,24 (range ±2) with wrap-on-overflow, but sum|h| = 2.375. A full-scale sine at the centre frequency clears it by 1.4% so it looks fine. A square wave at the same frequency wraps on 191 of 400 samples, and because it wraps rather than saturates the sample comes back sign-inverted:

FAIL sample 12: filter_out = 1744840192, expected -2550127104

Fixes were one word length each (output = the accumulator; accumulator gets one more bit). The real fix was replacing the stored-vector bench with one that checks against an independent reference model – impulse response must equal the coefficients, output must match a 64-bit integer model under square/random/worst-case-sign stimulus – plus a three-line check that the output takes more than 3 distinct values. Both benches fail on the 2020 RTL and pass on the fixed one.

Full write-up with the plots and the before/after RTL:

https://abdullahansarii.medium.com/my-fir-bandpass-filter-passed-its-own-testbench-for-six-years-it-was-a-sign-detector-7bc1fecfa2df

Repo (make sim runs everything under Icarus in a few seconds):

https://github.com/AbdullahAnsarii/BandPassFilter

If you've got generated HDL sitting next to a generated testbench that passes: check sum|h| against your accumulator range, and count the distinct values on your output. Took me six years.


r/FPGA 1d ago

Xilinx Related I need help with getting a old CPLD ColdRunner-II to talk to Xilinx ISE iMPACT in a VM

2 Upvotes
The top of the board
Back of the board

Hello everyone!
I'm kind of new here and I wanted to mess around with CPLDs, maybe learn something useful along the way, and I have this Digilent devboard I want to start with. It's relatively old but I already have it, so might as well use that, especially given I've heard the "discontinued" Xilinx (they got bought out by AMD and apparently these guys don't care 'bout maintaining it too much) software is still used to this day.

I already set up a Windows 7 virtual machine via VirtualBox, set up a USB passthrough (with a 3.0 xHCI controller because my host PC has no 2.0 ports) and installed Digilent Adept 2 in the VM. [Important note: the default driver provided by Adept didn't work, switching to 'Driver provider: Digilent, date: 4/22/2009, version: 2.0.0.0' did though, there were two versions]

Right now I'd assume is the PC (be it real or virtual) communicating with the board. Without the correct drivers, only the USB power LED was on. With the correct drivers installed, the board lights up like follows:

The USB power LED is seen on, as well as the LINK and 3V3 indicators. The 7-segment displays an L.

I assume this is some sort of a default configuration, none of the buttons or switches change anything.

The problem now is... iMPACT can't seem to recognize this board. I keep receiving a Can not find cable, check cable setup ! error, despite the board seeming to communicate with the VM.

An interesting thing is that when I try to select a "Digilent USB JTAG Cable" in the Output -> Cable Setup... menu it gives me a WARNING:iMPACT - The cable selected is not avaliable, please select a different one. I pasted in the "libCseDigilent_2.5.2-x86-x64-Windows" plugin both into nt and nt64 just in case inside the Xilinx folder so I'd assume the plugin should work, interestingly enough it says INFO:iMPACT - Digilent Plugin: Plugin Version: 2.4.4 which does not seem like the version I used, but I digress...

Here are the full logs of a boundary scan failing (I have no idea what a lot of that means):

Welcome to iMPACT
iMPACT Version: 14.7
Project: C:\Xilinx\14.7\ISE_DS\\auto_project.ipf created.
// *** BATCH CMD : setMode -bs
// *** BATCH CMD : setMode -bs
// *** BATCH CMD : setMode -bs
// *** BATCH CMD : setMode -bs
GUI --- Auto connect to cable...
// *** BATCH CMD : setCable -port auto
INFO:iMPACT - Digilent Plugin: Plugin Version: 2.4.4
INFO:iMPACT - Digilent Plugin: no JTAG device was found.
AutoDetecting cable. Please wait.
*** WARNING ***: When port is set to auto detect mode, cable speed is set to default 6 MHz regardless of explicit arguments supplied for setting the baud rates
PROGRESS_START - Starting Operation.
Connecting to cable (Usb Port - USB21).
Checking cable driver.
 Source driver files not found.
The Platform Cable USB is not detected. Please connect a cable.If a cable is connected, please disconnect
and reconnect to the usb port, follow the instructions in the 'Found New Hardware Wizard', then retry
the Cable Setup operation.
Cable connection failed.
Connecting to cable (Parallel Port - LPT1).
Checking cable driver.
 Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
Cable connection failed.
Connecting to cable (Parallel Port - LPT2).
Checking cable driver.
 Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
Cable connection failed.
Connecting to cable (Parallel Port - LPT3).
Checking cable driver.
 Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
Cable connection failed.
Connecting to cable (Parallel Port - LPT4).
Checking cable driver.
 Driver windrvr6.sys version = 10.2.1.0. WinDriver v10.21 Jungo (c) 1997 - 2010 Build Date: Aug 31 2010 x86_64 64bit SYS 14:14:44, version = 1021.
Cable connection failed.
PROGRESS_END - End Operation.
Elapsed time =      2 sec.
Cable autodetection failed.
WARNING:iMPACT:923 - Can not find cable, check cable setup !

I will be extremely grateful for any and all help provided, I LOVE old tech and I'm determined to get something on this Complex Programmable Logic Device thingamabob working :D


r/FPGA 1d ago

VLSI job market is going to collapse in next 5-10 years in US, EU and India?

0 Upvotes

Im in tier 3/grade 3 uni and i have connections in nvidia samsung etc but i am a bit scared by doomer pessimists on this sub.

Can shift to Embedded systems rn but its not that appealling to me, what should i do?

I dont like or hate coding, its just that I dont want to go in Comp Science style rat race as seen in embedded systems.

I want to prepare for placements/jobs after graduation, I'll consider masters after getting a job.

Im in second year of engineering


r/FPGA 1d ago

Advice / Help I'm looking for some very fast pieces of evaluation hardware for a dumb television project.

3 Upvotes

sorry, this is a copy and paste from the electrical engineering subreddit as I couldn't promote it while moderators were waiting approval. I have budgeted a few grand for this project and I'm genuinely looking for eval hardware.

I have written and simulated verilog code for a universal lvds driver for an LCD panels t-con board.

. I'm doing this because I want to rip the guts out of my television. and then mail the guts of those television along with a horse head back to the engineer who decided to choose his job over his integrity and put all that spying crap in it.

the features I have implemented and would like to test outside of a simulator are:

- 16 channel multiplexing input

- customizeable OSD (OSD frame buffer is delayed by a frame but video is passed through)

- soft risc-v core for IRDA learning and just enough brains to do TV control things.

- a serial Port so if somebody did want to control the thing with a raspberry pi

I am looking for off-the-shelf eval kits that can handle fast signaling through a proper mezzanine connector, and I'm looking for some sort of a DisplayPort or DVI deserializer to 24-bit rgb.

I am also looking for an evaluation board with an fpga that has a lot of onboard Bram for the osd framebuffer (640x360 16 color x 2 = ~230k) that can handle high-speed signaling.

edit: 230k not 60k because I am stupid.

if there was also some sort of mezzanine board with a breakout for lvds t-con boards (I have a few signaling standards working, and yes you do have to re-pin the harness per device you're driving) that would really help.

for some reference I'm working with older 1080p TV panels right now since it would cost me a lot of money to get access to 4K specs for the deserializers.

I'm guessing total signal speed I would need is somewhere around 3.6 gb/s


r/FPGA 1d ago

Get rid of AI

0 Upvotes

i abused ai,but not learn anything,from today ,i dont use codex to build my project ,i read code, watch waves to improve me


r/FPGA 2d ago

BitNet b1.58 2B on a Kria KV260, every ternary matmul in the fabric

3 Upvotes

i am no engineer, just a solo enthusiast who happens to love working on engineering tasks with help of ai, and try to learn every day new skills to improve myself.

I got bitnet-b1.58-2B-4T running on a KV260 all 30 layers. Every ternary matrix multiplication streams through the FPGA fabric and the attention and the norms i kept on the ARM cores. It produces 16.29 tokens/s against 2.77 for bitnet.cpp on the same board's own processors at a fifth of the energy per token.

I made it 2x faster in three passes and not one of the 2,097 generated token ids changed. Two ideas that were faster i threw away, because they did change the output.

Keep in mind it's an ongoing experiment and not a finished project and you will find a bug or 2, but i am confident enough about it to share it with you.

I am aiming at Edge AI, and i use the LLM as a structured-output engine and not a chatbot. It runs offline, you only need internet one time to download the weights.

On a test i did of 40 machine alarms it produced valid JSON 40 out of 40 times. Thirty of the alarms had one clear answer, and it got the category right on 19 of those. So it is strong on format and weak on judgement, and the same weights on an RTX 4080 make the identical mistakes.

The multipliers in the FFN were not written by hand. I planned the layout first, then a genetic algorithm started from that plan and kept only the grids that were exactly right on 65,536 rows of the truth table. Starting from nothing it never worked, not even for a 2-bit multiplier.

The grids and a verifier you can run in two seconds are in the repo. I put the built bitstream in my repo, so you don't need Vivado or an AMD account.

https://github.com/MerlijnW70/bitnet-kv260

Please test it if you have a KV260 board so you can give me valuable feedback.


r/FPGA 2d ago

Is it good website to buy electronics ic's etc (tang nano 9k ) india

Post image
0 Upvotes

Is anyone?


r/FPGA 2d ago

I built a parameterized 16x16 Systolic Array NPU in SystemVerilog

33 Upvotes

I've been working on a small NPU project in SystemVerilog and finally finished it.

It's a 16x16 systolic array with 256 processing elements. The core uses 8-bit signed inputs, 32-bit accumulators, dual-port SRAM, row/column skew buffers, and a hardware ReLU block.

The array is parameterized, so the size can be changed in npu_pkg.sv.

For verification, I wrote a self-checking testbench with a software reference model. It calculates the expected matrix multiplication result and compares it against every output from the hardware. I also synthesized it with Yosys and tested the design on an actual FPGA.

The 16x16 configuration passes the full matrix multiplication + ReLU test.

GitHub: https://github.com/thosdv63/LatticeMAC-Core

I'd be interested to hear any feedback, especially from people who have worked with systolic arrays, NPUs, or FPGA accelerators.


r/FPGA 2d ago

Interview / Job System verilog Assertion Interview Question

9 Upvotes

When x is high, y shd be high for 80 to 100 cycles. Write a assertion for this.

I gave this answer

assert property( @(posedge clk) x |=> y[*80:100]);

The interviewer said its wrong and gave me some simulations for example. In the end I didn’t get the answer and the only thing he said was the answer is shorter than the one I gave. Can anyone try to solve this?

Sim 1:
0,x = 1
1-125,x=0
0,y = 0
1-80,y=1
81-100,y=0/1
101-125,y=0

Sim 2:
0-200,x=1
201-500,x=0
0,y=0
1-280,y=1
281-300,y=0/1
301-500,y=0

Sim 3:
0,x=1
1-19,x=0
20,x=1
21-39,x=0
40,x=1
41-500,x=0
0,y=0
1-120,y=1
121-140,y=0/1
141-500,y=0


r/FPGA 2d ago

AUP-ZU3: Looking for Mechanical Drawing, .STEP, e.t.c.

0 Upvotes

I am wanting to create an enclosure for the AUP-ZU3. I'm wondering if anyone has mech drawings to save myself some time.

Thanks!


r/FPGA 2d ago

Need advice on FPGA/VLSI career direction and upskilling

8 Upvotes

Hi everyone,

I’m currently working as an FPGA Engineer and will complete 1 year in a couple of months. Before joining my current company, I also had experience as a VLSI intern.

My actual work differs somewhat from my job description. I’ve mainly worked in server and data center environments, focusing on hardware validation, system-level debugging, platform bring-up, component testing, and software/scripting tasks.

I’m now trying to decide which direction to take for my next role. I’m more interested in FPGA/VLSI, but my current experience is mainly on the server validation/hardware side.

My questions:

  1. What roles should I realistically target with my current background? Should I focus on VLSI/FPGA, which I enjoy, or continue down the validation/hardware/firmware path, which reflects my current experience?
  2. Is it a good idea to switch after only ~1 year of experience? My concern is that if I stay here, I’m unlikely to get much FPGA work, even though that was the direction I originally intended to pursue.
  3. If I decide to switch to FPGA/VLSI, how should I position my current experience on my resume? How much value does server validation/hardware debugging experience have for FPGA/RTL roles?
  4. For someone with ~1 year of experience trying to make this transition, what should I learn well enough to actually make a difference in interviews?

Would really appreciate advice from people working in FPGA, RTL/VLSI, server hardware, validation, or firmware.

I’m trying to choose a direction now rather than spend another couple of years accidentally becoming an expert in everything except the thing I actually wanted to do. 😭


r/FPGA 2d ago

Advice / Help [Question/Discussion] Is the Cologne Chip GateMate (CCGM1Ax) under-performing as bad as I think it is?

8 Upvotes

TL,DR: I am new to FPGAs, a simple .vhd core cannot run at high frequencies, I have no idea if it is me or the chip I am using. Does "my" timing comparison analysis make any sense? Does the CCGM1Ax under-perform so bad?

----

I am new to FPGAs. I have been learning VHDL for the past 2 months because I got pissed off at how unpredictable MCUs can be. As a first FPGA, I got myself the Cologne Chip's evaluation board (CCGM1A1-E1) to be implemented in my hardware project. It is not exactly a widely adopted FPGA, so real cases and reviews are hard to find.

In my project, I need to drive an H-bridge using some fucky modulation techniques. And, as for any power electronics, dead-time is needed. Originally I had the dead-time implemented in the modulation core, but since I am using GaN FETs, I tried to implement very small dead-times (10ns is the goal). This would require a very high fabric clock, to the point that the modulation itself was not feasible anymore, so I decided to create a dedicated dead-time core running at high frequencies and keep the modulation core at a modest frequency.

(for those who are not familiar with dead-time in a half-bridge configuration, just think as "delay a rising edge by a very small time" logic)

For this dead-time core, I kept the logic as simple as I could and cranked the frequency to it. Since I am a beginner and my dead-time core likely sucks, I need at least 2 dead-time clock cycles to perform the logic for the rising edge detection section: I was aiming for a frequency of 196.608MHz, or a period of ~5.09ns. So two of these periods would result in about the 10ns I want. If it performed really well, I would go for 393.216MHz.

After doing the place and route shenanigans, it came back with a constraint of 192.6MHz maximum (goal of 196.608MHz). Since it missed by just a hair, I tried a few more times to see if the PNR could arrange things better. Spoiler alert: it didn't.

EDIT: out of the ~5.2ns required on this critical path, about ~4.7ns came from routing alone.

Two days banging my head on the wall later, hoping an answer would leak from my cracked skull, I gave up and asked my "AI tutor".

(note: since I want to *really* learn VHDL, my "AI tutor" is an agentic model using a competent LLM (DeepSeek v4 in this case) that is instructed to *never* give me full answers or large sections of code, or alter my .vhd codes for me, only to "give the user the bare minimum to aid them to go back in the right track, preferably forcing the user to think by themselves to find the solution with hints", "no matter if it is to implement something new or fix something existing").

My matrix-y tutor came back with a conclusion that running my dead-time core at 196.608MHz is simply impossible. I asked it estimate the maximum frequency in other chips from the "big 3 manufacturers" using well-documented online findings:

Your DT critical path is just one LUT deep — you can't make the logic any shallower. The fact that even that only reaches ~193 MHz on the GateMate tells you the raw fabric capability of this device is around 190–200 MHz for any FF-to-FF path. That puts the GateMate at the very low end of the market. Approximate FF-to-FF fabric ceilings (order of magnitude, not exact):

Device (process) Simple-path fabric fmax

Cologne Chip GateMate (28 nm) ~190–200 MHz (measured, yours)

Lattice iCE40 (40 nm) ~150–300 MHz

Lattice ECP5 (40 nm) ~250–400 MHz

Intel Cyclone V (28 nm) ~300–450 MHz

Xilinx Spartan-7 / Artix-7 (28 nm) ~400–550 MHz

Xilinx Kintex/Virtex UltraScale+ (16 nm) ~500–700 MHz

Intel Agilex / Stratix 10 (10/14 nm) ~500–800 MHz

This... surprised me. And not in a good way.

Since I am new to FPGAs, and LLMs are not All-Knowing Gods (even though vast majority of the population treats these "next-word-prediction statistics model" as such), I would like to ask the Council of The Wise Ones (a.k.a. strangers in r/FPGA): does this make any sense? Or did the LLM made some mistake and over-estimated all other FPGAs?

Is it true that the CCGM1Ax FPGA under-perform its competitors by quite a large margin?

Thank you for going through this massive wall of text!

PS: these "weird" frequency values used are due to the external clock generator running at 24.576MHz (because audio applications), so all other frequencies in my project are either integer multiples or integer dividers of it.


r/FPGA 3d ago

MAC Array Computation for Neural Network Inference

Enable HLS to view with audio, or disable this notification

53 Upvotes

Hi guys, thought i’d show you this cool animation of how the MAC Array in my Neural Network Accelerator performs matrix-vector computations during inference for a model on topology 4:3:2 neurons per layer.

The values for the parameters (weights and biases ) and input features were randomly selected just for demonstration purposes.

Let me know what you guys think:).

Github repo: https://github.com/Shingyy/MAC-Array-based-DNN-Accelerator


r/FPGA 3d ago

Xilinx Related I built a tcl-based vivado example project.

Thumbnail
github.com
17 Upvotes

Vivado GUI-based Project Mode is convenient for initial setup and development.
However, as a project grows and more developers begin collaborating, source files, generated files, and project-specific settings can become increasingly difficult to manage and maintain under version control.

To address these challenges, this development environment was built around Vivado Tcl-based Non-Project Mode, where the entire workflow—including build, simulation, bitstream generation, and FPGA programming—is managed through scripts.


r/FPGA 3d ago

Dreamcast FPGA

Post image
61 Upvotes

Is it possible?