전공/Design Compiler
-
[Design Compiler 작업 흐름] 4~5. Design Constraint 및 합성 전략 설정전공/Design Compiler 2021. 4. 30. 15:59
4. Set Design Constaints : Design constraints를 설정 해주는 단계이다. 이전에 포스팅했던 SDC 파일에 대한 명령어와 같다. (.sdc 파일과 같은 역할인데, 좀 더 세부적으로 코드를 추가하고 싶을 때 직접 사용하면 될 것 같다.) 5. Select compile strategy : Top-down 방식으로 컴파일을 할 것이냐, Bottom-up 방식으로 컴파일을 할 것이냐를 정하는 단계 아무 것도 써주지 않는다면 기본적으로 Top-down 방식으로 컴파일된다. 1) 해당 단계를 위해 알아야 할 정보 Top-down : 가장 상위 모듈과 그 하위 모듈들이 전부 함께 컴파일된다. (같은 조건으로) Bottom-up : 각각의 하위 모듈들이 독립적으로 컴파일되고, 하위 계..
-
[Design Compiler 작업 흐름] 3. Design environment 정의전공/Design Compiler 2021. 4. 29. 22:19
3. Design environment 정의 : 설계 시 사용할 환경을 설정해 주는 단계 대략적으로 밑의 그림을 보면 이해하기 쉽다. 1) 해당 단계를 위해 알아야 할 정보 set_operating_conditions : 동작 온도, 동작 전압, 공정 정보등을 지정해주는 명령어 (PVC) Technology library에 보통은 명시되어 있어서, 따로 명령어를 적어 줄 필요는 없다. 다만, 굳이 적어주고 싶다면 다음과 같이 적어주면 된다. set_operating_conditions WCCOM -lib my_lib (WCCOM : Worst-Case_COMmercial) set_drive : 입력 단에 들어가는 저항을 명시할 수 있다. 기본 값은 저항이 0으로, 모든 전류가 driving되는 경우이다...
-
[Design Compiler 작업 흐름] 2. Design 파일 읽기전공/Design Compiler 2021. 4. 28. 19:45
2. Design 파일 읽기 : 개발한 Verilog 혹은 VHDL 파일과 .sdc 파일 등을 읽어 들이는 단계이다. 1) 해당 단계를 위해 알아야 할 정보 read_file : 베릴로그 파일을 읽는 명령어 ("read_file -format verilog" 명령어는 "read_verilog" 명령어와 같은 역할을 한다.) 기본적으로 "read_file = analyze + elaborate" 처럼 쓰인다. analyze : Top HDL 소스 파일을 읽는 명령어이다. 파일의 에러를 확인하는 명령어이다. elaborate : Top HDL 소스 파일을 읽는 명령어이다. 파일의 에러를 확인하는 명령어이다. PS. read_file과 analyze & elaborate 명령어의 다른 점 2) 해당 단계를 수..
-
[Design Compiler 작업 흐름] 1. Library 설정전공/Design Compiler 2021. 4. 28. 18:43
0. RTL 코드 개발 1. Library 설정 : 우리가 Gate로 합성하기 위해 해당 Gate의 동작과 Power소모, Timing등이 적혀 있는 라이브러리 파일을 지정해 주어야 한다. 1) 해당 단계를 위해 알아야 할 정보 Target_library : RTL 코드를 기능적으로 같은 역할을 하는 Gate로 Mapping해주는 라이브러리 (Cell swap은 Target_library의 정보를 토대로 이루어 진다.) Link_library : Gate level로 만들어진 Instance들을 라이브러리의 Gate로 연결하는 기능을 수행하는 라이브러리 Symbol_library : 말그대로, Graphic적인 Cell의 정보(Symbol)를 담고 있는 라이브러리이다. Design Compiler를 GU..
-
Path 명령어 및 예제 정리(.sdc)전공/Design Compiler 2021. 4. 1. 21:15
1. set_multicycle_path : 하나의 Clock cycle이 아니라 여러 Clock cycle에 의해서 동작하는 회로가 Timing Violation되면 안되므로, Setup / hold time violation 시점을 Shift 해주는 명령어 명령어 옵션 -rise | -fall -setup | -hold -start | -end -from from_list -to to_list -reset_path 명령어 예제 Pin A와 B 사이의 회로가 2번의 Clock cycle 마다 동작하여, time violation 조건을 넓혀줘야 할 필요성이 있는 경우 set_multicycle_path 2 -from [get_pins A] -to [get_pins B] 2. set_false_path ..
-
get_ports/get_pins/get_nets의 차이점(.sdc)전공/Design Compiler 2021. 3. 31. 20:51
get_ports : 최상위 Module의 I/O에 접근하는 경우 get_pins : 하위 Module의 I/O에 접근하는 경우 get_nets : I/O를 제외한 신호에 접근하는 경우 대표적으로 구분되는 예시 create_generated_clock -divide_by 2 -source [get_ports clk] -name clkdiv [get_pins clkdiv/Q] -> get_pins 사용시엔 module/pin 으로 기술한다.
-
Timing 명령어 및 예제 정리(.sdc)전공/Design Compiler 2021. 3. 31. 18:51
1. set_input_delay : Module내의 입력 핀에 들어오는 입력과 Clock의 시간 차이를 조건으로 넣어주는 명령어 명령어 옵션 -clock clock_name -clock_fall -level_sensitive -network_latency_included -source_latency_included -rise -fall -max -min -add_delay 명령어 예제 (1) A핀과 B핀이 clock과 비교하여 최대 2.3ns만큼의 input delay를 정의 하고 싶은 경우 set_input_delay 2.3 -max {A B} -> 기본적으로 clock의 상승 에지가 기준이 된다. (2) A핀이 clk의 하강 에지에 비교하여 최소 1.4ns만큼의 input delay를 정의 하고 싶..