信号の配線やファンアウトを減らすためにロジックセルを挿入する必要がある場合があります。フローは次のとおりです。
- ハードウェア記述言語 (HDL) ソースコード内のロジックセル・コンポーネントをインスタンス化します。
- ロジックセルのインスタンス名に Synopsys ディレクティブ
set_dont_touch
を追加します。 - このロジックセルに MAX PLUS II ソフトウェア・ロジックの割り当てを追加
STYLE=WYSIWYG
します。
次の例(ilf.vhd および ilc.gt)は、 XOR
ゲートとフリップフロップの間にロジックセルを挿入する方法を説明しています。Synopsys シンセサイザー (デザイン・コンパイラーまたはFPGA・コンパイラー) は、ilc.vhd および ilc.gcc.gcc を処理して、MAX PLUS II EDIF ファイルを生成します。この EDIF ファイルには、LCELL インスタンス化と STYLE=WYSIWYG
ロジック割り当てが含まれています。
---------------------------------------------------------- --- --- Insert an LCELL --- --- ilc.vhd --- LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY ilc IS PORT( dina, dinb, clk : IN STD_LOGIC; dout : OUT STD_LOGIC); END ilc; ARCHITECTURE a OF ilc IS signal foo_in,foo_out : std_logic; COMPONENT LCELL PORT ( a_in : IN STD_LOGIC; a_out: OUT STD_LOGIC); END COMPONENT; BEGIN U0 : LCELL port map (foo_in,foo_out); foo_in <= dina XOR dinb ; flip_flop: PROCESS(clk) BEGIN IF clk'event and (clk = '1') THEN dout <= foo_out; END IF ; END PROCESS ; END a; --- --- ------------------------------------------------------- /**********************************************************/ /* ilc.scr */ /* Synopsys script for design compiler or FPGA compiler */ /* */ read -f vhdl ilc.vhd set_dont_touch find(cell,{U0}) true set_attribute find(cell,{"U0"}) "LOGIC_OPTION" -type string "STYLE=WYSIWYG" compile write -f edif -hier -o ilc.edf