Close

It lives!

A project log for One-instruction TTL Computer

A breadboard-able computer which uses only a single instruction - MOVE

Justin DavisJustin Davis 05/09/2017 at 17:058 Comments

I know it doesn't look like much, but it's my first proof that my architecture is valid. After more struggles with my software tools, I was finally able to connect to the Cmod board and download. My first successful download gave me this output. There were a lot of things that needed to go right, but I guess I took care of them beforehand. I wasn't sure the clock was set right, and my UART needed to be running at the right speed, etc.

My program loaded the value 35 into ALU A, subtracted 3, and moved the result to the UART. This gives me the value 32 which is ASCII 2. I didn't have a stop to the program, so I think it's wrapping around the whole memory space and executing the code again and again. Fortunately, my program is set up so that a command of all zeroes will do nothing (MOV TRASH -> TRASH).

Next up is writing some software. I should also start thinking about how to do an assembler of sorts. This is where I get into uncharted territory for me. I've never written an assembler. I don't really want to have to worry about keeping track of memory locations for jumps or variables. But maybe that can wait for a little bit. I want to write some programs! Maybe I'll start working toward a bootloader so I can put programs in RAM over the UART.

Discussions

Andrew Starr wrote 05/11/2017 at 10:05 point

If you don't mind writing a bit of C, the asl assembler (http://john.ccac.rwth-aachen.de:8000/as/) is an extensible assembler - I modified it to be able to generate code for my computer project

  Are you sure? yes | no

Justin Davis wrote 05/11/2017 at 11:38 point

Wow this supports A LOT of processors.  And you've already had success with it...

  Are you sure? yes | no

Andrew Starr wrote 05/11/2017 at 20:56 point

Yep, it's quite well documented, and reasonably easy to add support for a new processor

  Are you sure? yes | no

Andrew Starr wrote 05/11/2017 at 10:02 point

Good work! It's a good feeling when it all 'comes together' :)

  Are you sure? yes | no

Xark wrote 05/10/2017 at 19:29 point

Hi, nice project!  Congrats on your "Hello 2" test program.  One idea for an assembler is to use SMAL32 (see http://homepage.divms.uiowa.edu/~jones/cross/smal32/ ).  It is a generic assembler with a simple macro language that makes it fairly easy to add "instructions" for custom CPUs (and for your CPU, mostly just need to define the special memory locations, I would think).  For an example of its use, see the MCPU at https://github.com/cpldcpu/MCPU (this is another project using a nifty 4 instruction tiny computer in VHDL/Verilog).

  Are you sure? yes | no

Justin Davis wrote 05/10/2017 at 19:59 point

Cool, I will definitely check this out.

  Are you sure? yes | no

Yann Guidon / YGDES wrote 05/09/2017 at 22:45 point

Congratulations !!!

  Are you sure? yes | no

Justin Davis wrote 05/10/2017 at 00:17 point

Thanks!

  Are you sure? yes | no