Computer systems don't make much sense these days without peripherals, and the ZipCPU is no different. The following is a truncated list of peripherals that have been used with the ZipCPU.

UART controller Contains both basic, and fully featured, serial port controllers Two features make this controller particularly valuable. The first is the four basic UART testing designs in the bench/verilog directory. When starting with any new design, before I know how the board designer labeled the UART wires, I use these basic designs to test them. Once tested, I can usually move quickly to a much larger and more complex design with a debugging bus within it. The second valuable feature is the Verilator UART simulator, which forwards a simulated designs UART ports to a TCP/IP network channel.

Wishbone based scope This plus the UART to wishbone bus converter I have might easily be considered the basics of any project I work on. Using this wishbone scope, I have debugged many, many interfaces--some listed here. I would recommend it for anyone interested in incorporating an internal logic analyzer (scope) into one of their projects. There is an AXI-lite version of the scope in the repository as well.

Hyper-RAM Controller This is also a work in progress. While it currently passes a formal verification step, it doesn't do so with the actual IO delays involved in using hardware IO pins (yet). More to come.

Ethernet Packet controller A full featured RMII network packet interface, contained within the OpenArty distribution. Also within that distribution is a demonstration "ping" program for the ZipCPU.

I2C Controller This I2C controller repository contains both a slave and master I2C controllers, each wishbone controlled. It has demonstrated itself via the ability to read and write EDID display information as part of an HDMI project.

GPS schooled clock This project takes, as input, the PPS signal from a PMod GPS and locks an internal counter to the signal. Using this core, you can record the time events to a precision of less than a fraction of a microsecond. This project is currently part of my OpenArty project, but I've applied it to other projects of mine as well. Currently, using the crystal oscillator on the Arty and the PMod GPS from Digilent, it can timestamp events within the design to within about 500ns or so of absolute time. I have every reason to believe that, were I able to actually test the algorithm properly using a proper OCXO and (better yet) an external reference clock, then I would be able to measure a much better performance--I just don't have the test setup to try this.

RTC Clock This is a very simple, almost beginner, exercise to create a clock in hours, minutes and seconds. It also includes a minutes and seconds count-down timer, a stop watch, and alarm capability.

SDSPI SD-card controller In order to use the SD Card on the XuLA board, I needed a SPI based SD-Card controller. While I intend to upgrade this to SDIO in the future, the SPI based controller is still valuable for some designs. Update: I can now read and write files from/to the SD Card. I hope to post soon about how to build a boot loader in ROM to load either software or a design from an SD card using this controller.

FM transmitter hack Just to prove FPGA's are in no ways inferior to Raspberry PI's, this peripheral can be used to turn your GPIO pins into an ad-hoc FM transmitter.

WBPMIC A very simple controller designed to read from Digilent's MEMs microphone PMod.

WB Oled, a controller for the Digilent PMod OLEDrgb display A special feature of this design is the GTKmm based simulation component, allowing you to visually "see" what the controller would be placing on the screen.

ICAPE Interface Xilinx's internal configuration access port provides some very useful features. Getting it running initially, though, was a touch of a challenge. This project captures what it takes in a Wishbone peripheral format.