chipsalliance/chisel
Verilogを生成する、パラメーター化可能なデジタル回路ジェネレーターを記述するための、Scalaに組み込まれたオープンソースのハードウェア記述言語です。
- スター
- 4,829
- フォーク
- 666
- 未解決の Issue
- 522
- 最終コミット
- 昨日
これは何?
Chisel(Constructing Hardware in a Scala Embedded Language)は、レジスタ転送レベルでデジタル回路を設計するためのハードウェア記述言語です。Verilogを手書きする代わりに、回路を構築するScalaコードを記述することで、関数、クラス、ループといった通常のプログラミング構文を使ってハードウェアを生成できます。出力されるのは合成可能なVerilogまたはSystemVerilogで、ASICとFPGAの両方の設計に利用できます。
中核となるのは回路ジェネレーターです。たとえば、係数のリストで定義したFIRフィルターのようなパラメーター化されたScalaクラスをインスタンス化し、複数の設計で再利用できます。Chisel標準ライブラリー(chisel3.util)には、FIFOキュー、アービター、ready-validインターフェースなどの再利用可能なコンポーネントが用意されています。Chiselは、中間表現のFIRRTLとCIRCTのfirtoolコンパイラーを基盤としています。
このプロジェクトはApache 2.0ライセンスで公開され、CHIPS Allianceのもとで開発されています。リポジトリーには、コアライブラリー、コンパイラープラグイン、VerilatorとVCSを対象とするシミュレーションライブラリーsvsimのサブプロジェクトが含まれています。チュートリアル、教科書、プロジェクトテンプレートへのリンクはdocsから参照できます。
主な機能
- 01Scalaでハードウェアを記述し、クラス、関数、ループを再利用してパラメーター化された回路を作成できます。
- 02ChiselStageとfirtoolを通じて、合成可能なVerilogまたはSystemVerilogを生成します。
- 03FIFOキュー、アービター、Decoupled ready-validインターフェースを備えた標準ライブラリーを提供します。
- 04VerilatorとVCSでシミュレーションを実行するためのsvsimが含まれています。
- 05Millでビルドでき、sbtプロジェクトで利用するためのアーティファクトを公開しています。
ユースケース
- ASICまたはFPGA設計向けに、再利用可能でパラメーター化されたIPブロックを作成する。
- ジェネレーター形式のコードが必要なプロセッサーやアクセラレーターを設計する。
- 最新のプログラミング言語とオンラインチュートリアルを活用して、デジタル設計を学ぶ。
- ScalaコードからVerilogを生成し、後続の合成・シミュレーションフローに利用する。
クイックスタート
- 1
あらかじめ設定されたプロジェクトを提供する Chisel Template リポジトリから始めます
- 2
または、build.sbt に Chisel の依存関係とコンパイラプラグインを追加して、自分のプロジェクトをセットアップします
- 3
セットアップ不要で、ブラウザーからオンラインの Chisel Bootcamp チュートリアルを試せます
使う前に知っておきたいこと
- JVM 上で Scala と sbt のツールチェーンが必要なため、セットアップの負担が増えます。
- Verilog の生成には firtool コンパイラが必要なため、Scastie など一部のオンラインプレイグラウンドでは Verilog を出力できません。
トピック
よくある質問
- chisel とは?
- Verilogを生成する、パラメーター化可能なデジタル回路ジェネレーターを記述するための、Scalaに組み込まれたオープンソースのハードウェア記述言語です。 Chisel(Constructing Hardware in a Scala Embedded Language)は、レジスタ転送レベルでデジタル回路を設計するためのハードウェア記述言語です。Verilogを手書きする代わりに、回路を構築するScalaコードを記述することで、関数、クラス、ループといった通常のプログラミング構文を使ってハードウェアを生成できます。出力されるのは合成可能なVerilogまたはSystemVerilogで、ASICとFPGAの両方の設計に利用できます。
- chisel は無料で使えますか?ライセンスは?
- chisel は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- chisel は今もメンテナンスされていますか?
- 活発にメンテナンス中。chisel の最終コミットは 2026年11月6日 です。
- chisel は何に使えますか?
- ASICまたはFPGA設計向けに、再利用可能でパラメーター化されたIPブロックを作成する。 ジェネレーター形式のコードが必要なプロセッサーやアクセラレーターを設計する。 最新のプログラミング言語とオンラインチュートリアルを活用して、デジタル設計を学ぶ。 ScalaコードからVerilogを生成し、後続の合成・シミュレーションフローに利用する。
- chisel のインストール方法は?
- あらかじめ設定されたプロジェクトを提供する Chisel Template リポジトリから始めます または、build.sbt に Chisel の依存関係とコンパイラプラグインを追加して、自分のプロジェクトをセットアップします セットアップ不要で、ブラウザーからオンラインの Chisel Bootcamp チュートリアルを試せます
- chisel はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/chipsalliance/chisel
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
XiangShanプロジェクトが開発する、ScalaとChiselで記述されたオープンソースの高性能RISC-Vプロセッサコア。
RTMP、RTSP、HLS、WebRTCなどに対応した、モジュール式で拡張可能なストリーミングメディアサーバー構築用Goフレームワーク。
管理画面向けページやコンポーネント、ダークモード、RTLに対応した、無料でオープンソースのBootstrap 5 HTMLダッシュボードUIキット。
Shadcn UIコンポーネントとViteで構築した管理ダッシュボードUIテンプレート。ライト/ダークモード、RTL対応、グローバル検索コマンドを備えています。