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

Subversion Repositories socgen

[/] [socgen/] [trunk/] [Projects/] [valentfx.com/] [fpgas/] [ip/] [logipi_T6502/] [doc/] [Readme.txt] - Blame information for rev 135

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 135 jt_eaton
 
2
 
3
 
4
 
5
This component comes from the opencores t6507lp  project and makes it socgen compatible. The original project checked in by   Gabriel Oshiro Zardo and Samuel Nascimento Pagliarini was a atari 2600 on a chip. This project only takes the t6507 processor and uses it as a 6502.  It had some documentation and a  test suite that was somewhat working.
6
 
7
I chose it because a 6502 is  a useful module and had clean partitioning. The following changes were made:
8
 
9
 
10
 
11
1) Converted to a full 16 bit address bus.
12
 
13
   also hardcoded the 8 bit data bus. Hasn't changed in thirty five years.
14
 
15
2) Converted parameters to `defines
16
 
17
3) Converted reset to synchronous active high
18
 
19
4) Converted test suite to socgen format
20
 
21
   Each test is in it's own subdirectory and any needed code is assembled and loaded into sram
22
 
23
5) Design had no reset/interrupt vectors. Added reset vector. May add interupt(s) later.
24
 
25
6) Added enable logic so that it could work with synchronous sram
26
 
27
7) Design doesn't appear to be fully functional.
28
    CLC followed by BCC missed the offset by one clock cycle.
29
    JSR doesn't push high address on stack. puts wrong data in page 00
30
    Branch backwards doesn't work.
31
    read/modify/write did not work
32
    pha pushed onto page 0
33
    pha data latched one clock to late
34
    jmp indirect didn't work
35
 
36
8) Split T6502_fsm into smaller blocks for ease of documenting and verifying
37
 
38
9) Move branch decision logic into sequencer block
39
 
40
10) removed BCD logic
41
 
42
11) moved alu_opcode to instr_decode block
43
 
44
12) created datapath logic for alu_operand_a, alu_operand_b and alu_operand_c
45
 
46
13) split alu into alu_control and alu blocks
47
 
48
14) reworked the inst_decode signals to alu and pulled datapath out of sequencer
49
 
50
15) removed the latched alu_result. Outside of alu now uses raw
51
 
52
 
53
 
54
 
55
This appears to be a work in progress with numerous issues. I fixed enough of them so that I can
56
synthesize into an fpga and it runs the io_poll program on a Nexys2 Board. I will commit this as
57
a start but it is alpha code and will have bugs.

powered by: WebSVN 2.1.0

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