GithubHelp home page GithubHelp logo

zipcpu / xulalx25soc Goto Github PK

View Code? Open in Web Editor NEW
16.0 4.0 3.0 486 KB

A System on a Chip Implementation for the XuLA2-LX25 board

Makefile 1.59% C++ 32.71% Verilog 58.52% C 0.98% Shell 6.09% Perl 0.12% Coq 0.01%
fpga wishbone-bus soc zipcpu

xulalx25soc's Introduction

Description

This project attempts to take two separate projects, the ZipCPU and Xess.com's XuLA2-LX25, and merge them together into a single system on a chip implementation. As currently implemented, this SoC offers the following peripherals to the ZipCPU within:

  • External peripherals

    • 14 GPIO inputs, 15 GPIO outputs
    • PWM output (can be swapped for an FM transmitter ...)
    • Rx and Tx UART ports
    • 1MB SPI flash, together with a read/write controller
    • 32MB SDRAM capable of non-stop pipeline reads and writes
    • SD Card, sharing the SPI wires of the flash
  • Internal peripherals

    • Real-time clock and date
    • Access to the FPGA configuration port, for unattended updates
    • ZipCPU debug/configuration port access from JTAG
  • ZipCPU peripherals

    • 3x timers, each of which can be programmed either in a one shot mode or as a repeating interval timer
    • A watchdog timer, and a wishbone bus watchdog timer
    • Two interrupt controllers
    • Direct Memory Access (DMA) controller for unattended memory movement

Current Status

The SoC is fully functional. Keeping the project from being complete, however, is the lack of an integrated specification document. (Specification documents do exist, however, for many of the peripheral components.)

20170718 Update: The ZipCPU has been upgraded to the 8-bit byte ISA, catching the distro up with the latest compiler.

Unique Features

This System on a Chip (SoC) controller has some unique features associated with it, above and beyond the peripherals listed above. Primary among those is the JTAG to 32-bit wishbone master conversion. This makes it possible for an external entity to read from or write to the wishbone bus. Uses include verifying whether or not peripherals work, as well as configuring the CPU, memory and flash for whatever purpose one might have. This particular capability was designed so that host (i.e. FPGA control) programs (external to the FPGA) can call a common set of bus interface functions to communicate with the FPGA, regardless of how the bus was implemented.

A second unique feature is a PWM driver that spreads its digital energy into higher (non-auditory) frequencies which can then be filtered out easier with a simple low-pass filter. As an example, sending a zero, or half-pulse width, will result in alternating digital ones and zeros from the driver. While I expect this will have a pleasing effect on the ear, especially since these transactions will be outside of the normal hearing range, this is the first time I have tried it and the jury's still out regarding whether or not it works or even works well.

Finally, while it may not really be that unique, this core does feature a fully functional SDRAM controller capable of sustaining one read cycle (or write cycle) every two clocks when pipelined. Unlike many other dynamic memory controllers, this one was not created from a proprietary, closed source, memory interface generation facility--so it is available for anyone to examine, study, and even comment upon and improve--subject to the conditions of the GPL.

Commercial Opportunities

If the GPLv3 license is insufficient for your needs, other licenses can be purchased from Gisselquist Technology, LLC.

xulalx25soc's People

Contributors

foobar2016 avatar zipcpu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

xulalx25soc's Issues

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.