Giter Club home page Giter Club logo

amigo's Introduction

Amigo - Amiga 1000, in Verilog 2001, from schematic

Copyright 2010, Jason S. McMullan

The aim of the Amigo is to create a schematic-level
capture of the digital components of the 
Commodore Amiga 1000.

My personal reason for this project is to have a
functional Verilog simulation that can be used to:

* Validate emulators
* Convert into FPGA (a la Minimig)
* Assist in debugging old Amiga hardware
* Regenerate the Amiga 1000 schematic from Verilog

The last point seems to be the most important for me.
All of the Amiga 1000 schematics I have been able
to obtain online are very blurry, almost to the point
of unreadability. 

My hope is that the 'Amigo' will be able to be used
to generate a faithful and readable schematic one day.

- Jason S. McMullan

====

Progress so far:

* Selectable Wishbone cores for emulating the Motorola 68000

  - ao68000 (from OpenCores)
  	- True Motorola 68000 emulation, but
  	  Icarus Verilog 0.9 appears to hate it.

  - ucore (from OpenCores)
  	- MIPS32 core, which I am using for debugging
  	  under Icarus.

  - Any other Wishbone complaint 32-bit CPU core should be
    pluggable, via the 'Motorola_16_to_w32.v' module and
    a small amount of glue logic for interrupts.

* Amiga 1000 Daughterboard logic appears to be complete
  - $E00000 mirror of $F80000 does not exist, could be
    due to erroneous PAL logic. Will verify against my
    reference hardware.

Things to do:

* Create wrappers for Minimig's OCS cores (Paula, Agnus, Denise),
  to leverage the Minimig work for Amigo.

* Decide upon (for REAL!) whether to make the first pass of the
  Amigo 1000 a Rev A or a Rev C machine.
  - This affects mostly the part numbering (ie U6U or U6S for the
    M68000, etc).
  - It is most likely I will be doing a Rev A, as that appears to
    be what I have as my reference hardware.

* Finish out the Amigo capture, including pullup resistors, ferrite
  beads, etc.

* Decide what to do about the analog components (ie RGB to NTSC
  conversion circuity). Icarus Verlog doesn't (as of 0.9.x)
  support Verilog-AMS, so I may have to put that off.

amigo's People

Contributors

ezrec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

amigo's Issues

is formula for ROM01 correct?

I really appreciate your great work!

There is just one little thing.

from DAUGCAS.v:
initial ROM01 = 1'b0;
always @(*)
ROM01 <= ROME && _A17 && _WPRO && _SROM && _PRW;

This doesn't match Commodore's documentation, they say _A18 instead of _A17:
ROM01 <= ROME && _A18 && _WPRO && _SROM && _PRW;

See the A1000 "source" files from
https://www.amigawiki.org/doku.php?id=de:parts:pld_download

When I get it right this is the switch signal which switches the WOM to read-only, and disables the BOOT-ROM after the WOM has been written. This should be active only for the memory area from 0xf80000 to 0xfbffff, but it must not be active above 0xfc0000 because that area is used to write the to the WOM?

0xf8 = 1111 1000
where the first '0' is /A18 and not /A17.

When you use /A17 instead of /18, the signal would be active for 0xf80000 to 0xf9ffff and from 0xfc0000 to 0xfdffff.

I'm currently working on Kick-Board like the KUPKE / Golem Kickstart ROM Module, see here:
https://www.bigbookofamigahardware.com/bboah/product.aspx?id=1557

Therefore I needed to understand the WOM mechanism (how to disable it) and I try to understand the PAL equations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.