Most interesting projects involving FPGAs - Page 1
Forum section: electronics / general

author: matrixofdynamism
author_rank: Regular Contributor
timestamp: April 18, 2023, 10:57:30 pm
content: In my life I have used FPGAs to implement:- JPEG Encoder that was mostly in hardware and used some part implemented in softcore- Proprietery communication stack that relies on infrared- Stepper motor controller as per specific requirements for that niche applicationThere are other smaller projects that were used for learning purpose. But these were really big and complex projects. What are the most interesting FPGA projects that you have carried out in your life?

author: james_s
author_rank: Super Contributor
timestamp: April 19, 2023, 02:31:23 am
content: My main interest in FPGAs is replicating vintage hardware, mostly arcade games and some early computers and related stuff.

author: NiHaoMike
author_rank: Super Contributor
timestamp: April 19, 2023, 03:33:55 am
content: Currently working on a zero export solar inverter with PLC connected current sensors. Although a STM32 would easily handle it with wired current sensors, with the addition of PLC, it wouldn't be easy to use a common microcontroller and still keep the total latency low enough for zero export to work as intended.

author: rstofer
author_rank: Super Contributor
timestamp: April 20, 2023, 04:25:12 pm
content: In 1970, I was given unlimited access to an IBM 1130 computer and I used a LOT of hours. FORTRAN was the most accessible language and I just ate it up. Having unlimited computer access wasn't all that common back in '70.So, I built one on a Spartan 3 board, complete with disk drive (Compact Flash), serial ports for the Card Reader, Printer, Keyboard and Typewriter - Hyperterminal works well for this application. The final piece was emulating the Calcomp 1627 Drum Plotter and sending the plot commands through an mbed LPC1768 ARM chip to translate to TCP and draw the plots on my LaserJet.It is a complete system and runs all of the IBM software unchanged.It was a learning project but could probably be replicated in a week or two of diligent work.ETA: I added the source code for the plot. This is the way it was done back in '70. MATLAB hadn't been invented. The Basic Linear Algebra System (BLAS) wasn't invented until '79. We used to do matrix stuff by ourselves. Just a bunch of DO loops...As to plotting, there were 100 steps per inch and to move an inch took 100 commands.There were bits in the command word for +X, -X, +Y, -Y, Pen Up, Pen Down. Each command was only 6 bits but there were a lot of them. The LPC1768 takes these commands and builds LaserJet command sentences by accumulating steps and things like that. If the pen is up, there is no motion, just accumulate and wait for the Pen Down command. That kind of thing... Plus the Berkeley Sockets thing...

author: rstofer
author_rank: Super Contributor
timestamp: April 20, 2023, 07:59:22 pm
content: The LC3 CPU from "Introduction to Computing Systems: From Bits and Gates to C and Beyond" by Patt & PAtelhttps://en.wikipedia.org/wiki/Little_Computer_3Essentially, everything is given:https://people.cs.georgetown.edu/~squier/Teaching/HardwareFundamentals/LC3-trunk/docs/LC3-uArch-PPappendC.pdfhttps://www.cs.colostate.edu/~cs270/.Spring21/resources/PattPatelAppA.pdfThere is an assembler for the original version (as above) but I'm not sure about the byte addressable variant, the LC3b

author: rstofer
author_rank: Super Contributor
timestamp: April 20, 2023, 08:39:54 pm
content: Over at OpenCores.org, there is a Z80 workalike core named T80. Combined with the appropriate PROMS, I built the PacMan game and it works exactly like the original because it uses the same PROMs.https://github.com/eshopper99/pacmanThere are other arcade projects on the Internet and most use the T80 core. I used the same core to create a 50 MHz CP/M computer. It sure is fast when compared to the original 2 MHz 8080 used in the Altair 8800 computer. I also have an eZ80 version that runs at 50 MHz. Smoking fast! It helkps that the Compact Flash disk drive is a LOT faster (and larger) than an 8" floppy.

author: DiTBho
author_rank: Super Contributor
timestamp: April 20, 2023, 08:43:23 pm
content: at the moment, a super-simplifiedtr-memfor a weird machineCode:. tr-mem. 64Kbyte. ______ FPGA _____. | |. ISA 8bit ISA 8bit. | |. PCI32 PCI32. | |. ppc40x ppc40x.GNU/Linux GNU/Linuxwhat?!? and only 64Kbyte?!?(well, the chip that does PCI<-->ISA8 cannot open a window size bigger than 64Kbyteplus I am using all the internal FPGA BRAM ... )

author: Sal Ammoniac
author_rank: Super Contributor
timestamp: April 20, 2023, 10:49:02 pm
content: I'm currently working on a project to implement the Apollo guidance computer in an FPGA that will run the original software developed by MIT.

author: rstofer
author_rank: Super Contributor
timestamp: April 21, 2023, 04:18:56 pm
content: Quote from: Sal Ammoniac on April 20, 2023, 10:49:02 pmOutstanding! I have thought about doing the same project but the external bits (sensors and actuators) seem overwhelming. I suppose one could build a simulator for all the signals and have them active at an appropriate time relative to t=0 and the actuators could just be indicators. Design decision: keep the logic at the individual NOR gate level or build larger level components. Given the schematics, it might be interesting to recreate the AGC at the NOR level. Maybe step up to the actual IC they used: two 3-input NOR gates per instance.I see there are some Raspberry PI emulations around.For those following along at home, there is a LOT of information and complete projects on the Internet. Who wouldn't want to recreate the flight of Apollo 13?

author: Sal Ammoniac
author_rank: Super Contributor
timestamp: April 21, 2023, 04:57:59 pm
content: Quote from: rstofer on April 21, 2023, 04:18:56 pmI wouldn't go that far! Sounds like way too much work. My implementation is in SystemVerilog and is a fairly straightforward implementation. I haven't given much thought yet to how to emulate the external devices (DSKY, IMU, etc.)

author: matrixofdynamism
author_rank: Regular Contributor
timestamp: April 21, 2023, 05:29:00 pm
content: I was expecting input from professionals here that are in the field

author: rstofer
author_rank: Super Contributor
timestamp: April 21, 2023, 08:42:29 pm
content: Quote from: matrixofdynamism on April 21, 2023, 05:29:00 pmYou should have said that in the beginning. It would have saved a lot of pixels.Now I'm torn between removing my replies as they are not professional or leaving them for others reading the thread.

author: james_s
author_rank: Super Contributor
timestamp: April 22, 2023, 12:44:32 am
content: Just leave them, if he was looking for professionals only he should have said so. I'm not really sure what difference it makes whether it's professional or not.

author: joeqsmith
author_rank: Super Contributor
timestamp: April 22, 2023, 02:40:23 am
content: For fun back in the 90s, I designed a few different CPUs that I implemented on FPGAs. Around 20 years ago I designed a reverse print server which basically allows my test equipment to print to an Ethernet printer. That system was using an old Motorola CPU and the FPGA performed all the heavy lifting. More recently I had designed an hardware in the loop simulator for one of my motorcycles that runs on another custom board using an FPGA. Nothing professional, but fun none the less.

author: Psi
author_rank: Super Contributor
timestamp: April 22, 2023, 02:46:14 am
content: 10 years ago I really wanted to use a FPGA to try do real-time low-latency HD video compression to try make a cheap 5.8Ghz HD FPV video system, but the math needed for video compression seemed a bit too daunting.