🍒 Cherry Syn チュートリアル 第1章

高位合成がやってきた、ヤァ!ヤァ!ヤァ!

Cherry Syn は、C言語風の記述から順序回路を生成する高位合成ツールです。
「誰でも簡単に回路設計ができる世界」を目指して、構造の美しさと詩的な体験を大切にしています。

✍️ まずは書いてみよう

process logicboy(clkin uint#1 clk, rstin uint#1 rst, in uint#8 din1, in uint#8 din2, out uint#8 dout)
{
    dout = din1 + din2;
}

この記述を Cherry Syn に入力し、Synthesis ボタンをクリックすると HDL が生成されます。

🧠 入力が面倒な方へ

「チュートリアル」セクションの tutorial1_1.chc をクリックすれば、自動入力されます。

🔍 回路を見てみよう

「view RTL schematic」の logicboy ボタンを押すと、生成された回路図が表示されます。
一状態のコントローラと加算器のみの単純な回路です。

🌀 少しだけ複雑にしてみよう

while (1) {
    dout = din1 + din2;
    dout = din1 - din2;
}

加算と減算を交互に行う回路になります。複数状態のコントローラと加減算器が生成されます。

🧭 CDFG を見てみよう

「view CDFG」の logicboy ボタンを押すと、制御データフローグラフが表示されます。
ステップ1では加算、ステップ2では減算が行われ、同じ演算器にマッピングされます。

🧪 変数と条件分岐

while (1) {
    uint#8 d = din1 + din2;
    dout = d;

    if (d > 3)
        dout = din1 - din2;
    else
        dout = din1 + din2;
}

条件に応じて加算・減算を切り替える回路になります。CDFG では分岐がピンク色で表示されます。

🧾 HDLと制約ファイル

これらを GOWIN FPGA Designer に入力すれば、FPGA のコンフィグレーションデータが生成されます。

🧩 Verilog の入出力を見てみよう

module LOGICBOY (
    input wire  CLK,
    input wire  RST,
    input wire [7:0] DIN1,
    input wire [7:0] DIN2,
    output wire [7:0] DOUT);

クロック同期で動作し、リセットは非同期の負論理です。

🎮 さぁ、遊んでみよう

記述を少しずつ変えて、CDFG や RTL を見ながら回路の構造を理解していきましょう。
Cherry Syn は、回路設計を「詩的な遊び」に変えてくれるツールです。

今日はここまで。これだけでも十分に活用できる人がいるはず。
それでは皆さま、さようならー。