Logic 설계와 Microprocessor 설계의 역사

Logic 설계와 Microprocessor 설계의 역사를 한눈에 볼 수 있는 ISSCC 50주년 Virtual Museum.
http://www.sscs.org/History/isscc50/micropr-logic/index.html

Memory 분야
http://sscs.ieee.org/images/files/aboutus/history/ISSCC50/memory/index.html

Analog분야
http://sscs.ieee.org/images/files/aboutus/history/ISSCC50/analog/index.html

집적회로설계 강의 시작

대학시절 은사님께서 몸이 많이 편찮으셔서 대신 강의를 맡게 되었습니다.
다른 강의는 실습위주의 강의로 대체를 했지만 대학원과목은 마땅한 대책이 없는 것 같습니다.

다행히 대학원과목이라 수업시간이 금요일 저녁이라 해보기로 했습니다.
매주 금요일은 청주에 출장을 가고 있었기 때문에 퇴근후에 수업을 하면 될 것 같습니다.
근무시간외이긴 해도 요새 프로젝트가 많이 몰려서 금요일 저녁 대신 토요일에 근무할 일도 생길 것 같네요.

누군가를 가르친다는 것은 무척 어려운 일이지만 전부터 좋아하는 일이었기에 이번 수업이 재미있고 보람있는 시간이 되었으면 합니다.

모레가 첫 시간인데 강의계획서를 오늘에서야 등록했네요. ^^;

전자회로특론

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

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

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

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

Teaching Logic Design for Analog Engineers

한 달 전 부터 매주 하고 있는 일은 Analog설계자들(주로 팀장급)에게 Logic설계를 가르치는 일이다.
Display Driver라는 것이 태생적으로 Analog회로와 Logic회로가 혼재하는 Mixed Signal 분야이기에 Analog설계자와 Logic설계자의 co-work이 중요하지만 쉬운 일은 아니다.

크게보면 모두 CMOS circuit을 하고있지만 생각하는 방식부터 사용하는 용어까지 많은 차이가 있고 또 스스로 벽을 만들어가는 것을 발견할 수 있다. 서로 반대편을 조금 더 이해하면 적지않은 상승효과를 가져올 수 있으리라고 믿는다.

3년이상 미루던 일을 드디어 시작한 셈인데 한 달가량 진행해본 결과 반응도 좋고 재미도 있다. Logic설계를 새로운 관점에서 분석해보는 재미도 있고 대화의 벽을 허물어가는 성취감도 있다. Analog설계자들이 좀 더 systematic한 설계에 대해 이해할 수 있는 계기가 될 수 있을 듯 하고, 내게는 Logic과 Analog를 꿰뚫는 insight를 만들 수 있는 좋은 기틀이 될 것 같다.

Comprehensive Functional Verification

Comprehensive Functional Verification: The Complete Industry Cycle
(공)저: Bruce Wile, John C. Goss, Wolfgang Roesner
기고가 John C. Goss, Wolfgang Roesner
Edition: illustrated, annotated
출판사: Morgan Kaufmann, 2005
ISBN 0127518037, 9780127518039
704페이지

구글에서 맛배기만 보다가 맘먹고 구입한 책. SystemVerilog를 다루지 않는 것은 좀 아쉽지만 기본 개념부터 예제까지 잘 정리되어있다. 내용도 좋지만 가격 또한 착하다. 4만원대에 판매하고 배송도 빠른 곳이 있어서 기쁜 마음으로 구입했다. 유용한 내용은 틈틈히 블로그를 통해 다뤄볼 예정

(Verilog) Setting a Net to a Logic Value

The $deposit system task allows you to set a net to a particular value and then to simulate
with the net set to that new value. The value change is propagated throughout the nets and
registers being driven by the variable that has been set. The syntax is as follows:

$deposit(variable, value);

The $deposit task can be used within any Verilog-XL procedural block. You can define the time at which the net is to be given a new value using the standard procedural constructs. The task can also be used on the interactive command line.

Use this system task as a debugging or design initialization aid. You should not use it as a
representation of actual circuitry.

Common uses for the $deposit system task include the following:

  • To initialize large portions or all of a circuit either at the beginning of or during a simulation. You can select the nodes to be deposited to yourself, or use PLI code to extract the node names.
  • To stop the simulator during a debugging session and to use the command on the interactive command line to set a new value.
  • To reset a circuit to a known state after simulation in order to retry a different debug route.
  • To set parts of a circuit to analyze intricate circuit details (common for switch level simulation).
  • To break feedback loops to set them to a known state.

In the syntax, variable is the name of the net or register whose value is being changed. The variable can be a net or register type but not a parameter, and it can be a vector or scalar object that can be expanded or compacted.

The second parameter, value, is a numerical or logical value in standard Verilog-XL notation. Bit and part selects are not allowed.

If the width of the value is smaller than the range of the variable, an error message is generated. If the width of the value is larger than the range of the variable, the MSBs are truncated and a warning is issued.

X and Z states can also be deposited.

Here are some examples of using $deposit:
$deposit(sig, 1);
$deposit(bus, ’hA2);
$deposit(bus4, ’bZ01x);

p.s. 좋은 Tip알려준 yangk에게 감사.. ^^