Monthly Archives: November 2006

Queen: Somebody to love

Queen이란 그룹은 제가 고등학생 시절에 가장 나에게 힘이 되어준 그룹입니다.
친구들끼리 서로 테이프로 복사를 해대던 LP판.. 그중에 제일 인기 있던 판중에 하나가 바로 Queen의 best 앨범이었습니다.

야간 자율학습시간 선생님의 눈을 피해 음악을 들으며 공부할때, 가장 많이 듣던 곡이 바로 이 Queen의 노래입니다. 제가 다니던 학교는 새벽 일찍부터 자율학습이 엄격하게 진행되었었는데.. 덕분에 새벽 5시인가 6시인가에 시작하던 월드뉴스를 많이 볼수 있었지요..
걸프전이 일어난 사실도 그 월드 뉴스를 통해 봤고.. 프레디 머큐리가 AIDS에 걸렸다는 소식과 몇일 안있어 죽었다는 소식도 그 방송을 통해 봤습니다.

참.. 뭐랄까요.. 신기한 그룹입니다..
더이상 이런 창법을 가진 리드 보컬과 음악색을 가진 그룹이 나오기는 힘들지 않을까 생각해 봅니다.

[Flash] http://www.youtube.com/v/narrCWt02Zo

multiple port net의 fixing

오늘은 HDL을 이용해서 설계하시는 초보자 분들께서 많이 실수하시는 feedthrough net 문제에 대해서 이야기하고, 이를 synopsys에서 해결하는 방법에 대해서 간략히 설명하겠습니다.

HDL을 가지고 예술을 하는 것이 아니라면, 최종적으로 구현에 목적을 두어야 한다는 것은 자명합니다.
따라서, 합성 도구에서 좀 더 잘 받아들일 수 있는 형태로 코드를 만드는 것이 더 좋은 결과를 보일 것이라는 것도 당연하겠지요.

초보분들중에 설계하실때 module로 필요하지 않은 포트를 무조건 많이 만들어두고, 해당 포트를 다시 (이름만 바꿔서) 출력으로 보내는 경우가 간혹 있습니다.

예를 들어 별 이유없이 ina를 받고, 이를 outa로 출력하는 것이지요..

[CODE]assign outa = ina;[/CODE]

이런 경우는 (ina가 다른 곳에서 사용되더라도..) 원래 outa라는 출력 자체가 별 의미가 없는 상황입니다. 모듈 외부에서 ina를 연결하면 될테니까요.. 그런데, 간혹 이런 것을 사용하시는 분들이 있습니다.
이게 왜 문제가 되냐하면, assign문에 의하여 부가적인 로직의 사용없이 전달되는 “feedthrough net”의 경우 verilog netlist상에서 assign으로 표현되고, 이는 backend P&R도구에서 대부분 문제를 일으킵니다.
동일한 이름의 넷이 서로 다른 포트에 붙어있는 경우니까요.

따라서, synopsys design compiler에서는 이러한 것을 해결하기 위해서 multiple port라는 것을 지정하고, 필요한 경우 이를 fix할 수 있도록 하고 있습니다.

우선 synopsys design compiler에서 multiple port라 정의되는 넘들의 종류는 아래와 같이 2가지 입니다.
1) feedthrough net (모듈상의 입력이 바로 출력과 연결되는 net. 위의 예입니다.)
2) multiple port net (logic의 출력이 1개 이상의 출력 포트와 연결되는 net)

이 두 가지 경우 모두 synopsys에서는 netlist를 기록할때 assign문을 이용하게 됩니다.
그런데, 앞에서 설명하였듯이 backend툴들이 assign문과 동작을 잘 안하는 경우가 많기 때문에, 기본적으로 backend tool과 연동하는 netlist의 경우 assign을 사용하지 말것이 권장되고 있습니다.
이러한 문제를 없애기 위해서 가장 좋은 방법은 의미 없는 logic을 중간에 삽입하는 것이겠지요..

따라서, 이 경우 set_fix_multiple_port_nets 라는 컴파일 옵션을 사용하게 됩니다.
이 옵션에서는 대상을 선택하기 위한 3가지 옵션이 있습니다.

[CODE]-feedthrough : feedthrough에 대하여 fix
-outputs : mutipleoutput에 대한 fix
-all : 두 가지 모두 [/CODE]

그리고, 어떤 방식으로 해결할 것인지 정하는 2가지 옵션이 있습니다.

[CODE]-constants : 필요한 경우 logic을 duplicate
-buffer_constants : buffer의 삽입[/CODE]

따라서 일반적으로는 아래와 같은 명령을 준다면, feedthrough에 대한 문제를 synopsys에서 대부분 해결해 주게되니, 합성 스크립트상에 반드시 추가시킬것을 권장합니다.

[CODE]set_fix_multiple_port_nets -all -buffer_constants[/CODE]

과연 민주적인가? 하남시 화장장 건설 추진.. 그리고, 반대

얼마전 하남시에 화장장을 만드는 대신 지하철 공사 비용을 받으려는 시도를 한다는 이야기가 있었습니다.

그리고, 얼마후에 뉴스추적인가 하는 곳에서 “화장장 반대” 시위 모습이 나오더군요..

이제 감추고 싶어하는 이야기들..

하남시의 측면에서
하남은 93%가 그린벨트라 좋은 입지조건에도 불구하고 개발할 곳도 별로 없고, 시의 수입이 나올곳이 없다.
그린벨트에 건립가능한 시설을 통하여 교통을 확충하는 것이 좋겠다..는 이야기는 이해가 됩니다만..
이런 이야기가 수면위로 떠올라(사실 떠오른 정도가 아니라, 서울시, 경기도와 이미 조율이 끝난 상태라고 하죠..) 보도될때까지 전혀 의견 수렴이 없었다는 점..
이제 와서 부랴 부랴 의견 수렴 한다고 이야기를 해도, 이미 조율이 끝난 상태니 요식행위로만 비춰진다는 거죠..

시민들의 측면에서
환경 도시 하남에 화장장이 들어온다니 뜨억하시겠다는 건 알겠습니다. 저도 뜨억 합니다..
그래도, 덮어놓고 반대하시는 분들.. 의견 수렴하겠다는 것이 요식행위인것 처럼 보인다해도 폭력은 안됩니다.
얼린 계란을 열심히 던지면서 “민주적 의견 수렴 없는..”이라는 판넬이 왠지 우스워 보이네요…
이야기 듣고, 일고의 가치도 없다면 싸워야 겠지만.. 그런 절차도 없이 난리 피우는 건 왠지

한나라당 입장에서..
경기도를 꽉잡고 있는 한나라당에서 추진한 정책이고, 서로 의견 조율이 빨리 이루어졌단 건 인정.. 하지만, 역시 민주적이라 할 수 있는 건 아니고..

열린 우리당 문학진 의원 입장에선..
항상 “지하철 유치”를 전면에 걸로 나온 의원인데..  자신이 어떻게 했어야 할 일은 빼앗겨서 배가 좀 아플 것이고..

재미있는 하남시!