Giter Club home page Giter Club logo

deniser's Introduction

Deniser - Amiga Denise chip replacement

fancy deniser

Introduction

Deniser is a drop-in replacement for the Amiga computer Denise chip.

This repository contains board design files, FPGA logic source code and synthesis scripts. The idea is to make the material available for anyone to build and program the board for use as a Denise chip replacement.

Background

Denise is the Amiga custom chip responsible for most of the graphic related tasks such as bitplane display, palette registers, smooth scrolling, hardware sprites, flexible screen object priority, collision detection and more. In the Amiga, Denise operates in concert with the Agnus (DMA, blitter, copper) and Paula (I/O, interrupt controller). The chipset was released in 1985.

Board

Deniser board
Table 1. Main board components
Item Description Item Description

1

JTAG header

4

MachXO3D FPGA

2

User LED

7, 9

48-pin DIP connector

3, 5, 6

Bus transceiver 5 V โ†โ†’ 3.3 V

8

Voltage regulator

The Deniser board has 48-pin DIP form factor ready to be mounted in an IC socket. Schematic, BOM and more information can be found in the dedicated Deniser board document.

Installation

Installation is as easy as removing the original Denise IC from its socket and put the Deniser board in its place.

installed in A500

The jumper wires in the picture are not required for normal operation and can be disconnected after the FPGA on-chip configuration flash has been programmed.

EDA tool

Schematic and board layout is designed using Horizon EDA. Project files are located in the pcb directory from which Gerber files and bill of materials (BOM) can be generated.

Horizon EDA schematic editor
Horizon EDA board editor
Horizon EDA 3D view

Manufacturing

The PCB layout has been tailored for the JLCPCB four-layer process named JLC2313. The Deniser board can be assembled by hand. Reflow soldering is required for the QFN FPGA and the smallest BOM items are 0402 SMD capacitors.

Logic design

The digital logic is written in VHDL. Source code can be found in the hdl directory.

Lattice MachXO3D is the target FPGA device. The vendor tool Lattice Diamond 3.12 comes with the third party tool Synplify for synthesis and ModelSim for simulation.

FPGA implementation

To run the synthesis and place and route flow with Lattice Diamond:

cd dia
make export

The above command generates an FPGA bitstream. Configure the FPGA volatile RAM with make conf, or program the FPGA non-volatile flash with make prog. Information on how to connect the JTAG interface is available in the Deniser board documentation.

make slaunch starts an interactive Synplify synthesis session. make launch brings up Lattice Diamond interactively for working with the constraints, floor plan, etc.

Simulation

A bus functional model and example test cases are available to exercise and explore the Deniser logic. See the directories ghdl vsim and vsim-hw for running RTL simulation and gate level simulation.

License

The Deniser board is licensed under the GNU General Public License version 2 or any later version. This applies to the design files (schematic and board layout) in the pcb directory.

The logic design is licensed under the GNU General Public License version 2 or any later version. This applies to the VHDL files in the hdl directory.

Status

  • Known to work:

    • Schematic, PCB layout and BOM

    • Use in Amiga A500 with ECS Agnus (PAL)

    • Workbench, Deluxe Paint, demos

    • Extra Half Brite (EHB) mode

    • OCS features

  • Things that probably work:

    • Use in Amiga A1000, A2000 and A3000

    • Use with OCS Agnus

    • Collision detection

    • Hold-and-modify (HAM) mode

    • Genlock

  • Known limitations:

    • Some sprites appear above and below the display window.

    • No NTSC

Resources

The Deniser has been developed based on information in the following sources.

deniser's People

Contributors

endofexclusive avatar

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.