OpenCores
URL https://opencores.org/ocsvn/blue/blue/trunk

Subversion Repositories blue

[/] [blue/] [trunk/] [blue8/] [todo.txt] - Rev 2

Compare with Previous | Blame | View Log

Todo:

Remember to change timing constants in debouncer before real synthesis.
Remember to change timing constants in displayhex before real synthesis.

Remember to remove "hard coded" program in core before real synthesis.


Features to add:
External memory interface (done)
DLL clock (done; have to run at 40MHz 
  for RAM to work right)
Condition register (Z, C, O) (done)
TSTA
CMP XXXX (done)
SZ, SNZ, SC, SNC, SOV, SNO (done)

The UART is hard coded to 57600/8/N/1
You can access it via memory or use it when in load mode to load words (high byte first, then low byte)

Memory map:
FF0 - Switch register (read/write)
FF1 - Actual switches (low 8 bit) + enter key (top bit) (read only)
FFE - UART Status (xmit buf empty, xmit shift empty, frame err, overflow, available, + 11 0 bits)
FFF - Uart character (read/write) on receive, bit 15 is character available flag





Switches:
0 - Reset
1 - Select (cycles LEDs from 0 to 5)
2 - Action (see below)
3 - Enter (see below) [ closest to slide switches]


LEDs:
7 - Q output (was running)
6 - Running (was 7)
5 - Run/Stop entry mode
4 - Step mode
3 - Deposit (Register Select)
2 - Examine (Deposit)
1 - Load PC (Examine)
0 - Register Select (Load PC)

Old version:
State (from LED)        Action          Enter
5                       Run/Stop        Enter
4                       Step            Enter
3                       Select register Enter
2                       Deposit         Enter
1                       Examine         Enter
0                        Load PC         Enter

New version:
State (from LED)        Action          Enter
5                       Run/Stop        Enter
4                       Step            Enter
3                       Deposit         Enter
2                       Examine         Enter
1                       Load PC         Enter
0                        Select register Enter


When enter is held down, regsel is temporarily set to switch
in all modes 
 

Decimal points on display (#4 is leftmost):
4 - IR (PC)
3 - SW (IR)
2 - AC
1 - PC (SW)

F/CP1 - PC -> Z, MAR
F/CP2 - [M] -> IR  (dep/exam sets IR to HLT)
F/CP3 - 1 -> Y
F/CP4 - Y+Z -> PC
F/CP5 - execute
F/CP6 - execute
F/CP7 - execute
F/CP8 - execute


###

Flags 
0=overflow
1=zero
2=carry (set on add and shift)

skip=0x0010+3 bit condition
So 9 = SOV
A=SZ
C=SC
But you can mix these for "or" conditions
So E=SZC  (skip zero OR carry)

if bit 3 is set (+8) then reverse flags
before test, so SZ becomes SNZ

Possible instructions:
INC/DEC (memory)
Call/return with stack or link

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.