MyNixOS website logo
Description

RISC-V Core.

Lion is a formally verified, 5-stage pipeline RISC-V core. Lion targets the VELDT FPGA development board and is written in Haskell using Clash.

Where Lions Roam: RISC-V on the VELDT

Haskell CI Hackage Hackage Dependencies

Lion is a formally verified, 5-stage pipeline RISC-V core. Lion targets the VELDT FPGA development board and is written in Haskell using Clash.

This repository contains four parts:

  1. The Lion library: a pipelined RISC-V core.
  2. lion-formal: formally verify the core using riscv-formal.
  3. lion-soc: a System-on-Chip demonstrating usage of the Lion core on the VELDT.
  4. lion-metric: Observe Yosys synthesis metrics on the Lion Core.

Lion library

Usage:

  1. Add lion to build depends section of Cabal file
  2. import module in source files import Lion.Core

When connecting the core to memory and peripherals, ensure single cycle latency.

Clone the repository

  1. git clone https://github.com/standardsemiconductor/lion.git
  2. cd lion
  3. git submodule update --init

Features

Current Support

  • Architecture: RV32I (no FENCE, ECALL, EBREAK)
  • Configurable ALU adder and subtractor: use a generic (+) and (-) or SB_MAC16 hard IP

Future Support

All features will be added in a configurable manner extending the base RV32I configuration noted above

  • Zicsr, Control and Status Register (CSR) Instructions
  • CSR registers
  • RV32IM

Check out the Lion Development project to see which features are in progress.

References and Additional Resources

Metadata

Version

0.4.0.1

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows