Git Product home page Git Product logo

q-engine's Introduction

Engine that Q

Block Diagram

bd

RISCV core

  • 5 stage pipeline RISCV RV32I core
  • no cache
  • VexRsicv framework
  • custom instruction extensions to control vector processor

Vector Processor

Array of identical slices controlled by the same Xbaseband instruction. Each slice contains memory bank, can manage multiple memory pointers, and organize data traffic between vector memory and the datapath.

For more details see: https://github.com/siglabsoss/riscv-baseband

Reconfigurable Data Path

The Reconfigurable Data Path (datapath) sub-module is the major computational part of the Q-engine. Most of complex arithmetic DSP operations performed by the units of the datapath. Vector processor push input data into the datapath and pull computed results out of the datapath. Specific datapath structure can be changed by Vector processor to perform different computational algorithms.

For more details see: https://github.com/siglabsoss/datapath

RISCV system

  • tightly coupled memory blocks
    • Instruction SRAM memory (iMEM) 8KiB
    • Data SRAM memory (dMEM) 1KiB
  • Control bus (APB) to program DMA block CSRs
  • Interrupt controller

DMA

  • Each DMA have control bus (APB) and data bus (AXI) connection.
  • End-Point DMA (connected to ADC / DAC) will have highest priority.
  • Each DMA may trigger RISCV interrupt
  • queue of descriptors

Input DMA

  • Takes start address and vector length from CSR
  • Pull data from streaming interface
  • Writes data to the Vector Memory sequentially
  • Sends interrupt when done

Output DMA

  • Takes start address and vector length from CSR
  • Reads data from the Vector Memory sequentially
  • Pushes into streaming interface
  • Sends interrupt when done

DDR DMA

  • Takes descriptor from CSR
    • start read address
    • start write address
    • vector length
  • Reads data from one memory
  • Writes data to the other memory
  • Sends interrupt when done

DMA to Memory Datapath

bd

Crossbar

*Arbitrates memory accesses for multiple dmas or memory read/write peripherals *Routes read data stream to the appropriate channel

Q tip

Oh, you'd like me to connect the dots for you, lead you from A to B to C, so that your puny mind could comprehend? How boring.

portrait

q-engine's People

Contributors

siglabsoss avatar

Watchers

 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.