My CPU

Homebrew CPU construction / házi készítésű processzor

Friss topikok


FunCPU - 7 bit homebrew CPU dedicated to Functional Programming

2015.10.14. 22:01 Budapesti álmodozó

Fun CPU is a seven bit homebrew processor with unique, unconventional design to natively support functional programming in machine language. FunCPU employs a tagged architecture, but does not have registers, of which contents are exposed to the programmer. Sure, it has some internal registers, but…

Szólj hozzá!

Címkék: functional programming FunCPU Homebrew CPU functional cpu homebuilt cpu

FunCPU - Arithmetic Logic Unit

2015.10.11. 08:54 Budapesti álmodozó

The ALU module is very simple and straightforward. It is mounted together with the control board encoding logic on a single board. It performs a simple addition operation on the two operands as described in the following table. The two selector bits define the two input sources. ALU…

Szólj hozzá!

Címkék: alu functional programming Homebrew CPU funCPU functional cpu arithmetic logic unit

FunCPU - Clock Generator

2015.08.03. 11:00 Budapesti álmodozó

Construction of FunCPU has begun with the clock generator. The module is already fully functional on its own, but space is left for incorporating more components for the EPROM chips storing the micro-program and for some control logic.   An 555 is used to generate the base for the clock…

Szólj hozzá!

Címkék: FunCPU Homebrew CPU Clock Generator

Intefacing with the Functional CPU

2014.07.29. 22:32 Budapesti álmodozó

Now let us take a look at how the functional CPU (FunCPU for short) can be programmed in reality, from the programmer’s point of view.   This will be covered by looking at each gizmo  (i.e. button, switch, LED, etc.) on the front/control panel. On the bottom right side, the purpose of the…

Szólj hozzá!

Címkék: functional programming Homebrew CPU funCPU control board

FunCPU - Passing Arguments

2014.07.23. 20:13 Budapesti álmodozó

It is not trivial how to handle argument passing in the lack of stack, or any dedicated storage for parameters. Consider the following examples: fac (n):= n*fac(n-1) fac(add(2,3))? ack(add(fac(fac(2)+fac(1)),fac(1)),1)? I wanted a simple solution, which still works without posing serious…

Szólj hozzá!

Címkék: functional programming FunCPU Homebrew CPU argument passing

FunCPU - Parenthesis, Precedence

2014.07.22. 17:03 Budapesti álmodozó

When evaluating expressions, the CPU must exactly know how to evaluate an expression, what function/expression parts should be evaluated first, next, and last etc. Therefore the representation of expressions and functions must be unambigous with respect to parenthesis and priorities. In…

Szólj hozzá!

Címkék: functional programming FunCPU Homebrew CPU parenthesis operator precedence

FunCPU - Function Encoding Schema

2014.07.18. 22:43 Budapesti álmodozó

In the previous post we have seen how 8 bit symbols represent literals, arguments, functions, etc. Similarly, it was vital to have a good and efficient function encoding. Basically in the context of function encoding we need to be able to answer the following question: Where does the function…

Szólj hozzá!

Címkék: functional programming FunCPU Homebrew CPU function encoding

FunCPU - Instruction set

2014.07.10. 21:42 Budapesti álmodozó

FunCPU will operate with 7-bit numerals (to understand why see the next couple of posts) and will directly support the following built-in functions: inc(x) is used for incrementing a value, that is for any x: x+1=inc(x). dec(x) is used for decrementing a value in the similar fashion. if-then-else…

Szólj hozzá!

Címkék: functional programming FunCPU Homebrew CPU built-in functions