OpenCores
URL https://opencores.org/ocsvn/a-z80/a-z80/trunk

Subversion Repositories a-z80

[/] [a-z80/] [trunk/] [readme.txt] - Diff between revs 8 and 17

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 8 Rev 17
Line 1... Line 1...
                               A-Z80
                               A-Z80
             A conceptual implementation of the Z80 CPU
             A conceptual implementation of the Z80 CPU
             ------------------------------------------
             ------------------------------------------
                    for Altera and Xilinx FPGAs
                for Altera, Xilinx and Lattice FPGAs
 
 
This project is described in more details at: www.baltazarstudios.com
This project is described in more details at www.baltazarstudios.com
 
 
Prerequisites:
Prerequisites:
* Altera Quartus and Modelsim (free web editions) OR
* Altera Quartus and Modelsim (free web editions) OR
* Xilinx ISE (free Webpack edition)
* Xilinx ISE (free Webpack edition) OR
 
* Lattice ICECube toolchain from Synopsis (Lattice tested by JuanS)
* Python 3.5.x
* Python 3.5.x
 
 
A-Z80 "cpu" consists of several functional blocks and a top-level module:
"cpu" folder contains A-Z80 CPU functional blocks and top-level modules:
  alu         contains ALU block, ALU control and flags logic
  alu         contains ALU block, ALU control and flags logic
  bus         contains data bus switches, pin logic, address latch and the
  bus         contains data bus switches, pin logic, address latch and the
              address incrementer
              address incrementer
  register    contains CPU register file and the register control logic
  registers   contains CPU register file and the register control logic
  control     contains PLA, the sequencer and other control blocks
  control     contains PLA, the sequencer and other control blocks
  toplevel    A-Z80 top level core, interfaces and the test code
  toplevel    A-Z80 top level core, interfaces and test code
 
 
"host" integrates the A-Z80 into several complete top-level designs:
When exporting CPU files to use in your own project, run "export.py" script.
  "basic" contains a simplified board consisting of A-Z80 CPU, memory
 
          and UART modules that can run small Z80 programs
 
  "zxspectrum" contains an implementation of the Sinclair ZX Spectrum
 
 
 
  You probably want to start by loading one of those designs.
"host" folder integrates the A-Z80 CPU into several fully functional designs:
 
  "basic_de1" contains a simplified board consisting of A-Z80 CPU, memory
 
          and UART modules that can run small Z80 programs on Altera DE1
 
  "basic_nexys3" contains the same example project but for Xilinx Nexys3 board
 
  "zxspectrum_de1" contains an implementation of the Sinclair ZX Spectrum
 
          for Altera DE1 board
 
 
"tools" contains various tools related to the project.
You may want to start by loading one of those designs.
 
 
 
"tools", "resources" contain various tools related to the project, reverse
 
  engineering Z80 and testing.
 
 
Read the 'readme.txt' files in each of the folders for additional information.
Read the 'readme.txt' files in each of the folders for additional information.
Read 'Quick Start' and 'Users Guide' documents in the 'docs' folder.
Read 'Quick Start' and 'Users Guide' documents in the 'docs' folder.
 
 
A-Z80 Logic Design
A-Z80 Logic Design
Line 38... Line 44...
Quartus projects are only used as containers for files within individual
Quartus projects are only used as containers for files within individual
modules; complete and working top-level solutions that use A-Z80 are in the
modules; complete and working top-level solutions that use A-Z80 are in the
"host" folder.
"host" folder.
 
 
Majority of sub-modules are designed in the Quartus schematic editor and then
Majority of sub-modules are designed in the Quartus schematic editor and then
exported to Verilog for simulation and top-level integration. If you decide
exported to Verilog for simulation and top-level integration.
to create a design using the A-Z80 CPU, you can either use schematic files
 
(in Altera Quartus) or corresponding Verilog sources (for both Altera
 
and Xilinx tools).
 
 
 
Simulation
Simulation
==========
==========
Before you can load and simulate any module through Modelsim, you need to set up
Before you can load and simulate any module through Modelsim, you need to set up
the environment by running a Python script 'modelsim_setup.py'. The script creates
the environment by running 'modelsim_setup.py'. The script creates relative file
relative file path mapping to source files in all module project folders.
path mapping to source files in all module project folders.
 
 
Each functional block, including the top level, contains a Modelsim simulation
Each functional block, including the top level, contains a Modelsim simulation
profile: .//simulation/modelsim/test_.mpf
profile: .//simulation/modelsim/test_.mpf
 
 
After opening a Modelsim session, create a library and compile sources:
After opening a Modelsim session, create a library and compile sources:
ModelSim> vlib work
ModelSim> vlib work
Compile->Compile All
Compile->Compile All
Run a simulation through one of the defined configurations.
Run a simulation through one of the defined configurations.
 
 
If you get a message "Unable to compile", you likely forgot to run 'modelsim_setup.py'.
If you get a message "Unable to compile", you likely forgot to run 'modelsim_setup.py'.
Exit ModelSim, git revert changes to ".mpf" file, delete "work" folder and run
Exit ModelSim, revert changes to ".mpf" file, delete "work" folder and run
'modelsim_setup.py'. Rinse, repeat.
'modelsim_setup.py'.
 
 
Each project contains a set of predefined waveform scripts which you can
Each project contains a set of predefined waveform scripts which you can
load before running a simulation:
load before running a simulation:
.//simulation/modelsim/wave_.do
.//simulation/modelsim/wave_.do
 
 

powered by: WebSVN 2.1.0

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