# Simulate Intel FPGA for software development

i'm currently working for a project for my university. It's about the Intel SoC Embedded Development Suite, and for this i need an actual FPGA board. Unfortunately i'm unable to buy a board, because it costs way to much, and my university does not have any(my mentor said it's being ordered now, but it would take a while before the board arrives); so i really want to simulate the board. Is there any way to do this?

• Yes, there's a way to simulate your FPGA. Sadly, most software that does that is way more expensive than a board. – Marcus Müller May 15 '17 at 22:27
• The SoC is basically ARM+FPGA combination. So why do you need ARM+FPGA? FPGA itself is not difficult to simulate, at least on the logic level, but to simulate ARM+SoC and all the software on the ARM core is something else. – user3528438 May 16 '17 at 0:22
• If you don't have this hardware, you probably shouldn't target it specifically. To do a conceptually similar project, you could use a Free Software HDL simulator that has a programatic interaction API (VPI or similar) to allow it to interact with conventional software taking the role of what you would run on the hard code processor; or you can build a soft core processor and simulate that. Or you can pick a different, available, platform. – Chris Stratton May 16 '17 at 1:08
• qemu, verilator, etc you can do some of the work with free tools, depending on how you design it a lot of the work. – old_timer May 16 '17 at 20:50

All FPGAs can be simulated - they are just (*) digital logic circuits after all.

For Altera (Intel) FPGAs, you can use ModelSim for simulation. When you download the Quartus EDA tools there is an option to download a free copy of ModelSim Starter Edition which has been customised to include full simulation models for various FPGAs.

The best place to get started when designing systems for FPGAs is to build up systems block by block, simulating as you go. It's much easier to see if something in the logic is misbehaving in a simulator than on an FPGA because you can see every signal in the design.

(*) well not quite, many have lots of exciting transceivers, PLLs and other gubbins, but there are usually simulation models provided.

• Note that the target in question is not just an FPGA, rather it appears to be a combination of FPGA fabric and a hard core processor; so a design leveraging that combination can't be simulated without a simulation model for the processor. – Chris Stratton May 16 '17 at 1:10

You could get started simulating using a free toolchain. You'd have to do some work to get it running on the actual hardware one way or another if you ever get to that point.

I use Icarus Verilog, a free Verilog simulator. On my Mac, I just install it using MacPorts:

port install iverilog


On a *nix system, you probably have a package manager of some sort as well. On Windows, it can be run in cygwin, but I have no experience with it on Windows.

Icarus Verilog includes the command vvp which, when run on the output file of the iverilog command, produces a .vcd file. This .vcd file can be loaded in a waveform viewer for visual inspection of the simulation (I use Scansion on my Mac). There's a Stack Overflow question about how to visualize Verilog simulations.

The iverilog command does not give its output the .vvp extension by default, but I prefer that extension. Use the -o flag to change the iverilog output file name. Here's how you create the .vcd for a single Verilog module and its testbench:

iverilog -o module.vvp module.v module_tb.v
vvp module.vvp