[Coco] FPGA VS Software Emulators
go4retro at go4retro.com
Wed Jul 26 10:34:06 EDT 2017
On 7/26/2017 1:54 AM, Walter Zambotti wrote:
> Where did all of you learn your FPGA programming skills?
I was where you were 5 years ago. I could see that developing for
microcontrollers would not allow me to support certain projects, so I
decided to learn VHDL or Verilog. I even bought an FPGA board to learn
And then it sat on the shelf for a few years.
The board was not cheap, and it bothered me that I had not done anything
So, in 2015, I tried to determine why I had not gotten anywhere with the
FPGA. I realized that I learn things not by running sample programs
("Hello World", et al), but by hooking things up to classic machines and
doing real things. And, interfacing the FPGA to classic machines was
difficult (level translators, hard to physically wire the dev board up
to my computers, etc.) Verilog and VHDL was daunting as well, and the
tooling was a challenge to learn.
Thus, I bought a small CPLD dev board, one from eBay with a xc9572xl on
it. It's a tiny board, with some pin headers ala Arduino, and had 5V
tolerant IOs right off the board. I bought a small programmer, dloaded
the XIlinx tools, and quickly wired up a LED blinker and programmed the
board. Success. That small success gave me enough push to continue to
wade through the complexities of the tool, the language, and the hardware.
Next up was wiring up some LEDs to a "latch" that was decoded on the
computer bus. Then, by doing poke address,value, I got various LEDs lit up.
Along the way, I blew up the little CPLD board. Felt bad about that for
about 2 minutes, and then ordered a new one from eBay. I burned
$10.00. If I had messed up my FPGA board, which I think was $170.00,
I'd have felt bad a lot longer.
Eventually, I outgrew the dev board, and I am writing more complex HDL
code (I chose Verilog, mainly because I'm pretty comfy with C, though
others have noted that you can't assume logic flow works like C apps.)
I have never used a simulator, though iVerilog is a good choice, if you
want to investigate and you're writing in Verilog. I personally just
like seeing actual output.
So, I highly recommend starting with the small CPLD ICs and working your
way up. I think it also fits the spirit of classic computing. Anecdotal
evidence suggests developers who first worked on classic machines like
the Coco handle systems with more resources better. Newer developers
grew up in environments with gigabytes of RAM and gigahertz of CPU
speeds, so they focus less on optimization and other related
activities. But, unlike PCs today, there are still reasons to optimize
VHDL or Verilog, especially in this arena where there are limits to how
many money people will invest in an FPGA solution that atatches to or
replicates a classic machine.
More information about the Coco