TAMS / Java / Hades / applets: contents | previous | next | ||||
Hades Applets contents visual index introduction std_logic_1164 gatelevel circuits delay models flipflops adders and arithm... counters LFSR and selftest memories programmable logic state-machine editor misc. demos I/O and displays DCF-77 clock relays (switch-le... CMOS circuits (sw... RTLIB logic RTLIB registers Prima processor D*CORE MicroJava Pic16 cosimulation Mips R3000 cosimu... TinyMips int... TinyMips Sieve TinyMips stack TinyMips mul... TinyMips loa... TinyMips mul... TinyMips wit... TinyMips UAR... TinyMips UAR... TinyMips int... TinyMips int... Mips fast Sieve TinyMips wit... Mips - game ... Mips prime n... Intel MCS4 (i4004) image processing ... [Sch04] Codeumsetzer [Sch04] Addierer [Sch04] Flipflops [Sch04] Schaltwerke [Sch04] RALU, Min... [Fer05] State-Mac... [Fer05] PIC16F84/... [Fer05] Miscellan... [Fer05] Femtojava FreeTTS | TinyMipsWithRam: KS0108 graphics display
Circuit Description
This applet demonstrates the TinyMipsWithRam (on-chip memory)
and a graphics liquid-crystal display
(based on the KS0108 controller chip).
See here for the previous applet
with the standard TinyMips and an external MipsRAM.
Again, the on-chip memory improves simulator performance quite a bit,
because all instruction fetches and many load and store instructions
(except for the actual I/O operations) just access the internal memory.
Please check the introductory applet for the introduction and description of the TinyMips processor. The hardware structure used for this applet consists of the processor, some glue logic, the liquid-crystal display component, and a single RAM component that stores both the program and the output data.
The LCD demoSorry, text not ready yet.Notes: _start: lui $sp, 0x0000 addiu $sp, $sp, 0x1800 lui $gp, 0x0000 ori $gp, $gp, 0xb000 jal mainThis puts the stack base at byte-address 0000.1800, shown as word-address 0000.0600 in the MipsRAM editor. The global-pointer register is initialized to a value of 0000.b000. Program code generated by gcc accesses global (static) data via a signed 16-bit16-bit offset from the global pointer. Therefore, the first global data is at -32768+gp or gp-0x8000, which in our case maps to byte address 0000.3000, shown as word-address 0000.0c00 in the MipsRAM editor. The static internal variables used by the ks0108.c display driver routines are therefore mapped at (near) word-address 0000.0c00 in the RAM.
KS0108 display controller00 0011 111E E=0: display off E=1: display on 00 11SS SSSS set start address 0..63 00 01AA AAAA set byte address 0..63 00 1011 1PPP set page address 0..7 01 0000 0000 read busy flag (not implemented!) 10 DDDD DDDD write 8-bit data to selected address 11 DDDD DDDD read 8-bit data at selected address 1xx xxxx xxxx reset controller UsageWait until the applet is loaded. Click on the LC-display component or use the popup-menu on the LCD (popup > edit) to open the actual liquid-crystal display user-interface. Watch the program while it writes data to the display. You might also want to open the memory-editor (via popup > edit) The memory editor highlights the last read operation in green color, and the last write operation in cyan color, which allows you to easily watch the program execution. If you want to change the simulation speed, just select 'edit' on the clock-generator component, then edit the value of the clock-generator 'period' property, and select 'apply' (and 'ok' to close the clock-generator config dialog). Similarly, open the TinyMips user-interface window (via popup > edit) to watch the current register values. The binary program running on the processor was compiled and linked with the GNU gcc (2.7.2.3) and binutils cross-compiler toolchain on a Linux x86 host, with the final ELF loading and relocation done via the Hades Elf2rom tool. For details, see:
| |||
Print version | Run this demo in the Hades editor (via Java WebStart) | ||||
Usage | FAQ | About | License | Feedback | Tutorial (PDF) | Referenzkarte (PDF, in German) | ||||
Impressum | http://tams.informatik.uni-hamburg.de/applets/hades/webdemos/76-mips/27-lcd-onchip/lcd.html |