GithubHelp home page GithubHelp logo

infini8-13 / riscv-ms-soc Goto Github PK

View Code? Open in Web Editor NEW
10.0 1.0 0.0 86 KB

A RISC-V Mixed Signal System-on-Chip(SoC) produced by integrating RVMyth RISC-V Core with Phase Locked Loop(PLL) as a clock multiplier

License: GNU General Public License v3.0

Verilog 81.69% SystemVerilog 18.31%
fpga mixed-signal pll risc-v system-on-chip tl-verilog verilog

riscv-ms-soc's Introduction

Mixed Signal RISC-V SoC

Table of Contents

  1. Introduction-Mixed Signal SoC
  2. Tools
  3. RVMyth
  4. PLL Specs
  5. Moving Forward
  6. References
  7. Acknowledgements

Introduction - Mixed Signal SoC

Mixed signal SoC is a chip which contains both analog and digital blocks. The designers are adding more analog circuitry and increasing their complexities day by day. Not only that, they also contain digital control logic. As the process nodes shrink, the demand for integration grows. A divide and conquer approach is followed, where the analog and digital structures were dealt with separately. Usually, an analog IP (Intellectual Property) is bought as black- box.

mixed_signal_soc

Here, the digital block is the RVMyth RISC-V CPU Core and the analog block is a PLL(Phase Locked Loop). This project aims to integrate these two blocks with the PLL serving as a clock multiplier.

elaborated-ip-design

RVMYTH Core: https://github.com/infini8-13/riscv-tlv-core
PLL: https://github.com/vsdip/rvmyth_avsdpll_interface

Tools

Makerchip: Makerchip is a free web-based IDE as well as available as makerchip-app.

Icarus Verilog: Icarus Verilog is an open-source Verilog compiler used for simulation and synthesis.

GTKWave: GTKWave is a fully featured GTK+ based wave viewer, also open-source.

Xilinx Vivado: Xilinx Vivado delivers a SoC-strength, IP-centric and system-centric, next generation development. This project is developed using Vivado ML Edition 2021.1.

SandPiper: Sandpiper is a code generator that generates readable, well-structured, Verilog or SystemVerilog code from the given TL-Verilog code.

RVMyth

5 Stage Pipeline RISC-V32I Core written in Transaction Level Verilog(Later converted to Verilog for SoC Integration) pipelinedrv

PLL

Phase Locked Loop IP - avsdpll_1x8 - used a multiplier in this SoC and forms the analog block avsdpll

Moving Forward

To achieve the integration, a verilog block for the PLL should be generated and the output of the PLL is given as an input to the rvmyth. This will create the interface.

RVMyth: TL-Verilog to Verilog

Using Sandpiper to produce Verilog code from TL-V

  1. git clone https://github.com/shivanishah269/vsdfpga.git
  2. cd vsdfpga/verilog
  3. sandpiper-saas -i rvmyth.tlv -o rvmyth.v --iArgs

Designing avsdpll

Design a PLL as a clock multiplier using verilog and test the functionality.(PLL IP)

  1. iverilog avsd_pll_1v8.v pll_tb.v
  2. ./a.out
  3. gtkwave test.vcd

Verification

  • RTL Integration and Simulation of RVMYTH+PLL

    Now integrate both rvmyth and avsdpll using a top level testbench and test it to verify.

    1. iverilog rvmyth_pll_tb.v rvmyth_pll.v clk_gate.v
    2. ./a.out
    3. gtkwave rvmyth_pll.vcd gtk_rvmyth_pll_digital_1 Waveform Output

    gtk_rvmyth_pll_analog Output Waveform in Analog-Depicting the test program

  • FPGA Flow

    This flow involves RTL simulation(similar to above) in Vivado, beginning with IP Generation for the PLL and waveform interface as Clocking Wizard and Integrated Logic Analyser(ILA) IPs, respectively. Clocking Wizard generates HDL source code to configure a clock circuit to according our requirements specified in the source code, in our case a PLL acting as a clock multiplier. Next in the pipeline comes synthesis and implementation for the target Zedboard. Implementation involves optimization, placing and routing. It also involves checking of timing constraints.

    elaborated-ip-design

    clkwizard

    ILA

    clk_multi

    dac_contin

    design

References

  1. https://github.com/infini8-13/riscv-tlv-core
  2. https://github.com/vsdip/rvmyth_avsdpll_interface
  3. https://github.com/shivanishah269/vsdfpga
  4. https://github.com/vsdip/vsdmixedsignalflow

Acknowledgements

riscv-ms-soc's People

Contributors

infini8-13 avatar

Stargazers

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