this post was submitted on 09 May 2025
2 points (100.0% liked)

FPGA

244 readers
1 users here now

A community for programmable hardware, including topics such as: * FPGA * CPLD * Verilog * VHDL

Related communities:

founded 2 years ago
MODERATORS
 

So I'm new to FPGAs. I've got a project that runs fine at 100MHz on an Altera chip. I'm trying to downscale to an iCE40UL. It runs fine at 70MHz, but bumping to 100MHz and certain clocks act up/don't show up at all.

So in theory, I know there's an issue with signal buffering or routing or something, but I've never actually had to deal with this practically, and I'm struggling to find any online resources.

The iCEcube2 software comes with a floor planner that helps visualize which blocks are being used that looks like this.

Here you can see my (buffered) 100MHz clock is feeding a lot of blocks. Probably part of the issue.

I can move things around on this floor planner, but in doing so, what is my goal for optimization? Do I want to literally shorten all the traces? (as in, do the blocks in the floor planner indicate their literal locations on the chip?) or what else is the goal?

Unfortunately, I don't think I have access to any simulation tools unless there's something I'm missing, iCEcube2 is very barebones.

top 3 comments
sorted by: hot top controversial new old
[–] ch00f@lemmy.world 1 points 1 day ago

Answering my own question. iCEcube2 has a "Timing Analysis" feature that shows the worst-case path and how far off you are. It's just odd that it shows no errors for a design that's blatantly blowing through its timing budget.

[–] vhstape@lemmy.sdf.org 1 points 4 days ago

You may need to add additional pipeline stages or FSM states to your design, if you can tolerate it

[–] ch00f@lemmy.world 2 points 5 days ago

Ok, I'm finding that I do have a timing report, so I'm guessing I need to go through that and adjust my verilog until the cumulative delays are short enough to prevent issues.