Skip to content

Category: qSoC

qSoC – The QMEM bus

QMEM bus specification This post describes the QMEM bus, the different cycles allowed, the bus elements and different bus configurations supported. 1. Introduction 2. Features 3. Signals Description 4. Cycles Description 5. Bus Elements 6. Bus Configurations Introduction QMEM (abbreviated from quick memory), is a flexible, portable, simple and fast system interconnect bus, specifically targeted at SoC systems for their inter-chip communication needs. QMEM is based on synchronous memory bus with added flow control signals,…

qSoC – The OR1200 CPU

The OR1200 is a RISC-type, Harvard architecture (separate instruction and data buses) synthesizable CPU core, written by the OpenCores community. It can be configured with a number of optional components, such as cache, MMU, FPU, timer, programmable interrupt controller, debug unit, etc. For sake of simplicity, I decided to disable most of the optional components, except the hardware multiplier and divider, all other features will be added if/when needed. The OR1200 has standard GNU tools available,…

qSoC, or how to build an FPGA SoC from scratch

Introduction I’d like to talk about how to build a fast, lean, clean SoC machine. What is an SoC? An SoC, or a System On a Chip, is, simply put, a microprocessor with some common peripherals attached, like ROM, RAM, SDRAM controller, UART, SPI, GPIO, and other I/O ports or protocols, all tied up into a system. An SoC is not unlike a microcontroller, which also has a microprocessor bundled with some sort of memory…