ORCA – An implementation of RISC-V intended to target FPGAs
github.com
github.com
How do you estimate this sort of stuff? I can estimate software decently, but the penalty for being wrong is seldom so bad. With a hardware project, things actually don't fit and you are out of luck.
Different FPGAs have different sorts of limits, not just 1 different number. Do you go by lines of Verilog/VHDL code? Do you go by some idea of "most crazy operation" and register width? How...?
But in the projects that I've been involved with, it turns out that it just wasn't feasible to route all the stuff that was originally envisioned at the planned speed. Interconnect is a big killer of hopes and dreams, once your FPGA starts to fill up.
Really, the only way to be sure is to run your design all the way from synthesis to place and route. The problem with that is you rarely have the luxury of starting a hardware design with all the HDL already written.
At places I've worked, the general pattern tends to be:
1) Pick a target FPGA family based on feature-set and advertising copy. Probably you use the vendor you're already familiar with.
2) Make an extremely rough LUT count estimate based on some prior designs (and/or maybe based on the utilization numbers for vendor-supplied IP cores).
3) Most FPGA vendors sell a bunch of variants of any given family. Do your first round of prototypes using an FPGA that is 50-100% larger than you think you need.
4) Once you've got the design more nailed down, make a better estimate and pick a smaller/lower-cost part in the same family. On FPGAs that I've used, the FPGA is generally 'full' if you've used up 75%-ish of the available LUTs. This is because of limited routing resources and imperfect compilers.
http://riscv.org/wp-content/uploads/2016/01/Wed1200-2016-01-...
Summary: smaller and faster than PicoRV32 & Z-scale, slower but smaller than Nios II/f.
Given that ice40 is the only (unofficially) open source FPGA, I had high hopes for the architecture...