간만에 재밌는 책을 봤다.

설계 2010/08/10 20:34 Posted by 영고니짱
EMBEDDEDRECIPES
카테고리 미분류
지은이 히언 (코너북, 2009년)
상세보기


마프와 컴구조를 나름 힘들게 배웠고 현업에 종사하면서 그 중요성과 의미들을 조금씩 깨닫고 있다.

그러던 차에 우연히 이책을 보게 되었다. 쉽게 설명하기 위해 노력한 흔적이 많이 보이고 실제로도 이해하기 쉬웠다. 물론 이책의 주요 타겟은 SoC 엔지니어들이기에 쉽게 느껴질 것 같다.

전혀 모르는 사람이 보기에는 당연히 쉽지 않은 분야이기도 하고..

누군가 SoC 프로그램 ( 요새 흔히 하는 임베디드 소프트웨어 프로그램 )을 하기를 원하는 후배들이 있다면 주저없이 추천해 줄 것 같다.

아직 다 읽지는 않았지만 쉽게 읽혀지기에 금방 읽을 것 같다. 근데 엄청 두껍다 ㅋ

하드커버도 맘에 들고..( 대출 해서 보고 있는데... ) 한권 살까? ㅎㅎ
저작자 표시 비영리

verilog 코드에 아래와 같은 구문이 있다.
wire abc;
`ifdef ABC
  assign abc = 1'b1;
  `else
  assign abc = 1'b0;
`endif

synopsys design compiler에서 합성할 때만 ABC define을 하고 싶은 경우에 (사실 목적은 다른것이지만...)
아래와 같이 사요할 수 있다. { 와 }를 써서 다수의 define을 선언 할 수 있다.

analyze -f verilog -define ABC ddd.v

analyze -f verilog -d { RIPPLE, SIMPLE } mydesign.v

저작자 표시 비영리

Design Compiler Library

설계 2010/03/23 17:04 Posted by 영고니짱
design compiler 에서 사용하는 합성 Library

  - target_library : RTL 을 gate_level_netlist로 mapping 하는데 사용할 Library(DB) 들

  - synthetic_library : Math 관련 로직을 Mapping 하는데 사용할 Library(DB)들
      synopsys에서 제공하는 DW_xx.sldb와 공정사에서 제공하는 sldb가 존재함.

  - link_library : RTL이 mapping 되는 cell들의 정보들을 저장하고 있는 Libarary(DB)
     target_library와 같다.
     wire_load_model 및 기본적인 timing, power 등의 cell 정보들이 포함되어 있다.


하 65nm Library 의 constraint에 대한 자료를 어디서 잠깐 봤는데 찾을려니까 없네 ㅠㅠ;
저작자 표시 비영리

verilog 2001의 유용한 문법

설계 2010/01/22 10:47 Posted by 영고니짱
그동안은 verilog module 을 설계할 때
`define DATA_WIDTH 32

module test (
    input [`DATA_WIDTH -1:0]  d_in
);

위와 같은 방식으로 코딩을 하였다.

이런 방식의 문제는 상위 블록을 씌우거나 Test bench 를 작성할 때 instance를 위해 상위에도
같은 define을 적용해야 하는것인데, 이게 bit-width를 변경할 때마다 매번 수정하는 불편함이 있었다.

module test (
    d_in
);
parameter DATA_WIDTH = 32;

input [DATA_WIDTH -1 : 0] d_in;

그래서 위와 같은 방식을 사용하려 했으나 이것도 2번이나 port를 선언해야 하는 귀찮음이 있다.
verilog 2001에는 변경된 방식이 존재하는데
module test #(
    parameter DATA_WIDTH=32
)(
    input [DATA_WIDTH -1:0] d_int
);

이러한 코딩이 가능하다. 상위에서 instance를 부를때에도 쉽게 변경 및 적용이 가능하다.

역시 나말고도 귀찮은걸 싫어 하는 사람이 많이 있었나보다.
저작자 표시 비영리