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

Subversion Repositories light8080

[/] [light8080/] [trunk/] [sw/] [demos/] [exer/] [readme.txt] - Blame information for rev 87

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 87 ja_rd
 
2
8080EXER is an instruction exerciser that runs all the 8080 opcodes with a large
3
number of parameter combinations. The program computes a CRC value for the CPU
4
state after testing each block of CPU opcodes. that CRC value is then compared
5
against the CRC value produced by an original, silicon i8080.
6
If the CRC values match, it can safely be assumed that the core and the original
7
8080 behavior is identical.
8
 
9
The program was taken from this web:
10
 
11
http://www.idb.me.uk/sunhillow/8080.html
12
 
13
Here you can find a more detailed explaination.
14
 
15
I have made the following modifications to the original 8080EXEC:
16
 
17
- Added code that emulates a few CP/M BDOS functions needed to output text.
18
- Adapted the code to work on the C2SB demo board within the l80soc module.
19
- Added the original Intel CRC values for comparison.
20
 
21
The source code is in a format compatible to CP/M M80 assembler and incompatible
22
to TASM, AS80 and all other Windows and Linux 8080-compatible assemblers that
23
I know about. Therefore it can only be compiled from within CP/M. You can use
24
SIMH for that. I will not include instructions but you can find plenty in SIMH
25
web site.
26
 
27
File 'MAC.SUB' is a CP/M 'batch' file that you can use to assemble the source
28
with:
29
    DO MAC 8080EXER
30
 
31
I hope this saves you the trouble to find and read M80 documentation...
32
 
33
At any rate, i have included the compiled HEX file so all you have to do is
34
run the build.bat script. Or just use the pre-built obj_code_pkg.vhdl included.
35
 
36
Synthesis instructions:
37
=======================
38
 
39
Assuming you are using Quartus-2 and targetting a Terasic DE-1 dev board (for
40
which the demo is tailored), you need to follow these steps:
41
 
42
1.- Create a new project for the DE-1 board, (device EP2C20F484C7, etc.).
43
2.- Add the following vhdl files to the project:
44
        -# /vhdl/light8080.vhdl
45
        -# /vhdl/demos/c2sb/c2sb_soc.vhdl
46
        -# /vhdl/soc/*.vhdl
47
3.- Select file c2sb_soc.vhdl as 'top' entity.
48
4.- Configure dual-purpose pin nCEO as regular i/o (Device settings->Device and
49
    pin options->Dual-purpose pins)
50
5.- Import pin location constraints from file /vhdl/demos/c2sb/c2sb_pins.csv.
51
 
52
That's all. Synthesize and have a terminal (19200/8/N/1) connected to the UART
53
connector. Reset pin is button 1 (rightmost).
54
 
55
 
56
Execution instructions:
57
=======================
58
 
59
You need to run this with a terminal connected to the SoC UART (19200/8/N/1).
60
The tests will take quite a long time to run at 50MHz (about 11 minutes).
61
All you have to do is watch the messages.
62
 
63
In the present version of the core, all tests should succeed except for the
64
special opcode block (): one of those instructions is
65
incompatible to the original intel silicon.
66
 
67
Note that ALL instructions have been tested for compatibility to the
68
DOCUMENTATION. We're talking about replicating undocumented behavior here.
69
 

powered by: WebSVN 2.1.0

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