General > General Technical Chat

Most interesting projects involving FPGAs

(1/3) > >>

matrixofdynamism:
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 application

There 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?

james_s:
My main interest in FPGAs is replicating vintage hardware, mostly arcade games and some early computers and related stuff.

NiHaoMike:
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.

rstofer:
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...

rstofer:
The LC3 CPU from "Introduction to Computing Systems: From Bits and Gates to C and Beyond" by Patt & PAtel
https://en.wikipedia.org/wiki/Little_Computer_3

Essentially, everything is given:
https://people.cs.georgetown.edu/~squier/Teaching/HardwareFundamentals/LC3-trunk/docs/LC3-uArch-PPappendC.pdf
https://www.cs.colostate.edu/~cs270/.Spring21/resources/PattPatelAppA.pdf

There is an assembler for the original version (as above) but I'm not sure about the byte addressable variant, the LC3b

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod