Git Product home page Git Product logo

cyc1000-rsu's Introduction

CYC1000 Remote System Upgrade

This repository contains a source code of the CYC1000 Remote System Upgrade project. The goal is to show possible ways to update the FPGA bitstream (Intel/Altera), which is stored on attached flash memory. The first implementation allows remote bitstream updates via the UART interface.

The project is using the following open-source codes:

To clone the repository, run:

git clone --recursive [email protected]:jakubcabal/cyc1000-rsu.git

FPGA design

TODO list

  • Write bitstream (.rbf) to flash memory via UART interface
  • Support for UART command to reboot FPGA
  • Support for multiple bitsreams
  • Write bitstream (.rbf) to flash memory via Ethernet

Remote update bitstream

The initial design with this Remote System Upgrade (RSU) logic must be loaded into the FPGA (flash memory) in the usual way using Quartus. Then it is possible to load new bitstream (.rbf) using the following Python script, which can be found in the sw directory.

python .\update_bitstream.py ..\rtl\synth\FPGA.rbf

The .rbf file can be obtained by conversion from a .sof file. Or you can set Quartus to generate an .rbf file already in the assembler stage at the same time as the .sof file. In order to continue to use this method of updating the bitstream, the new bitstream must also contain RSU logic.

On Windows 10, bitstream writing via the UART interface was very slow (~ 15 minutes), the solution was to change the Latency Timer setting to 1 ms. (Device manager -> Ports -> COM1 -> Advanced). Now writing takes about 2 minutes.

Top level diagram

          +----+----+
UART <----| UART2WB |
PORT ---->| MASTER  |
          +---------+
               ↕
       +=======+========+===============+ WISHBONE BUS
       ↕                ↕               ↕
 +-----+-----+    +-----+-----+    +----+----+
 | ASMI2 IP  |    | Remote    |    | SYSTEM  |
 |           |    | Update IP |    | MODULE  |
 +-----------+    +-----------+    +---------+
       ↕
     FLASH

Main modules description

  • UART2WB MASTER - Transmits the Wishbone requests and responses via UART interface (Wishbone master).
  • SYSTEM MODULE - Basic system control and status registers (version, debug space etc.).
  • ASMI2 IP - The ASMI Parallel II Intel FPGA IP provides access to the configuration devices (EPCQ), IP User Guide.
  • Remote Update IP - The Remote Update Intel FPGA IP core implements a device reconfiguration, IP User Guide.

License

The project is available under the MIT license (MIT). Please read LICENSE file.

cyc1000-rsu's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  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.