790 likes | 1.77k Vues
Synopsys Tool 사용법 및 실습. Contents. Synopsys - Synopsys 환경 Setup - Synopsys 사용법 - Synthesis Procedures. Synopsys 환경 Setup. Synopsys 사용을 위한 setup 환경 잡기 - .cshrc - .synopsys_dc.setup - .synopsys_vss.setup - .synopsys_sge.setup
E N D
Contents • Synopsys - Synopsys 환경 Setup - Synopsys 사용법 - Synthesis Procedures
Synopsys 환경 Setup • Synopsys 사용을 위한 setup 환경 잡기 • - .cshrc • - .synopsys_dc.setup • - .synopsys_vss.setup • - .synopsys_sge.setup • - .synopsys_sge2vhdl.setup • 이 파일들의 Default 는 • $SYNOPSYS/admin/setup 디렉토리에서 볼 수 있음
Synopsys 환경 Setup(cont’d) • .cshrc (Synopsys환경변수)setenv SYNOPSYS /home/95.5/synopsyssetenv ARCH sparcOS5source $SYNOPSYS/admin/install/sim/environ.cshset path = ($path $SYNOPSYS/$ARCH/syn/bin)set path = ($path $SYNOPSYS/$ARCH/sim/bin)set path = ($path $SYNOPSYS/$ARCH/sge/bin)set path = ($path $SYNOPSYS/$ARCH/ds/bin)set path = ($path $SYNOPSYS/iview2/bin)
Synopsys 환경 Setup(cont’d) • .synopsys_dc.setup 파일(Default) search_path = {} + search_path link_library = {class.db}; target_library = {class.db}; symbol_library =class.sdb}; define_design_lib WORK -path ./work; designer = ”student” company = ”CNU IDEC"
Synopsys 환경 Setup(cont’d) • .synopsys_vss.setup 작성의 예 • CLASS > CLASS_FTGS • WORK > DEFAULT • CLASS_FTGS : • /home/95.5/synopsys/CLASS/lib/FTGS • DEFAULT : ./work • TIMEBASE = NS
Synopsys 환경 Setup(cont’d) • .synopsys_sge.setup 작성의 예 • ………. • [SymbolLibraries] • $SGE_ROOT/lib/IEEElib = Yes • $SGE_ROOT/lib/MVL7lib = No • $SGE_ROOT/lib/verilib = No • /home/95.5/synopsys/CLASS/sym = Yes • …………………..
Synopsys 환경 Setup(cont’d) • .synopsys_sge2vhdl.setup 작성의 예 • [Defaults] • net_type = std_logic • bus_type = std_logic_vector() • work_lib = WORK • model_lib = CLASS • default_modellib_arch = FTGS • use_lib_section = CLASS_Defaults • default_sym_arch = BEHAVIORAL • default_sch_arch = SCHEMATIC • default_cfg = CFG_%E • tb_entity = TB_FILE • tb_arch = testbench • tb_inst = UUT • tb_cfg = CFG_TB_%E_%A
Synopsys 환경 Setup(cont’d) • .synopsys_sge2vhdl.setup 작성의 예 • ……………... • [CLASS_Defaults] • library IEEE, CLASS; • use IEEE.std_logic_1164.all; • use CLASS.components.all; • ………………………….
Synopsys Tool 사용법 Design process
Synopsys Tool 사용법(cont’d) Synthesis flow
Synopsys Tool 사용법(cont’d) 설계 및 합성에 이용되는 tool - SGE( Simulation Graphical Environment) - VHDLDBX ( VHDL Debugger) - Design Analyzer
Synopsys Tool 사용법(cont’d) VHDL Debugger
Synopsys Tool 사용법(cont’d) VHDL Debugger(Execute)
Synopsys Tool 사용법(cont’d) VHDL Debugger(Breakpoints)
Synopsys Tool 사용법(cont’d) VHDL Debugger(Monitors)
Synopsys Tool 사용법(cont’d) VHDL Debugger(Traces)
Synopsys Tool 사용법(cont’d) VHDL Debugger(Query)
Synopsys Tool 사용법(cont’d) VHDL Debugger(Stimulus)
Synopsys Tool 사용법(cont’d) VHDL Debugger(Misc)
Synopsys Tool 사용법(cont’d) 파형 분석기
Synopsys Tool 사용법(cont’d) Design Analyzer
Synopsys Tool 사용법(cont’d) Design Analyzer( Setup - default)
Synopsys Tool 사용법(cont’d) Design Analyzer( Setup - command window)
Synopsys Tool 사용법(cont’d) Design Analyzer(File - analyze )
Synopsys Tool 사용법(cont’d) Design Analyzer(File - elaborate )
Synopsys Tool 사용법(cont’d) Design Analyzer(File - read )
Synopsys Tool 사용법(cont’d) Design Analyzer(Attributes - clocks - specify )
Synopsys Tool 사용법(cont’d) Design Analyzer(Attributes - operating enviroment )
Synopsys Tool 사용법(cont’d) Design Analyzer(Attributes - constraint )
Synopsys Tool 사용법(cont’d) Design Analyzer(Attributes - optimization )
Synopsys Tool 사용법(cont’d) Design Analyzer(Tools - design optimization )
Synopsys Tool 사용법(cont’d) Design Analyzer(Analysis - highlight - critical path )
Synopsys Tool 사용법(cont’d) Design Analyzer(Analysis - report )
SYNOPSYS 설계의 예 • MULTIPLEX VHDL 모델링 - vi mux.vhd • 1. vi 편집기를 실행시켜 multiplex에 대한 vhdl code를 작성한다. • library IEEE; • use IEEE.std_logic_1164.all; • entity MUX is • port(a, b : in std_logic_vector( 7 downto 0); • sel : in std_logic; • c : out std_logic_vector(7 downto 0)); • end MUX;architecture beh of MUX is • begin • process(a, b, sel) • begin • if sel='1' then c <= a; • else c <= b; • end if; • end process; • end beh;
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX VHDL 모델링(cont’d) • 2. 편집이 완료되면 esc를 누르고 :wq 를 하고 편집기를 빠져 • 나온다. • 3. vhdlan mux.vhd • - 편집된 code를 compile 함. • - code를 수정하였거나 다시 작성하였을 때는 반드시 이런 방법 • 을 사용하여compile 해야 함. testbench도 마찬가지임.
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX Testbench의 VHDL 모델링 • 1. vi tb_mux.vhd • library IEEE; • use IEEE.std_logic_1164.all; • entity tb_MUX is • end tb_MUX; • architecture tb of tb_MUX is • component MUX • port(a, b : in std_logic_vector(7 downto 0); • sel : in std_logic; • c : out std_logic_vector(7 downto 0)); • end component; • signal X, Y ,Z : std_logic_vector(7 downto 0); • signal Sign : std_logic; • begin • tb_MUX : MUX port map(X, Y, Sign, Z); • X <="00001001"; Y <="00000010"; • Sign <= '0' ,'1' after 100 ns, '0' after 200 ns; • end tb; • configuration cfg_tb_MUX of tb_MUX is • for tb • for tb_MUX: MUXuse entity work.MUX(beh); • end for; • end for; • end cfg_tb_MUX;
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 시뮬레이션 • 1. vhdldbx & • 2. cfg_tb_mux 선택
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 시뮬레이션(cont’d) • 3. trace *’sig
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 시뮬레이션(cont’d) • 4. run 200
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 논리 합성(cont’d) • 1. da & • 2. File -> read -> mux.vhd -> OK
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 논리 합성(cont’d)
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 논리 합성(cont’d) • 3. 화면에 나온 block을 두번 click • 4. 바뀐 block을 두번 click
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 논리 합성(cont’d) • 5. Tools -> optimization -> medium -> OK • - optimization 을 위하여 area나 timing 제약을 줄 수 있다. • ( Attributes -> optimization constraint)
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 논리 합성(cont’d)
SYNOPSYS 설계의 예(cont’d) • MULTIPLEX 의 논리 합성(cont’d) • 6. Save as -> mux.db • 7. Setup -> scripts -> DA to SGE transfer • 8. Error 가 없으면 da를 빠져 나온다. ( File -> quit) • 9. sge2vhdl mux • - 합성된 회로로 변형된 vhdl code 생성 • 10. vi mux.vhd • - code 확인 • 11. vhdlan mux.vhd • 12. testbench 작성 • 13. vhdlan testbench
SYNOPSYS 설계의 예(cont’d) • 논리 합성 후 시뮬레이션 • 1. 논리 합성시 *.db 로 저장후 Save info-> Design timing -> sdf 선택후 • file 저장. • 2. quit • 3. vhdldbx & • 4. cfg_tb_mux 선택 • 5. command 란에 -sdf_top /entity_name/label_name -sdf sdf_file_name • 6. OK • 7. trace *’sig • 8. run 200
LAB 1 • CLA 설계 • 1. PGU 의 VHDL 모델링 • LIBRARY IEEE; • USE IEEE.std_logic_1164.all; • USE IEEE.std_logic_components.all; • ENTITY PGU IS • PORT ( a, b : IN bit_vector (31 DOWNTO 0); • g, p : OUT bit_vector (31 DOWNTO 0) ); • END PGU; • ARCHITECTURE Behavioral OF PGU IS • BEGIN • PROCESS (a,b) • BEGIN • g <= a AND b ; • p <= a XOR b ; • END PROCESS; • END Behaviroal;
LAB 1(cont’d) • CLA 설계 • 2. vhdlan pgu-file-name • 3. testbench 모델링 / vhdlan testbench • 4. vhdldbx& • 5. configure-name 선택 • 6. trace *’sig • 7. run • 8. da& • 9. File - read • 10. dubble click