前回までは process が1つだけの例題でしたが、今回は複数の process を使う場合の書き方を学びます。
    複数の process を使う場合は、それぞれの記述に加えて、接続関係を定義する トップレベル記述が必要になります。
process process1(clkin uint#1 clk, rstin uint#1 rst, in uint#2 din, out uint#2 dout)
{
    while (1)  {
        dout = din;
    }
}
process process2(clkin uint#1 clk, rstin uint#1 rst, in uint#2 din, out uint#2 dout)
{
    while (1)  {
        dout = din;
    }
}
toplevel logicboy(
    in uint#1 pin<52> period<37> clk,
    in uint#1 pin<3> rst,
    in uint#2 pin<25,26> din,
    out uint#2 pin<27,28> dout)
{
    com uint#2 d;
    process1(clk, rst, din, d);
    process2(clk, rst, d, dout);
}din をそのまま dout に出力するだけの単純な回路process を接続するための構造を記述com はプロセス間の接続用信号。ここでは d が中継役process1(clk, rst, din, d); で din を d に渡し、process2(clk, rst, d, dout); で d を dout に渡すclk は 52 ピン、rst は 3 ピンに割り当てperiod<37> はクロック周期が 37ns(27MHz)であることを示すdin のビット0が 25 ピン、ビット1が 26 ピンdout のビット0が 27 ピン、ビット1が 28 ピンpin<27,28> と pin<27-28> は同じ意味複数の process を組み合わせることで、より複雑な回路を構築できます。
    Cherry Syn のトップレベル記述は、構造を明快に保ちながら、詩的な接続を可能にします。
次回はいよいよ、ブロック RAM の使い方を紹介します。お楽しみに!