Original FPGA platform
もともとMIPS互換のCPUコアを書き始めたのがきっかけですが、現状ではFPGAでSoCを実現する為のプラットフォームになりつつあります。 主に Xilinx のFPGAをターゲットにした、様々なコードを蓄積しており、主に Verilog 2001 と SystemVerilog で開発しております。
最近は、作者の発案したFPGA用のバイナリニューラルネットである LUT-Network の実行にも一部コードを流用しており、作者の中でも重要性が高まっております。
基本的には色々なものをごった煮で含んでいる状況ですが、参考になる部分だけ活用いただければと思います。
なお、現在少し詳細なドキュメントをこちらに準備中です。
/rtl/v1/mipsi/
以下にあります。
Verilogの勉強を始めた頃に Spartan-3 向けに試しに書いてみたプロセッサです。
ブロック図などはWebサイトの方にあります。
/rtl/jfive
以下にあります。
サンプルは
などになります。
/rtl/rtos 以下にあります。
FPGAで作成したRealTime-OSアクセラレータです。
今のところ ZynqMP の RPU(Cortex-R5) のアクセラレートのみですが、ITRON風味のRTOSスケジューリング補助回路となっています。
現状 Rust での開発を想定してサンプルを準備しております。
/rtl/v1/gpu 以下にあります。
フレームメモリを使わないフィルタ型の低遅延なリアルタイム描画を目指したものです。
動画はこちらです。
もはやこれが Jelly のメインかもです
以下、Jelly 内のサンプルプログラムの紹介です。
projects/zynqmp/zynqmp_rpu/zynqmp_rpu_rust
projects/kv260/kv260_udmabuf_sample
projects/kv260/kv260_imx219
projects/kv260/kv260_rtos_sample
projects/kv260/kv260_jfive_simple_controller
projects/kv260/kv260_jfive_micro_controller
projects/ultra96v2/ultra96v2_udmabuf_sample
projects/ultra96v2/ultra96v2_display_port
projects/ultra96v2/ultra96v2_imx219_display_port
projects/ultra96v2/ultra96v2_rtos
projects/ultra96v2/ultra96v2_jfive_sample
projects/ultra96v2/ultra96v2_hls_test
projects/ultra96v2/ultra96v2_imx219_hls_sample
projects/zybo_z7/zybo_z7_udmabuf_sample
projects/zybo_z7/zybo_z7_imx219
projects/zybo_z7/zybo_z7_imx219_hdmi
あまりに ZynqMP ネタが増えてきたのでZynqMPを理解しようという記事を書いてみました。
license.txt にある通り、MIT ライセンスとして置いておきます。