Design 에 해당하는 글8 개
2009/03/18   전자회로특론 (4)
2008/04/09   Synopsys Design Compiler Reference Methodoloty (1)
2008/04/05   디지털 IP 코딩 가이드라인
2008/04/01   Astro에서 지원되는 Synopsys Design Constraints (1)
2008/04/01   Astro Tip: netWeight (1)
2008/03/26   Verilog Coding Style for Synthesis (8)
2008/03/15   사악한 쌍둥이 full_case와 parallel_case (3)
2008/03/12   칩쟁이들의 모임등록 (2)


전자회로특론
Design | 2009/03/18 10:30

전자회로특론
조규형| 홍릉과학출판사| 2008.02.20 | 572p

이 교재는 KAIST 전기 및 전자공학과에서 지난 20여년 동안 학생들 특히 석사과정을 대상으로 강의해 온 내용을 정리한 것이다. 학부에서 전자회로 I, II를 수강한 학생들을 대상으로 하고 있지만 대부분 그 기초가 약하기 때문에 이 교재의 내용은 회로해석의 처음부터 다시 시작하고 있다. 이 교재는 학생들로 하여금 전자회로의 기본개념을 확실하게 다지도록 하는 데 도움을 줄 것이다. [출처: 교보문고]

요즘 새로이 공부하고 있는 책이다. 이미 많은 KAIST 전자과 졸업생들은 제본해서 갖고 있는 조규형교수님의 교재가 작년에 책으로 출판되었다.
기존의 교과서들이 회로해석의 관점이었다면 이 책은 회로설계를 위한 것이라는 점에서 큰 차이가 있다. 전자회로의 기초적인 내용을 다루고 있지만 실제 응용에 도움될 많은 노하우들을 담고 있다. 책이라는 매체의 제한적인 표현방법 때문에 얼핏보면 다른 교재와 비슷해보일 수 있지만 행간에 발견할 수 있는 대가의 insight는 감동을 불러온다.
조규형교수님의 수업을 직접 들으면 그 감동은 몇배로 다가온다. 조규형교수님과 동시대에 살고 수업을 들을 수 있다는 것만으로도 전자공학도로서 큰 축복이 아닐 수 없다.

약간 아쉬운 점은 아직 교정되지 않은 오타가 남아있다는 것(출판작업 중 기존에 없던 오타가 새로 만들어진 것도 있다).


2009/03/18 10:30 Donny 

, ,
han 2009/05/02 14:30
안녕하세요. 저도 이 책에 대해서는 많이 들어봤는데요. 전에 보니 주로 바이폴라만 나오던데, mosfet도 많이 다루나요?
donny 2009/05/04 00:46
바이폴라를 이해하면 MOS는 쉽게 이해할 수 있기때문에 바이폴라를 기본으로 설명하면서 MOS를 비교하는 순서로 되어있습니다.
MOS만 설명하면 더 좋겠다는 생각도 들지만 바이폴라를 함께 이해하는 것이 더 좋다고 하시네요. ^^
오그리마 2009/05/15 00:47
디지털 디자인 전공하고 있는 학생입니다. 학부때 세드라 책으로 공부를 했었는데 도니님 글을 읽고보니 저책을 함 보고 싶은데요 저 책만 가지고 공부를 하더라도 도움이 될지 질문 드립니다.
donny 2009/05/16 14:35
안녕하세요 오그리마님,
책만봐도 분명 많은 도움이 될 것입니다.

국내에 전자회로를 제대로 가르치시는 교수님이 많지않아 결국 교재인 세드라책을 혼자 독습하는 일이 빈번하지요.

세드라책도 혼자 보고 공부할 수 있듯 이 책도 마찬가지이고, 게다가 한글로 친절히 설명되어있고 직관적이고 다양한 접근 방식을 사용하기 때문에 이해가 잘 됩니다.

한번 도전해보시지요 ^^
Name
Password
Homepage
  Secret
Description
 

Synopsys Design Compiler Reference Methodoloty
Design | 2008/04/09 17:19
요새 Tape-Out을 앞두고 있다보니 주로 Synthesis나 Back-end에 대한 글을 많이 쓰게 되네요.

Logic Deginer들이 가장 의존적인 Tool은 Synthesizer가 아닐까 합니다.
그중에서도 Synopsys의 Design Compiler가 Golden Rererence라고 할 수 있겠습니다.

하지만, Design Compiler도 버젼마다 명령이나 constraint가 추가되기고 없어지기도 하는데, 더 좋은 기능이 만들어진 이유이긴 하겠지만 잘 사용하던 기능들이 없어지면 당혹스럽지요.

제품을 만드는 입장에서는 최신기술보다는 안정적인(stable)기술을 더 선호하게되기 때문에 안쓰던 기능을 처음 쓰기는 쉽지않습니다.

Design Compiler는 일년에 두어차레 upgrade가 되는데 최근 버젼보다는 SP(Service Pack)이 한두번 나온 한세대 이전 version을 쓰는게 좋다고 봅니다.

아무튼 최근 version이 나오면 그때마나 reference manual을 보고 새로 추가된 기능을 확인할 수는 없는 것이기에 Synopsys에서는 Reference Methodology라는 것을 제공합니다.
쉽게말하자면 version별로 제거된 기능과 추가된 기능을 반영한 script sample이라고 할 수 있습니다.

아래 주소에서 download하실 수 있습니다. (SolvNet ID가 필요합니다)

2008/04/09 17:19 Donny 

, , , ,
jang 2008/08/06 14:08
혹시 synopsys 설치해보셨는지요?;;; 지금 설치중인데 라이센스 때문에.. 실행이 안되는데요....
라이센스 넣어주려면 sysnopsys사이트 아디가 필요한가요?linux/syn/bin dc_shell 실행하니 not enable라고 떠서..지금 해결방안을 찾고 있는 중인데 혹시 알고계시면 좀 알려주세요..아 그리고 환경변수에
설정을 해줬는데 에러가 나는데 알고계신 지식 좀 알려주세요..ㅜ_ㅜ DC-SHELL을하면 DCSH-1에러가 뜨고 디자인비젼을 실행하면 SEC-2 에러가 뜨네욤..
Name
Password
Homepage
  Secret
Description
 

디지털 IP 코딩 가이드라인
Design | 2008/04/05 18:01
디지털 IP 코딩 가이드라인[download] - 시스템센트로이드(ipean)

오늘 이선임이 Google에서 찾아 보내준 자료인데 설계에 유용한 여러내용들을 잘 정리하고 있다.

보려고 맘만 먹고 못보고 있는 Reuse Methodology Manual 에서도 Naming Convention에 대한 내용을 발췌하여 담고 있고, 합성을 위한 Coding방법, Clock사용법등을 쉽게 설명하고 있다.

이자료를 만든 곳은 시스템센트로이드(ipean)라는 곳인데, ETRI에서 spin-off한 벤쳐회사이다. 이곳에서 설계교육에 사용하는 자료인 것 같다. 또, 대학교 3-4학년들을 위해 디지털 설계자료를 무상으로 제공하고 있는데 그 중 일부가 아닐까 한다. (관련정보: 디지털 설계교육 자료를 공개합니다.)
2008/04/05 18:01 Donny 

, , ,
Name
Password
Homepage
  Secret
Description
 

Astro에서 지원되는 Synopsys Design Constraints
Design | 2008/04/01 11:09

Supported SDC Constraints
    all_clocks
    all_inputs
    all_outputs
    create_clock
    create_generated_clock
    current_design
    expr
    get_cells
    get_clocks
    get_lib_cells
    get_lib_pins
    get_libs
    get_ports
    list
    set
    set_case_analysis
    set_clock_gating_check
    set_clock_latency
    set_clock_transition
    set_clock_uncertainty
    set_disable_timing
    set_drive
    set_driving_cell
    set_false_path
    set_hierarchy_separator
    set_input_delay
    set_input_transition
    set_load
    set_logic_one
    set_logic_zero
    set_max_capacitance
    set_max_delay
    set_max_time_borrow
    set_max_transition
    set_min_capacitance
    set_min_delay
    set_muticycle_path
    set_output_delay
    set_propagated_clock

Not-supported SDC Constraints
    current_instance (If you use "*" as the argument, the current_instance command can be used.)
    get_nets
    get_pins
    set_fanout_load
    set_logic_dc
    set_max_area
    set_max_fanout
    set_operating_conditions
    set_resistance
    set_wire_load_min_block_size
    set_wire_load_mode
    set_wire_load_model
    set_wire_load_selection_group
    set_port_fanout_number


2008/04/01 11:09 Donny 

, , ,
Marcus 2009/03/13 00:46
hi Donny, Im a brazial student of integrated circuitry and im doing the synthesis of a 8051 (verilog) using the cadenceś tools. So could you send me some examples of a good sdc file? im having some difficults in how to elaborate the constraints.

my email again: spc.zoom@gmail.com

thanks a million!!!
Marcus Vinicius
Name
Password
Homepage
  Secret
Description
 

Astro Tip: netWeight
Design | 2008/04/01 09:21

Astro에서 Timing이 민감한 cell들을 인접하게 place하거나 output buffer를 output port에 최대한 가깝게 place할 때 유용한 기능.
Thanks to Dr. Choi~

Donny's Guideline: 직접 P&R을 할 줄 알면 더 좋지만 그렇지 않더라도 P&R툴의 기능을 알아야 back-end engineer에게 요구를 할 수 있으므로 유용한 기능들은 알아두는 것이 좋다. 또, Astro의 command까진 아니더라도, 합성에 사용한 synopsys의 constraints들이 P&R에 어떤 영향을 주는지를 파악해 두는 것도 유용하다.

------------------------------------------------------------
netWeight

The netWeight function sets the net priorities (or weights) for placing cells. During placement, the Milkyway-based tool attempts to place cells connected to high-priority nets closer together.

The primary goal of your Synopsys application, regardless of the specified net weights, is to achieve the minimum total net length for the design. Therefore, the Synopsys application weighs any reduction in the length of a high-priority net against the effect on the overall net length.

Nets with no priority set have the lowest priority (net weight of 1).

You can set net weights while running a Synopsys application by using Constraints > Set Net Weight.

Syntax

netWeight netName netWtHorizontal netWtVertical 

where the arguments are as follows:

netName
         Name of the net to be prioritized.

         Valid values: Name of any net in the design
netWtHorizontal
         Weight to be given to horizontal wires on the net. The higher the value, the greater priority the Synopsys application gives the net.

         Valid values: Any positive integer
netWtVertical
         Weight to be given to vertical wires on the net. The higher the value, the greater priority the Synopsys application gives the net.

         Valid values: Any positive integer

Example

netWeight "CTL2" 10 8
netWeight "CTL3" 4 2
netWeight "CTL4" 6 6

Using these net priority directives, the Synopsys application gives the highest priority to horizontal wires on the CTL2 net and the lowest priority to vertical wires on the CTL3 net (except for nets not specified, which receive the lowest priority). For nets CTL2 and CTL3, horizontal
wires are given higher priority than vertical wires. For net CTL4, horizontal and vertical wires are given equal priority.

출처: Astro 2007.03-SP4 Help


2008/04/01 09:21 Donny 

, , ,
babyworm 2008/10/17 12:10
오~! 이런 기능이 있었군요. Backend 엔지니어 분께 항상 말로 했었는데..
Name
Password
Homepage
  Secret
Description
 

Verilog Coding Style for Synthesis
Design | 2008/03/26 15:48
Verilog Coding Style for Synthesis[download]

"full_case parallel_case", the Evil Twins of Verilog Synthesis와 마찬가지로 C. E. Cummings씨가 SNUG99에 publish한 것이다.

빠듯한 일정속에서 RTL simulation을 마치고 합성 후 gate-level simulation을 했을 때, waveform view에 unknown value들이 빨간색으로 화면 가득채우고 있다면? OTL....

이 문서는 그런상황이 최소화되도록하기 위한 Verilog Coding방법을 설명하고 있다. 그러나, 몇가지 내용은 글쎄...

1. Incomplete sensitivity list
always블록의 sensitivity list에 입력 signal을 빠뜨려 latch가 발생된 경우는 칩 설계경험이 있다면 알만한 내용이다.

2. Complete sensitivity list with mis-ordered assignment
always블록 내에서 assignment의 순서가 뒤바뀐 경우. 즉, assignment들의 순서에 따라 결과가 달라지는 경우를 설명. 먼저 기술된 assignment의 결과가 나중 기술된 assignment에 사용되지않도록 순서를 정하라고하는데, 이것은 Non-blocking assignment를 사용하면 근본적으로 해결된다.

Donny's Guideline: always블록내의 모든 assignment는 non-blocking assignment를 사용한다.

즉, '=' 가 아니라 '<='를 사용하라는 의미이다. Concurrent한 동작이 일어나는 hardware을 sequential하게 기술하는 것 자체가 말이 안되기 때문이다.

3. Functions
Function을 잘못기술하면 latch가 발생된다는 내용. 그러나, 합성할 회로에 굳이 function을 사용할 필요가 있을까? 합성후 function은 말그대로 기능블록이 되어야하므로 차라리 별도의 module로 만드는 것이 구조적인 이해나 analisys가 쉽다고 생각한다.
Donny's Guideline: Synthesis할 부분에 대해서는 function을 사용하지 않는다.

4. Full Case / Parallel Case
"full_case parallel_case", the Evil Twins of Verilog Synthesis에 기술된 내용의 요약판.
Donny's Guideline: synopsys full_case나 parallel case directive를 사용하지 말자.

5. casex, casez
casex 대신 casez를 사용하라. casex의 경우 입력이 unknown('x')일 때도 정상적으로 동작하는 경우가 존재한다는 내용이다. casez의 경우에도 입력이 floating ('z')인 경우는 동작하지만 이런 경우는 덜 빈번하므로 casez를 쓰는 것이 좋다고 하는데... 과연??
RTL simulation만 할 경우에는 입력이 unknown상태가 될 가능성이 없으므로, RTL과 gate-level을 혼합하여 simulation하는 경우만 해당되는 내용이다.
반대로 casez를 사용하려면 don't care를 표기하기위해 'x'대신 '?'를 사용해야하는데, 복잡한 case문을 즐겨사용하는 내 경우엔 '?'사이에 섞여있는 '0'을 발견하기란 쉽지 않기 때문에 casex를 더 선호한다.

6. Assigning 'x'
'x'값을 입력시키면 simulator에선 'unkown'으로 인식되고, synthesizer에서는 'don't care'로 인식한다. 특별한 경우가 아니라면 일부러 'x'를 입력하는 일은 안하는게 상책.

7. translate_off/translate_on
이 directive를 사용하면 synthesizer에서 해당부분을 읽지(translate)도 않으므로 당연히 주의해서 사용해야한다. 주로 debugging과 관련된 code나 simulation model을 사용할 때 사용되는데, 가급적 debugging code는 testbench쪽으로 옮기면 위 directive를 사용할 일이 매우 적다.
Donny's Guideline: 합성할 code와 시뷸레이션할 code를 분리하여 가급적 translate_off / translate_on를 쓰지 말자.

8. Timing Delays
합성시 모든 timing 정보는 무시된다. (두말 하면 잔소리)
Donny's Guideline: Timing정보를 합성에 반영하고 싶다면 dc_script_begin/dc_script_end를 이용하여 code상에 constraint를 함께 기술하는 방법도 있다.

정리하자면 복잡하거나 특별해보이는 기능을 사용하여 설계하면 그만큼 문제가 발생할 소지가 크다는 것이다. 이러한 guideline을 준수하여 code를 작성한다면 시행착오를 어느정도 줄일 수 있다.

하지만, 아무리 HDL이란 언어를 잘 사용하더라도 회로를 설계하는 것은 C프로그램을 작성하는 것은 차이가 많기 때문에 언어이외에 회로에 대한 개념을 숙지하는 것이 필수적이다.

이러한 복잡한 Guideline보다도 더 강력한 방법이 있는데 Synopsys의 HDL Compiler를 사용하는 것이다. Design Compiler에서 Verilog코드를 읽어들이면 화면에 글씨들이 잔뜩지나가는데 처음에는 대개 이 내용을 무시한다. 하지만, 그 내용이 HDL Compiler의 합성결과이고 합성시 문제가 될만 한부분을 미리 다 알려준다. 즉, case statement가 full case인가 parallel한가 latch가 생성되는가 flipflop이 생성되는가 모든 정보를 알 수 있다.

따라서, 이 내용을 무시하고 합성후 gate-level simulation을 하는 것은 미리 알 수 있는 문제를 확인사살하는 시간 낭비일 뿐이고, 주의깊게 결과를 확인하지않으면 문제를 방치한채로 Tape-out하는 최악의 상황에 이를 수 있다.

의도치 않게 latch가 생성되었는데 이 latch의 입력을 testbench에서 바꾸어보지 않는다면, latch의 영향이 나타나지 않는다. Code Coverage를 확인하여 문제를 찾는 방법도 있겠지만, 처음부터 RTL 코드 작성을 잘하고 합성시 HDL Compiler결과만 확인한다면 근본적으로 문제를 해결할 수 있다.
Donny's Guideline: HDL Compiler결과를 꼼꼼히 확인하자
2008/03/26 15:48 Donny 

, , ,
sooy 2008/03/31 15:55
동감합니다. 실제 verilog접한 경험도 짧지만, (경험을 기반으로 한) 제 나름대로의 guideline을 조목조목 잘 정리해주셨네요. 그러고보면 결국 가야할 길은 하나인가 봅니다^^;

저 위의 guideline에 덧붙여 제가 주의하고자 하고 강조하는 부분들은 가능하면 combinational / sequential logic을 분리해서 설계하자입니다. 그만큼 coding시, gate-level로 어떻게 구성될 것인지까지 고민하다보면 뒤에서 삽질이 줄어들겠죠.(향후 debugging에도 용이하고요.)
+ always 안의 case나 if-else state사용할 때는 생성하고자 하는 signal의 모든 state를 빠짐없이 정의해주기를 요구합니다. 다소 번거롭고, 귀찮을지도 모르지만 발생가능한 모든 상태에 대해서 그 state를 정의해주지 않았다가 발생된 사건들을 보면...
donny 2008/04/01 08:54
결국 만들고자하는 것이 회로이기 때문에 가장 확실한 방법을 선호하게 되는 거겠죠.

combinational / sequential을 분리하는 것 역시 중요한 부분이지요. 저도 비슷한데 flip-flop을 발생시키는 always block에는 else if를 한번 이상 안쓰고, else if나 case가 필요한 부분은 별도의 combinational logic으로 만듭니다.

case와 if-else의 기술이 사실 매우 중요하지요. else-if tree가 한번 이상 갈라지면 else-if condition에는 한가지 조건만 써야합니다. 두가지 조건을 조합하면 dependency가 생겨 unreachable statement가 발생할 가능성이 높아지죠.

우주임이 언급한 "모든 state를 정의"는 if-else가 아닌 case일 때 full-case를 기술하는 것과 같은 맥락이고, 제가 말한 unreachable statement는 parallel하지 않은 case문과 같은 의미죠.

제 경우 복잡한 if-else문은 condition간의 관계가 한눈에 안들어오기 때문에 case문을 선호합니다. 덕분에 제가 짠 코드는 무슨 기계어 같습니다. 제 background가 마이크로프로세서라서 마이크로코드를 사용하는 것과 같은 컨셉을 사용합니다. ^^
anna 2008/04/02 16:21
도대체 두분이서 이렇게 글쓰고도
대화가 통하신단 말씀이세요??
오~지저스 지저스!

제가 보기엔 그저 연극에서나 나오는
말도 안되는 언어 유희로 개그를 하는것 처럼 보인다요~

donny 2008/04/02 16:40
위엣분 공부 좀 시켜야겠네요 ㅋ
Velvio 2009/07/09 16:47
Verilog don't care case로 Google 검색하니 이 페이지가 제일 먼저 뜨네.
반갑고 신기하구먼.
근데 첨부 파일에서는 ?를 쓰라는 것 같은데 넌 x를 더 선호한다고라...

donny 2009/07/11 23:31
관련된 검색어로 구글에서 검색하면 대체로 상당히 우선 순위를 갖고 검색되더라구요. 10년 넘은 도메인이라서 그런가? ㅎ
donny 2009/07/11 23:32
참... don't care로 x를 쓰거나 ?를 쓰는 것은 큰 의미는 없다고 봅니다. x가 가독성이 좋아서 x를 선호합니다. ㅎ
babyworm 2009/08/05 11:10 
X의 경우 받아들이는 경우가 더 많아서, casez와 ?를 조합하는 것이 더 안전하다고 알려져 있습니다.
일례로, case문을 결정하는 입력이 unknown인 경우 casex와 x를 조합하는 경우 mathcing이 일어나기 때문에 에러처리가 불가능하죠 :)
Functional Simulation에서의 unknown은 대부분 memory model에서 발생하더군요.
Name
Password
Homepage
  Secret
Description
 

사악한 쌍둥이 full_case와 parallel_case
Design | 2008/03/15 16:57
원제은 "full_case parallel_case", the Evil Twins of Verilog Synthesis 이다. [download]

RTL 시뮬레이션과 gate-level 시뮬레이션 결과가 달라지는 이유가 무엇일까? 그 중 한가지는 case문의 잘못된 사용때문이다. 이것이 얼마나 중요한 것인가는 저 페이퍼의 제목만 봐도 알 수 있다. 오죽하면 '사악한 쌍둥이'라고 했겠는가? 또 이 페이퍼는 SNUG-1999에서 Best Paper로 선정된 것을 봐도 짐작할 수 있다.

Verilog를 잘 다루는 설계자라면 분명 if-else문보다는 case문을 선호할 것이다.
Design Compiler에서 합성을 해보면 초기 HDL Compile단계에서 각 case문에 대하여 아래와 같은 내용을 출력한다.


Verilog합성을 하면서 이 내용을 그동안 눈여겨보지 않았다면 앞으로는 꼭 확인하길 바란다.
case문은 잘 사용하면 매우 강력한 능력을 발휘한다. 하지만 잘못사용하면 그만큼 애를 먹이는 존재이다. 근본적으로는 RTL 기술을 잘하면 문제가 없지만, 이를 돕기 위해서 Synopsys는 "//synopsys full_case parallel_case" 와 같이 RTL내에 directive를 사용할 수 있도록 하였다.

문제는 이 directive들을 어떻게 사용함에 따라 같은 RTL코드라도 합성결과가 달라진다. 설계자를 돕기위한 이 기능이 '사악한 쌍둥이'가 된 이유는 시뮬레이션시에는 이 directive들이 반영되지 않기 때문에 gate-level시뮬레이션과 차이를 만들기 때문일 것이다.

더 자세한 설명은 다음 기회로 미루고, 쉽게 설명되어있는 내용이므로 직접 읽어보길 권한다.  [download]
2008/03/15 16:57 Donny 

, , , ,
BLACKENGINE 2008/03/26 13:09
도니님의 simplecore설계를 읽어보고 감명받은 한사람입니다. 이렇게 베이비웜 님이랑 같이 웹상에서 보게되다니 반갑네요. 저도 이제 4학년을 마치면 좀 더 전문적인 아키텍쳐의 길을 걷게 될 듯합니다. 아무튼 종종 들르겠습니다.
donny 2008/03/26 14:19
반갑습니다.
꽤 오래전에 연재했던 강좌인데도 기억하시는 분들이 계셔서 보람을 느끼네요. 시간나는 대로 연재했던 칼럼을 찾아서 블로그에 올려놔야겠습니다.
도움되실 만한 글들을 자주 쓰도록 노력하겠습니다.
donny 2008/04/05 20:46
메일 계정이 꽉차서 스팸메일을 지우다 작년에 블랙엔진님이 보내신 메일을 이제야 봤습니다. ㅡㅡ;;
답장드렸어요 ^^
Name
Password
Homepage
  Secret
Description
 

칩쟁이들의 모임등록
Design | 2008/03/12 16:24

블로그를 다시 시작할 수 있게 가장 큰 계기를 만들어 준 사람은 babyworm님이다.
학교에 있을 때 SystemIC 2010이라는 정부 프로젝트를 함께 한 분인데,
말이 함께이지 서로 소속과 과제가 달라서 이름도 모르고 직접 만난적도 없다. ^^;
하지만, 모두 국산 마이크로프로세서를 개발하는 것이 임무였기에 그 당시엔 서로에게 관심을 갖을 수 밖에 없는 상황이었을 듯...

babyworm님은 명령어부터 모두 순수 국산인 EISC라는 마이크로프로세서를 개발하였고, 난 그때(1999년)도 그렇지만 지금도 전 세계를 꽉 잡고 있는 ARM프로세서와 명령서가 호환되는 프로세세를 개발하였다. ARM7와 ARM9을 개발하여 RamP라는 휴대용 3차원 그래픽 프로세서에 탑재하였다. (아래사진은 ARM9을 탑재한 RamP-4)

RamP-4 Mobile 3D Processor

RamP-4

baryworm님은 아직까지도 좋은 국산 프로세서를 개발하기위해 노력하고 계신 반면, 난 졸업 후 Display분야로 전공을 바꾸어 휴대용 LCD Driver IC를 개발하고 있다. 내가 척박한 국산 프로세서 시장에 쉽게 등 돌려버린게 반성될 만큼 babyworm님은 고군분투하고 계시다. 오랫동안 한 분야에 집중하신 만큼 예전에 내가 알던 EISC와는 많이 달라진 제품을 개발하고 계신 것 같다.

내가 다른분야로 선회하게된 것은 양산(Mass Production)이라는 것을 해보기 위해서이다. 학교에 있을 때 깨달은 것은 시제품(prototype)과 제품(product)의 차이는 매우 크다는 것이다. 제대로 된 기술을 터득하려면 반드시 양산 경험이 있어야한다고 생각했고, 이러한 경험을 얻기에 적당한 분야중 하나로 선택하게 된것이 바로 LCD Driver IC(줄여서 LDI 또는 DDI라고 함)이다. 또한 앞으로 DDI도 복잡한 알고리즘을 수행하는 SoC가 될 것이라는 판단에서였다.

직접 개발한 DDI가 적용된 LCD모듈


입사하고 첫 해, DDI의 Logic Block전체 설계를 맡아서 개발한 제품이 성공적으로 진행되어 이미 1,000만개 이상 팔았으니 목표를 어느정도 이루었고, 또 조금씩 DDI에도 화질개선 알고리즘이 적용되기 시작하였다.

본론으로 돌아와 블로그를 운영하게끔 직접적인 계기를 만들어주신 babyworm님이 만든 blog cafe에 내 블로그를 등록하였다. 앞으로 많은 칩쟁이들과 예비 칩쟁이들이 좋은 정보를 공유할 수 있는 공간이 되었으면 한다.
2008/03/12 16:24 Donny 

, , , , ,
babyworm 2008/03/12 23:07
블로그 개설 축하드립니다. 좋은 글과 좋은 이야기 많이 기대하겠습니다. :)
donny 2008/03/13 14:03
방문 감사합니다. 김박사님께도 좋은 정보 계속 기대하겠습니다. ^^
Name
Password
Homepage
  Secret
Description
 

BLOG main image
Chip Designer, Donny (drdonny@gmail.com)
전체 (133)
Portfolio(Eng.) (20)
Design (8)
Microprocessor (11)
Verification (5)
Technology (7)
Lecture (13)
Silicon Valley (2)
Travel (6)
Family (37)
KoreaInlineCup (1)
Donny Thinks (23)
Wishlist (0)
Microprocessor 재희 MIPI 마이크로프로세서 집적회로설계 DSI DDI 두개골 유합증 Verilog ARM MDDI Synthesis Qualcomm 인테리어 Display Driver IC HSSI 애플 재인 simplecore Synopsys
2011/10
2011/03
2011/01
2010/12
2010/11
이미 늦었을..
    01/20 - 지금쯤이면...
좋은 자료 ..
    01/10 - estwingz
좋은자료 감..
    2011 - 최수연
iverilog lf..
    2011 - 아놔
좋은 자료 ..
    2011 - 김두상
반도체, 칩..
    2009 - :::: for Ne..
Synopsys 버..
    2008 - Processor A..
Coding styl..
    2008 - Processor A..
Dreamer GUN..
Natural Bor..
Processor A..
지극히 개인..
64
64
125822

태터툴즈 배너