[Home] [8085] [Gnome]
Gnome
Up ]

Programmers model

The Gnome CPU could be found in an old text book about the concept of CPLD and FPGA programming. It can't be be bought anymore but I decided to let it "live" for several reasons:

  1. The structure simple and can be understood with very little effort.

  2. It presents the most common instructions and addressing forms.

  3. The VHDL code presents a good practice in order to write synthesisable code (only one clocked process)

  4. Its possible to make enhancement of the instructions-set and the structure (exercises for students)

The Gnome was intended to implementation at a CPLD based kit (95108) with 108 F/F's and a 32kbyte external RAM.

In my own implementation is the external RAM replaced with a "special" designed Memory block (more later)

 

 

  IR = Instruction Register

This 8-bit register will hold instruction (Opcode+Data/Addr) while the Instruction Decoder working
if
ld_ir='1' will all 8-bit be loaded with the content of the Data-BUS
if
ld_ir_lsn='1' will the 4-bit lower bit (least significant nipple) be loaded with the least significant bit of the Data-BUS.
In all other cases will the content of the IR be unchanged.

  PC = Program Counter

This 7-bit register serve the purpose of pointing at the next Instruction for execution.
if
inc_pc='1' will the content be incremented by one (at the next clock pulse)
if
jump_pc='1' will the content be loaded with the 7 least significant of the IR register.
in all other cases will the content of the PC be unchanged.

  ALU = Arithmetic Logic Unit

This Unit will perform operations defined with the Three bits - alu_op.
For instance will the ADD-operation take the lower four bits of the IR and add with the content of the ACC + the Carry flag. The result (the Sum) will be placed in the ACC and the Carry.

  ID = Instruction Decoder

This unit is the "brain" of the CPU - its Fetches - Decodes and Executes the instructions.
All control signals like:
inc_pc, jump_pc, ld_ir, ld_ir_lsn, alu_op etc. originates from this unit and set in order to serve the action defined by the instructions.

   

The updated version of the Gnome - fitted for presentation at the BASYS board and there's lots of stuff which can be done better and smarter. Yet the purpose to present an example of a CPU and its principles.

The details will presentated elsewhere.