하드웨어 설계/Design Compiler User Guide

Chapter5 Working With Designs in Memory Part1.

가카리 2012. 8. 15. 15:00
반응형

5. Working With designs in memory

 

Design Compiler chapter 5를 요약한 내용입니다.

 

Design Compiler User Guide_Version F-2011.09-SP2, December 2011.pdf

 

Design Terminology

 

1. Flat Design

 

contain no subdesigns and have only one structural level.

 

2. hierarchical designs

 

contains one or more designs as subdesigns.

 

 

hierarchical design 예제

 

Design Objects의 종류

 

 

 

 

design

디자인은 인스턴스, , 포트 핀으로 구성되있는 것을 말한다.

 

REFERENCE

디자인의 라이브러리 컴포넌트이다. 단순한 로직 게이트부터 RAM 이나 CPU같은 복잡한 로직도 포함한다.

 

Instance or Cell

레퍼런스의 회로들을 메모리 상에 로딩된 것들이다.

각 인스턴스는 유일한 이름을 가지고있다.

 

Ports

디자인의 input, output

 

pins

셀의 input output

 

nets

 

port to pin이나 pin to each other가 연결된 wire이다.

 

Relationship Between Designs, Instances, and references

 

 

 

U1, U2, U3 는 인스턴스

 

NAND2 MULTIPLIER Reference

 

EXREF는 디자인

 

Reporting References

 

command report_reference -hierarchy

 

현재 디자인에 사용된 모든 reference report한다.

-hierachy옵션 적용시 hierarchy형태로 출력한다.

 

만약 get_references reference_name을 입력하면 reference에 대한 정보를 볼 수 있다.

 

 

 

 

 

 

 

Reading Designs

 

다음은 Design Compiler가 읽을 수 있는 포맷이다.

 

 

 

 

Using the analyze and elaborate Commands

 

using the analyze command

 

1.     Reads an HDL source file.

2.     Checks it for errors(without building generic logic for the design)

3.     Creates HDL library objects in an HDL-independent intermediate format.

4.     Stores the intermediate files in a location you define

 

 

To do this

Use this

Store design elements in a library other than the work library. For override

-library

By default, the analyze command stores all output in the work library.

Specify the format of the files to be analyzed.

-vhdl or –verilog

Specify a list of files to be analyzed.

file_list

 

using the elaborate command

 

1.     Translates the design into a technology-independent design (GTECH) from the intermediate files produced during analysis.

2.     Allows changing of parameter values defined in the source code

3.     Allows VHDL architecture selection

4.     Replaces the HDL arithmetic operators in the code with DesignWare components

5.     Automatically executes the link command, which resolves design references

 

 

 

 

VHDL Entity로 설계의 인아웃을 정의하고 실제 내용은 architecture의 부분에 기술한다.

한 개의 Entity에 여러개의 architecture가 있을 수도 있지만 1:1로 대응시키는 것이 일반적이다.

 

To do this

Use this

Specify the name of the design to be built(the design can be a Verilog module, a VHDL entity, or a VHDL configuration).

-design_name

Find the design in a library other than the work library(the default).

-library

Specify the name of the architecture.

-architecture

Automatically reanalyze out-of-date intermediate files if the source can be found.

-update

Specify a list of design parameters.

-parameters

 

 

 

 

 

 

 

 

using the read_file command

 

1.     Reads several different formats

2.     Performs the same operations as the analyze and elaborate commands in a single step.

3.     Creates .mr and .st intermediate files for VHDL

4.     Does not execute the link command automatically.

5.     Does not create any intermediate files for Verilog

 

 

위처럼 link 명령어를 써줘야한다.

 

Design Compiler path_name/design.ddc파일을 만드는데 만약에 읽었던 파일을 또 한번 더 읽으면 이 ddc파일을 overwrite한다. 이게 싫다면 –sigle_file option을 주면된다.

 

만약에 압축된 파일일 경우 확장자가 .gz면 사용이 가능하다.

 

다음은 사용할 수 있는 format 리스트이다.

 

1.     ddc. format : Uses the .ddc extention.

2.     db format : Uses the .db, .sldb, .sdb, .db.gz, .sldb.gz, and .sdb.gz extensions

3.     Verilog format : Uses the .v, .verilog, .v.gz, and .verilog.gz extentions

4.     System Verilog : Uses the.sv, .sverilog, .sv.gz, and .sverilog.gz extentions

5.     VHDL : Uses the .vhd, .vhdl, vhd.gz, and .vhdl.gz extensions

 

 

 

To do this

Use this

Specify a list of files to be read.

file_list

Specify the format in which a design is read.

-format

Store design elements in a library other than the work library(the default) when reading VHDL design descriptions.

-library

Read a Milkyway ILM view.

(Milkyway Synopsys database)

-ilm

Specify that the design being read is a structural or gate-level design when reading Verilog or VHDL designs.

-netlist –format\verilog|vhdl

Specify that the design being read is an RTL design when reading Verilog or VHDL designs.

-rtl –format\verilog|vhdl

 

 

milkyway 부연 설명

 

Synopsys 사의 Tool을 이용하여 IC Design을 하다보면, 가장 자주 만나는 것이 바로 Milkyway Database. Milkyway 라는 이름의 Tool이 따로 존재하고 있어서 처음에는 이 Tool을 사용하는 데이터만을 일컫는 줄 알았으나, Synopsys사의 Tool 전반에 걸쳐 사용되는 Database라고 생각하면 된다. Design Compiler, IC Compiler, Astro 등의 모든 툴에서 이러한 Milkyway Database 포맷을 사용하고 있다.

The Milkyway database is the unifying design storage format for the Synopsys Galaxy Design Platform.



IC
Design할 때 사용되는 정보로는, Power, Ground, Clock, Signal에 대한 Routing information Cell dimension, border, pin location, mask layer 등과 함께 Wire tracks, antenna, electromigration 등의 technology 정보들이 있는데 이러한 모든 physical library information을 저장하는 일종의 저장 형식.


이러한 정보들을 Cell 단위로 저장하게 되는데, Milkyway 에서는 각 Cell의 정보를 몇 가지의 다른 representation으로 나타내고 있다
.

  • CEL view: via, standard cell, macro, whole chip, netlist에 대한 정보를 모두 포함하고 있는 Full physical structure layout view. 모든 Milkyway library cell은 반드시 이 CEL view를 가지고 있다.
  • FRAM view: abstract representation. P&R(Placement and routing)할 때 사용되는 view. 따라서 외부에서 바라보는 정보만 가지고 있으면 되는데, metal blockage, allowed via area, pin에 대한 정보를 가지고 있다.
  • ILM view: Interface logic model에 대한 정보
  • FILL view: Metal fill에 대한 정보. P&R 마지막 과정에서 Metal Density Constraint를 맞추기위해 넣어지는 Metal fill layer (당연히 Logical function이 없다.)
  • ERR view: Design Rule violation에 대한 정보를 담고 있는 Layer view

 

출처 TechMemosla의 블로그 http://thinkpiece.tistory.com

 

read_file analyze elaborate 명령어의 차이점.

 

 

 

 

read_ddc

 

dc_shell > read_ddc design_file.ddc

 

이전버젼의 소프트웨어 ddc파일은 읽는게 가능하나 이후버젼의 소프트웨어 ddc파일은 읽는게 불가능하다.

 

dc_shell > read_db design_file.db

 

db파일 또한 마찬가지이다.

 

 

 

 

메모리상에 올라온 design listing.

 

list_designs 명령어와 –show_file 옵션을 주면된다.

 

-show_file은 파일까지 표시한다. 이때 *는 현재 디자인을 의미한다.

 

 

 

 

 

현재 디자인 세팅

 

read_file로 파일 읽어오기

 

 

 

current_design 명령어로 탑모듈 설정

 

 

 

 

반응형