Author Archives: babyworm

TLM으로 설계가 이동할 것인가?

Transaction Level Modeling(이후 TLM)이라는 것이 한 2-3년전부터 SoC설계 분야에서 논문/책/툴을 쏟아내고 있습니다. 그만큼 이제 시장 상황이 익어간다는 것이겠지요.

하지만 설계라는 분야에서 RTL에서 TLM 수준으로 추상화 수준이 이동할 것이라고 믿었던 사람들도 이제는 거의 TLM 수준에서 설계가 이루어질 것이라 믿고 있지 않습니다. 그 이유는 무엇일까요?

예전에 schematic capture수준에서 HDL을 기반으로 하는 RTL수준으로 설계가 옮겨 갈수 있었던 가장 큰 이유는 logic synthesis 기술의 혁신적인 발전에 있습니다.
(저가 처음 digital logic 설계를 배우던 시절이 이 개념이 한창 바뀌던 시절이었던것 같습니다. 학부 3학년때는 schematic capture툴로 설계를 했는데, 학부 4학년때는 VHDL을 시작했거든요.. 개인적으로는 schematic capture툴로 설계를 시작한 것이 설계의 기본기를 많이 배울수 있었던 기회였기에 아주 행운이었다고 생각합니다. )
초기에 logic synthesis는 사실 (전문가가 한) schematic 설계보다는 못하지만, 그 생산성에 있어서 비교할 수 없이 훌륭했고, 어느정도 시간이 흐른 이후에는 설계의 질 또한 훌륭한 수준이 되면서 대부분의 설계가 RTL에서 이루어지게 되었습니다. (물론, 아직도 schematic capture를 이용하여 설계하시는 분들이 계십니다. 몇년전에 일본에서 온 할아버지 엔지니어였던 야노상.. HDL도 잘 모르고, STA도 몰라서 같이 일하는데 아주 괴롭고, 걱정스러웠습니다만.. 동작 잘하는 칩을 만드는 엔지니어였습니다. ^^; 일면 부럽기도 하고요..그 나이까지 엔지니어를 한다는 것이요..)

TLM 수준에서 설계가 이행되지 못하고 있는 큰 이유는 구현(implementation)을 위하여, 손으로 재설계를 해야 하기 때문입니다. 즉, TLM으로 만들고 난 이후에 이를 RTL로 이전시킬 만한 (괜찮은) CAD 툴이 아직 없다는 것이 문제입니다.

뭐, 여러가지 시도가 있기는 합니다만.. 99년에 제가 한창 CAD 알고리즘을 공부할때 behavioral synthesis라는 논문들을 보고.. 이거 돈 되겠다.. 라고 생각했었는데..^^; 사실 이 분야에서 제대로 된 CAD툴이 아직도 못나오고 있는 실정입니다. (비슷한 것으로 자연어 통역기.. 70년대부터 계속 연구되었지만.. 아직까지 못나오고 있습니다… 인공 지능 분야에서 나오지 못할것으로 예상되는 프로젝트 중의 하나로 나와있더군요..^^; 아직 연구는 많이 하지만요..)
여하튼.. TLM 수준에서 RTL로 가는 건 앞에 말한 예보다는 쉬운 것이니 향후 몇년 내에 나올것이라 예상됩니다만.. 아직은 아닌 것이지요..

그럼.. TLM 수준의 설계는 이대로 사망하는 건가요?

TLM은 검증을 싣고..

TLM이 새로운 개념이 아니라는 것은 [wp]verification[/wp] engineer쪽에서는 기본입니다.
왜냐.. 예전부터 검증계에서는 TLM이 좋은 방법이었거든요..
SystemC는 이제 설계 언어라기 보다 검증언어입니다. 물론, architectural simulation하려고 할때 timed model을 예전 C++만을 이용할때 보다 아주 편하게 해주기는 합니다만, 이것이 설계는 아니지 않습니까…

이런 모습을 반영하듯, 초기 systemC는 synopsys에서 synthesizable subset을 지정하고 했습니다만.. 설계 언어로는 대부분 아무도 사용하지 않습니다. (정말 불편하죠..)

이제 SystemC에 추가되고 있는 기능은 대부분 검증 관련입니다. HVL(Hardware verification language)로의 확장에 역점을 두는 것이지요..

SystemVerilog도 마찬가지 입니다. verilog 2001에서 확장되어 발표된 SystemVerilog는 System설계 언어라기 보다 현재로서는 Verilog+HVL이라 할 수 있습니다. (많이 약합니다만..)

TLM기반의 SystemC, systemVerilog의 확장 라이브러리들

[wp]SystemC[/wp]에서는 [wp]Cadence[/wp]의 TestBuilder(이제는 CVE), 그리고, 이를 기반으로 한 SCV가 있습니다.
또한, 최근 멘토에서 AVM(Advanced Verfication Method)라는 검증 methodology(실은 라이브러리)가 나왔습니다. (http://www.mentor.com/products/fv/_3b715c/cb_download.cfm). 아마도 Cadence가 donation한 SCV(SCV good to go. Sir! ^^;)에 대한 대항마로 생각되는 부분이 많은데요.. 둘다 무료이고, 공개된 library이니까 설계하는 저희들이야 고맙죠.
국내에서는 CoSOC이라는 서울대 사업단에서 SCV기반의 검증 라이브러리가 나왔는데..  저는 사실 교육을 받고 왔지만 아직도 목적성을 잘 모르겠더군요.. 아무래도 업체가 아니고, 학교 연구소에서 국책 과제로 수행하는 것이다보니 완성도가 아직은 부족한 것 같습니다. (흠..이름을 잊어서 홈페이지에 가봤는데 없는 걸 보니 그냥 접었나보군요)

두 라이브러리 모두 역점을 두고 있는 부분이 [wp]assertion[/wp], functional coverage, constrant random vector generation입니다. 사실 검증에 있어서 coverage directed constrant random testing이 대세니까요..

요즘에 검증쪽 일을 할라고 슬슬 작업중인데.. 음.. 삽질을 많이 할듯 해서 걱정입니다.

Xilinx, Altera, Quicklogic.. FPGA 이야기.

가끔 컴퓨터 부품 리뷰에 보면 웃지못할 기사들이 버젓이 쓰여지는 일이 있습니다.
예를 들면 “이 캡쳐 보드에는 핵심칩으로 xilinx spartan 2가 사용되었고, 이 칩은 다른 무슨 보드에서 사용된 칩이다.” 이런 기사 말입니다.

이러한 기사는 어찌보면 FPGA/CPLD에 대한 이해부족으로 나온 기사라 생각됩니다.

[wp]Xilinx[/wp], [wp]Altera[/wp]라는 회사에서 나온 대부분의 칩은 [wp]FPGA[/wp]나 [wp]CPLD[/wp]이며, 이러한 칩들은 필요할때마다 구현하고자 하는 논리 회로를 올릴 수 있도록 구성된 칩입니다.

따라서,  이 회사의 칩은 구성하는 사람이 원하는 대로 바꿀수 있기 때문에 외부에서 보이는 칩의 이름이 xilinx spartan 2이건 altrea cyclon이건 아무런 의미가 없다는 것이지요.
예를 들어 동일한 xilinx spartan2라도 네트웍 시스템하는 사람은 “네트웍 관련 로직”을 넣어서 구현할테고, 그래픽 카드 만드는 사람은 “그래픽 처리 기능”을 넣어서 만들테고, MP3 플레이어라면 “MP3 decoder”를 넣어서 구현할테니 말입니다.

FPGA는 어떤 칩인가
이런 칩들은 reconfigurable logic들인데요.. (antifuse형태를 쓰는 quicklogic과 actel은 잠시 접어두고요..)
이는 초기에 칩을 만들때 범용성 있는 로직들을 무수히 넣어두고, 이 로직들간의 연결을 제어할 수 있도록 해둔 것입니다. 즉, 로직 간의 연결제어에 따라 “원하는” 동작을 할 수 있는 새로운 칩이 되는 것이지요.
대신, 필요 없는 로직도 많고(하드웨어에서 필요없는 로직이 많다는 말은 단가가 비싸진다는 말과 동일합니다), 로직간의 연결도 멀고 해서 ASIC에 비하면 엄청나게 느리고, 전력소모도 많다는 것이 정설입니다.

초기에 이러한 형태의 칩은 하드웨어 설계자들이 구현하고자 하는 동작을 상당히 빠르게 FPGA에 올려서 시스템상에서 테스트(prototyping)하는 목적으로 사용되었습니다.
하지만, 최근에는 공정기술이 좋아지면서, FPGA도 어느정도 속도가 나오고 있구요.. ASIC공정을 타기 위한 NRE가 워낙에 비싸지다보니.. 소량이면서 아주 빠른 동작이 필요없는 경우 시스템에서 FPGA를 직접 이용하는 경우도 많이 늘어났습니다. (FPGA 제작사들은 이런 마켓을 위해서 spartan이나 cyclon과 같은 저가 FPGA를 출시하고 있습니다. )

조금더 들어가서..
FPGA는 로직간의 연결을 제어하는 방식에 따라 여러가지 칩이 존재하는데, 가장 빈번히 사용되는 방식이 SRAM 방식과 antifuse방식입니다. SRAM방식은 로직간의 연결 제어 정보를 SRAM에 두고, 이 SRAM의 프로그램이 변경될때마다 다른 형태의 로직으로 재구성될 수 있도록 만든 형태입니다.
이에 반해서, antifuse방식은 프로그래밍시에 로직 간 붙어있는 fuse중에 불필요한 fuse를 끊어서, 로직간의 연결을 만드는 방식입니다. 따라서, Antifuse 형태는 SRAM 형식보다 (일반적으로) 저전력이며 빠르지만, 재구성될 수 없다는 단점이 있습니다.

다른 잡설들
요즘 공정이 미세해지면서 Fab의 NRE가 너무 비싸지고, 고려사항도 많아지고.. 하면서..
이러다 FPGA(실은 [wp]structed ASIC[/wp])가 대안이 되는 거 아니냐.. 하는 이야기도 있습니다.
이런 마켓을 노리고 Altera는 hardcopy라는 칩도 선보였구요..
하지만, 아직까지는 별로 좋은 반응은 아닌듯 합니다. 초기에는 “열광적인” 지지자들이 꽤 많이 나왔는데 말입니다.

국내에서는 한백전자나 휴인스와 같은 FPGA 보드 사업하는 회사가 잘 되고 있지요..
책또한 국내에서 HDL이나 설계는 대부분 FPGA를 이용한 설계 책들이 주류를 이루고 있지요..
게다가 xilinx FPGA 관련 책(아래)이 이쪽 분야의 책 치고는 아주 선전했습니다. 이쪽 분야 국내서중에 몇 안되는 유용한 책이었구요.. (저자인 김혁씨는 이제 Xilinx FAE로 들어가신것으로 알고 있으며, 이번에 새 버젼이 나왔습니다. 사실 새 버젼에 대해서는 약간 아쉬움이 있습니다만.. )

Real XILINX FPGA World 8.1  

김혁 지음

 

예전(99년이던가 기억이 가물)에 verilog HDL synthesis라는 Bhasker 책을 랩에서 번역 작업을 한적이 있었습니다. 모든 예제를 synopsys로 합성해서 합성 결과를 같이 보여주려고 했었지요.. 헌데..아마도 국내에서 이 편역본을 출간했으면 망하지 않았을까 생각도 합니다. ^^; 사실 학교에선 강의시간에 synopsys를 사용하는 분들도 없을테고.. 기껏해야 몇몇 대학원생들만 사서 보셨을텐데(엔지니어 분들에게는 너무 쉬운책이니..) 채산성이 안 맞죠..^^;

음.. 그러고보니.. 글의 제목이 FPGA 이야기 였네요.. -_-;

박정희.. 시대의 아픔..

사실 박정희라는 인물에 대하여 잘 알고 있지 못합니다. 그냥 주워 들은 수준이지요..
우리나라 자주 국방과 경제 발전의 아버지라 칭송 받기도 하고, 독재자이며, 철권 통치를 휘두른 사람이기도 합니다.

일본군 장교 출신이기도 하고, 조선 남로당 출신이기도 한데.. 우리나라 보수/우익의 핵심 인물이기도한 재미있는 이력도 있습니다.

현재 박근혜씨로 인해서 여러가지 이야기도 많구요..

도올이 설명하는 박정희라는 인물은 이런 인물이군요..
실제로 어떠한지 모르겠지만.. 시대의 아픔을 많이 겪은 사람들 중에 하나군요..