信号の配線やファンアウトを減らすためにロジックセルを挿入する必要がある場合があります。フローは次のとおりです。
- ハードウェア記述言語 (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