/jelly

Original FPGA platform

Primary LanguageVerilogMIT LicenseMIT

Jelly -- SoC platform for FPGA

概要

MIPS互換のCPUコアを書き始めたのがきっかけですが、現状ではFPGAでSoCを実現する為のプラットフォームになりつつあります。 主に Xilinx のFPGAをターゲットにした、様々なコードを蓄積しており、主に Verilog 2001 で開発しております。

最近は、作者の発案したFPGA用のバイナリニューラルネットである LUT-Network の実行にも一部コードを流用しており、作者の中でも重要性が高まっております。

基本的には色々なものをごった煮で含んでいる状況ですが、参考になる部分だけ活用いただければと思います。

MIPS-I 互換プロセッサ

/rtl/cpu/ 以下にあります。

Verilogの勉強を始めた頃に Spartan-3 向けに試しに書いてみたプロセッサです。

ブロック図などはWebサイトの方にあります。

リアルタイムGPU

/rtl/gpu 以下にあります。

フレームメモリを使わないフィルタ型の低遅延なリアルタイム描画を目指したものです。

動画はこちらです。

ライブラリ群

もはやこれが Jelly のメインかもです

  • rtl/library FIFOとかRAMとか様々なRTLのパーツ
  • rtl/bus AXIとかWISHBONEとかのバスブリッジ等のパーツ
  • rtl/math GPUとかで使うような算術パーツ
  • rtl/peripheral UARTとかI2CとかTIMERとかののパーツ
  • rtl/video DVIとかHDMIとかのビデオ処理
  • rtl/image 画像処理用パーツ(ニューラルネットの畳み込みでも利用)
  • rtl/model シミュレーション用の便利モデルいろいろ

Zynqベースのシステム

ライセンス

license.txt にある通り、MIT ライセンスとして置いておきます。