Last time I said that I needed a way to get code into the system. The obvious (?) way is via a serial link.
RS232 serial interfaces are implemented in one of two ways, software or hardware. I could have programmed a software UART routine in my CPU's assembly language, using a process affectionately known as "bit banging". But that seemed crude; I much prefer having a dedicated peripheral do the work.
Naturally, with a whole FPGA at my disposal I wasn't about to interface to a 3rd party UART device. So I started to implement one. After more time than expected (note to self - don't assume you know the protocol!) I had a working transmitter, written and tested as a stand-alone VHDL entity.
RS232 serial interfaces are implemented in one of two ways, software or hardware. I could have programmed a software UART routine in my CPU's assembly language, using a process affectionately known as "bit banging". But that seemed crude; I much prefer having a dedicated peripheral do the work.
Naturally, with a whole FPGA at my disposal I wasn't about to interface to a 3rd party UART device. So I started to implement one. After more time than expected (note to self - don't assume you know the protocol!) I had a working transmitter, written and tested as a stand-alone VHDL entity.
The next step was to integrate or interface the UART transmitter with my CPU. That in turn triggered a whole raft of design decisions, covering such things as memory mapper IO and whether I wanted to create a CPU or a microcontroller.
With all that now done, and a new compiler written using Microsoft Excel, the screenshot above shows my CPU sending the standard pan-universal greeting from machines.
Baby's first words. Daddy is so proud!
With all that now done, and a new compiler written using Microsoft Excel, the screenshot above shows my CPU sending the standard pan-universal greeting from machines.
Baby's first words. Daddy is so proud!