DC库文件设置问题
时间:10-02
整理:3721RD
点击:
初上手DC,小弟在这里求助。
写了一个复用器,同时使用DC 和RC 进行综合,使用的是相同的库文件。RC综合后使用的是库文件中的单个元件mux,而DC综合后使用的是库文件中的组合逻辑,很多的与或非门,当然逻辑本身也是正确的。我觉得脚本文件中库文件的设置有问题,代码和脚本都贴在后面了。尝试过只使用CORE,不使用CLOCK,但没有效果。两个库里面都有与或非门和mux。我的问题是,如何修改脚本能够让DC直接综合出一个库文件中的mux?谢谢。祝各位周末愉快。
-----------------------------------------------------------mux.vhd------------------------------------------------------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux IS
port (
a,b,c,d : IN STD_LOGIC;
sel : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
oup : OUT STD_LOGIC);
END ENTITY;
ARCHITECTURE rtl OF mux IS
BEGIN
oup <= a when sel = "00" else
b when sel = "01" else
c when sel = "10" else
d;
END ARCHITECTURE;
-----------------------------------------------------script--------------------------------------------------------
set search_path {/sw/sup/cds/cmos065-5.3.4/CLOCK65GPLVT_3.1/libs /sw/sup/cds/cmos065-5.3.4/CORE65GPLVT_5.1/libs}
set synthetic_library "/sw/sup/snp/syn-2010.03-SP3/libraries/syn/dw_foundation.sldb"
set target_library {CLOCK65GPLVT_nom_1.10V_25C.db CORE65GPLVT_nom_1.10V_25C.db}
set link_library "CLOCK65GPLVT_nom_1.10V_25C.db CORE65GPLVT_nom_1.10V_25C.db dw_foundation.sldb"
analyze -format VHDL /users/lika/master_thesis/syn/synopsys0530_mux/mux.vhd
elaborate mux
create_clock -name clk -period 0.25 [get_ports {clk}]
compile -map_effort high -incremental
report_timing > /users/lika/master_thesis/syn/synopsys0530_mux/time_report_mux.txt
写了一个复用器,同时使用DC 和RC 进行综合,使用的是相同的库文件。RC综合后使用的是库文件中的单个元件mux,而DC综合后使用的是库文件中的组合逻辑,很多的与或非门,当然逻辑本身也是正确的。我觉得脚本文件中库文件的设置有问题,代码和脚本都贴在后面了。尝试过只使用CORE,不使用CLOCK,但没有效果。两个库里面都有与或非门和mux。我的问题是,如何修改脚本能够让DC直接综合出一个库文件中的mux?谢谢。祝各位周末愉快。
-----------------------------------------------------------mux.vhd------------------------------------------------------------------
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY mux IS
port (
a,b,c,d : IN STD_LOGIC;
sel : IN STD_LOGIC_VECTOR(1 DOWNTO 0);
oup : OUT STD_LOGIC);
END ENTITY;
ARCHITECTURE rtl OF mux IS
BEGIN
oup <= a when sel = "00" else
b when sel = "01" else
c when sel = "10" else
d;
END ARCHITECTURE;
-----------------------------------------------------script--------------------------------------------------------
set search_path {/sw/sup/cds/cmos065-5.3.4/CLOCK65GPLVT_3.1/libs /sw/sup/cds/cmos065-5.3.4/CORE65GPLVT_5.1/libs}
set synthetic_library "/sw/sup/snp/syn-2010.03-SP3/libraries/syn/dw_foundation.sldb"
set target_library {CLOCK65GPLVT_nom_1.10V_25C.db CORE65GPLVT_nom_1.10V_25C.db}
set link_library "CLOCK65GPLVT_nom_1.10V_25C.db CORE65GPLVT_nom_1.10V_25C.db dw_foundation.sldb"
analyze -format VHDL /users/lika/master_thesis/syn/synopsys0530_mux/mux.vhd
elaborate mux
create_clock -name clk -period 0.25 [get_ports {clk}]
compile -map_effort high -incremental
report_timing > /users/lika/master_thesis/syn/synopsys0530_mux/time_report_mux.txt
我觉得你不必纠结于DC给你综合成了什么,只要能满足你的需要就行了。
DC会综合考虑timing和area的,不用MUX很可能就是MUX占用的面积比与非门搭出来的面积大挺多的。
你这只是个mux,如果有上百万门你还会查他被综合成了什么了吗?
如果你非要综合成mux,你可以仔细看看DC的综合策略相关的文档,看看有没有办法。
你好!我刚学DC,但是看教程要设置一些库文件。软件自身好想没有带这些库文件,请问你的库文件能给我用吗?
