Intro
Back in 2019 I started some very interesting and fruitful involvement with FPGAs (Field Programmable Gate Arrays). They require a significant investment in education and time to master and I haven't done anything with them in the last five years. Although I have some good development boards, I would need to spend a lot of time updating the complex tools as part of any further work. With some regret I am now disposing of my FPGA development boards via Ebay which I hope will provide them with good homes.
This post summarises the good times (which were previously blogged) during which I enjoyed some small successes with the boards.
MAX1000
Elektor magazine provided a simplified introduction to FPGA programming using the Arrow MAX1000 development board. The board only had a button and eight LEDs to control but I was introduced to Altera Quartus Software and the NIOSII microcontroller which is implemented in the MAX1000. This was a brilliant way of demystifying the intimidating reputation of FPGAs.
Cyclone IV
I needed more power and extra peripherals for interesting FPGA projects so I purchased a Cyclone IV FPGA development board. I used this and MAX1000 for testing a simulated 8080 processor, testing UARTs and discovering features of the NIOS processor. I didn't actually make much use of the buttons, switches, matrix display, 7-segment display or VGA. This didn't stop me buying an even more sophisticated Cyclone IV with Ethernet, which I never used!Arduino MKR Vidor 4000
I was pleasantly surprised to see that Arduino had an FPGA board and impressed with the contents. They have a small Cyclone 10 FPGA together with an Arm Cortex M0 processor.
I didn't do much more than follow introductory tutorials for the board but I was able to get it working with Quartus Prime to build designs.
There don't seem to have been any developments or new FPGA boards from Arduino since this one.
Atlas DE0-nano-Soc
This is my favorite board. It contains a Cyclone IV FPGA together with a "hard processor" (HPS) capable of running linux. It is intended as the basis for FPGA university courses and there are tutorials to program the FPGA, HPS and link them together. The first tutorial guides you through building a bare metal FFT application in the FPGA. A second tutorial lets you build a linux system, including a preloader, u-boot and linux kernel, which is quite an undertaking.
Summary
I learned a great deal from these boards. FPGA programming takes you right down to the level of logic levels and combinations of gates. The software tools to help you achieve this are the same or similar to those used commercially which means they are large, complex and not necessarily free. However they are very powerful and enable you to control the hardware. I found out more about very low level steps to start processors including u-boot and BSP (board support packages). I never got very far with programming peripherals and honestly I was quite a long way / time from being confident with the software, partly due to availability / compatibility problems.
I am very reluctant to lose these boards but I have put them on Ebay this week.
I have already looked at what I might get instead. The emphasis must be on getting a board with excellent up to date software and learning resources. Digilent seem to be the best option I have seen so far.....
No comments:
Post a Comment