Processor Architect.... egoist
프로세서, SoC, ASIC 설계에 대한 재미난 이야기들. 그리고, 쉼표...
BLOG main image
Notice
babyworm은?
CATEGORY
전체 (241)
SoC 설계 관련 (106)
마이크로 프로세서 이야기 (22)
유용한 설계도구 (7)
검증이야기 (14)
관련 새소식 (28)
초보자 코너 (12)
북마크 (1)
개인적인 (98)
책이야기 (13)
만화/애니메이션 (3)
영화/드라마이야기 (4)
음악이야기 (12)
Boards
질문 게시판
칩쟁이들 모임(올블카페)
TAGS
마이크로 프로세서 synopsys verilog HDL SystemVerilog verification 개인적인 EISC PLI AMD ARM GPU Cadence Synthesis FPGA Mentor 프로세서 Intel LaTex 검증 Microprocessor
Recent Entries
ARM Connected Community...
Painful Truth (2)
불필요하게 어려운 말을... (4)
암울한 반도체 시장 (1)
babyworm의 2008-10-25 북...
Asynchronous는 어려워 (4)
Intel의 새로운 GPU
Guitar로 연주하는 비발디...
AMBA 3.0 AXI protocol에...
중소기업 SoC의 딜레마 (2)
Recent Comments
좋은 책 소개 감사합니다.
11/13 - jwook1004
에구구구.. GALS나 비동기 프...
11/05 - babyworm
안녕하세요. :) 헉.제가 실...
11/05 - babyworm
관리자만 볼 수 있는 댓글입...
11/05 - 비밀방문자
GALs 이거...Arteis 였나..;;...
11/05 - kal9
Recent Trackbacks
불필요하게 어려운 말을 쓰는...
한날은 생각한다
Verilog Coding Style for Sy...
Stay Tuned...
CEO's Leadership Seminar
Stay Tuned...
사악한 쌍둥이 full_case와 p...
Stay Tuned...
칩쟁이들의 모임등록
Stay Tuned...
Calendar
«   2008/11   »
일 월 화 수 목 금 토
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
Archive
2008/10
2008/09
2008/08
2008/07
2008/06
2008/05
2008/04
2008/03
2008/02
2008/01
2007/12
2007/11
Link Site
[B]babyworm의 개인적인 블로그
[B]PAPA JOHN'S
[Javaworld] 볕태들의 집합소
[JW] 얌탱옹 블로그
[JW]:+: Welcome To (( sccid...
[JW]iDea Holic
[JW]JS™
[JW]Jung-Hyeon's weB@LOG
[JW]Kino's blog
[JW]애니와 만화의 세계!
[JW]자유로운 늑대의 울음으로~~
[JW]첫사랑 첼로
[JW]최신컴터 놀이~
[KTUG]글과 음악
[KTUG]도은이네 집
[W] eetimes
[W] KERIS 학술 정보 서비스
[W] Microprocessor Report
[W] verification guild
[W]ASIC&FPGA cafe
[W]filedic
[W]WWW CA Page
[W]개인적인 게시판
[W]아람92
193148 Visitors up to today!
Today 119 hit, Yesterday 194 hit

English Ver. (by Google)
Creative Commons License
이 블로그의 모든 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
한RSS에 추가 add to Bloglines
add to google


Add to Technorati Favorites



Candle
'perl'에 해당되는 글 3건
Perl을 이용해서 검증할때 유용한 팁 | 2007/06/04
오라일리의 perl책 세권. (2) | 2006/10/10
perl 과 tcl.. 개인적인 느낌.. (2) | 2006/09/12
Perl을 이용해서 검증할때 유용한 팁
[babyworm, 2007/06/04 23:46, SoC 설계 관련/검증이야기]

뭐랄까요.. 요즘 이런 저런 일로 바쁘다보니, 사람이 좀 얇팍하게 글을 쓰게되네요. :)
(퇴고 없이 그냥 온라인에서 쓰는 글이라 앞뒤가 없을지도 모르겠습니다.)

오늘은 여러분들께서 perl을 이용해서 Verilog HDL을 위한 testbench를 작성할 때 간단히 명령어 해석기를 만들어 사용하는 방법을 알려드리죠.

이 방법은 제가 JTAG을 위한 protocol을 만들다가 생각해낸 방법인데요.. 아주 유용하게 쓰고 있습니다.
얼마전 AXI FileReader와 같은 간단한 명령어 해석기가 필요할 때도 쉽게 적용할 수 있구요.

예를들어, JTAG을 위한 몇몇 명령을 만들고, 이 명령을 이용해서 HDL model을 위한 신호 입력으로 변환시키는 과정을 생각해 봅시다.

1. 필요한 함수를 정합니다.
대충 다음과 같은 함수를 쓸 수 있겠지요?

rtnval = get_id();
do_intest(serin);
do_extest(serin);


2.
해당 함수를 perl에서 subroutine으로 만들어갑니다.
뭐, subroutine을 만드는 방법은 쉽죠?

3.
이 부분이 제일 중요한데요..

xxx.pl <filename.input>

이런식으로 처리하려면, 중간에 다음과 같은 루틴을 넣어줍니다.

do "$ARGV[0]";

위의 한 행은 해당 파일($ARGV[0])에 지정된 "perl" 명령어들을 읽어와서 해석하는 부분입니다.
즉, 여러분께서 "filename.input" 이라는 입력 파일에 앞에서 작성한 subroutine을 "명령어 사용하듯" 적어두면, 이것이 perl script에서 읽혀서, "명령어를 해석하듯" 동작하게 됩니다.
이렇게 함으로써, 파싱하는 부분을 생략하고도, 그럴듯하게 명령어 해석기처럼 하나의 perl 스크립트를 만드는 것이 가능합니다.


이제 이러한 perl script에서 어떻게 HDL 테스트 벡터를 만들어내는지 생각해 봅시다.
간단히 생각할 수 있는 것은 두 가지 인데요.
첫번째는 ROM file형태로 만들어버리고, verification을 위한 testbench에서는 $readememh()를 써서 읽은 다음에 한 클럭에 하나의 신호 그룹을 뿌리는 방법이구요..
두번째는 각 subroutine에 printf FOUT 과 같은 file output을 사용해서, 간단한 verilog testvector를 만들어내고, 이를 verification을 위한 testbench에서 `include "xxx" 명령을 이용해서 읽어들이는 방법입니다.

둘 다 간단하죠?

한 마디로, perl을 이용하면 C로는 어렵게 해야 할 일이 아주 아주 편해지는 일이 많습니다. 그래서 verification engineer들에게 perl과 같은 scripting 언어가 사랑받는 것이겠죠.

네이버에 북마크 다음에 북마크 마가린 바르기 HanRSS에 북마크하기 이올린에 북마크하기 News2.0에 투고하기 del.icio.us에 북마크하기 Digg에 번역해 투고하기 dzone에 번역해 투고하기 붐바
babyworm
2007/06/04 23:46 2007/06/04 23:46
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
perl, verification, verilog HDL

Trackback0 : Comment0
누적조회 1391 : 오늘조회 1
Trackback Address :: http://babyworm.net/tatter/trackback/175
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
오라일리의 perl책 세권.
[babyworm, 2006/10/10 23:48, 책이야기]
perl을 잘 지원해주는 출판사인 오라일리(perl.com과 같은 사이트도 운영하죠)의 perl책 세권이 있습니다. 
(저는 개인적으로 낙타 대가리들이라고 부르곤하죠.. ^^; 근데, 왜 쿡북에는 산양이지요? )

perl을 주된 언어가 아닌 스크립팅 언어로 사용하는 엔지니어의 입장에서 각각을 리뷰해보도록 하겠습니다.

PERL 프로그래밍

이 책은 가장 기본적인 책입니다. 그리고, 가장 잘 설명된 책입니다.
하지만, 인간적으로 너무 두껍습니다. ^^;
즉, perl에 대해서 깊이 있게 보실분들께는 좋습니다만 저와 같이 간략한 스크립팅 언어로 사용하는 사람에게는 좀 무리가 있죠.. 재미삼아 읽기엔 말이죠.  펄에 대해서 제대로 아시고 싶으시다면 이책을 선택하십시요.

PERL 제대로 배우기
이책은 위 책의 좀 간략본이랄까요? 그런 책입니다.
단, 아무런 기초없이 보기엔 좀 무리인 책이기도 합니다.
프로그래밍 언어를 체계적으로 설명하는 맛은 없는 책이거든요.
웹페이지들에서 기본적인 perl문법은 익혔고, 가끔 문법 사항을 (빠르게) 볼일이 있다면 이책을 추천합니다.
그러나, 일반적인 목적으로는 추천하지 않는 책입니다.

Perl Cookbook
펄 계의 이단자.. 산양 머리 책입니다. ^^;
저같이 이런 저런 짜집기 코드를 만들어내는 사용자에게는 최고의 책입니다.
펄 스크립트를 짤 일이 있으면, 이책에서 알맞는 예제가 있는지 본 다음 주르륵보고, 비슷 비슷하게 작성하는 패턴을 쓰고 있습니다.  하기야 제가 사용하는 부분이 몇몇 간단한 루틴과 정규식의 조합, 가끔 시스템 명령 몇가지 정도니까요..

ASIC하시는 분이 perl을 익혀야겠다. 그리고, 써봐야겠다.. 라고 결심했다면..
우선 한국 펄 사용자 모임에 방문하셔서 간단한 사용법을 봅니다.
그리고, 펄 쿡북을 사십시요. ^^;

책 두권을 사야겠다라고 하면 perl 프로그래밍 책과 펄 쿡북을 사십시요.

책은 사기 싫다면, 펄사용자모임과 CPAN을 방문하십시요.
네이버에 북마크 다음에 북마크 마가린 바르기 HanRSS에 북마크하기 이올린에 북마크하기 News2.0에 투고하기 del.icio.us에 북마크하기 Digg에 번역해 투고하기 dzone에 번역해 투고하기 붐바
babyworm
2006/10/10 23:48 2006/10/10 23:48
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
perl, 책리뷰

Trackback0 : Comment2
누적조회 1490 : 오늘조회 6
Trackback Address :: http://babyworm.net/tatter/trackback/61
gnil | 2006/10/11 10:26 | PERMALINK | EDIT/DEL | REPLY
전 21일 완성시리즈로 펄을 처음 접했었는데요... (11장까지 봤던가?)
아무 생각없이 따라하기 좋았었고 간단한 형태로 작성까진 가능했지만
어느날인가 그 책을 누군가에게 빌려주고 나서 그 누군가가 누군인지 까먹었을 때부터
저에게 펄은 잊혀진 존재가 되어 버렸어요;;

더군다나 업무상 사용하는 (남이 작성한) 펄 소스 코드에서,
...
@{$phashConfigInfo->{"avc_file"}->{$szAVCFile}->{"ascii_files"}} = @arrASCIIFiles ;
$phasConfigInfo->{"avc_file"}->{$szAVCFile}->{"pass"} = $szPassFactor ;
...
을 본 이후로는 펄이 멀게만 느껴지더라구요...ㅜ
babyworm | 2006/10/11 12:49 | PERMALINK | EDIT/DEL
다시 사용하실 일이 있을때 금방 생각나실 겁니다. ^^;
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
perl 과 tcl.. 개인적인 느낌..
[babyworm, 2006/09/12 19:15, SoC 설계 관련]
 아마도 ASIC 엔지니어,그리고 경력이 좀 된다면 다들 간단한 쉘 프로그래밍이나, perl이나 tcl 정도는 다룰줄 아시리라 생각합니다.

부끄럽게도 저는 정말 간단한 정도의 할 줄 알다가, 1~2년 전부터 TCL을.. 1년전부터 perl을 좀 제대로
쓰고 있습니다.
예전에 했던 TCL은 사실 TK때문에 했던 것이라 상당히 간단한 수준이었고, 요즘에는 synopsys툴을 비롯한 많은 CAD툴에서 TCL 기반의 scripting을 지원하는 관계로 자주 쓰게 되었습니다.
잘쓰던건 아니지만, 예전에 했던 가닥이 있어서 그나마 쉽게 적응했지요.

TCL은 말 그대로 많은 툴에서 지원되고, 툴내에서 프로그래밍에도 편하고, 거기다가 TK라는 강력한 원군의 도움으로 ASIC 엔지니어에게는 이제 "필수"언어가 되었다고 생각합니다.
혹, ASIC 엔지니어를 지망하신다면, tcl은 배워두시는 것이 편하실 겁니다.

perl은 reporting language라는 이름 그대로, 문자 처리에 있어서는 발군!입니다.
사실 예전에는 노가다성 코드를 C로 작성해서 test bech같은것을 만드는 일이 많았는데, 요즘엔 대부분 perl로 처리합니다.
perl에 한번 물들고 나니, 왠만한 작업도 그냥 쉘 프로그래밍 안짜고 perl 기반으로 작업을 하게 된다는 엄청난 중독성이 있더군요.
강력한 정규식의 지원뿐만 아니라 수많은 확장과 간단한 문자열 처리!

설계자들에게는 정말 좋은 언어라고 생각됩니다.
perl과 verilog와의 조합을 위한 여러가지 준비도 http://www.veripool.com/에 상당한 수준으로 되어있으므로, 사용하시기에 어려움이 없으실 듯 합니다.

웍에서 perl 가지고 작업하다가.. perl을 찬미하고픈 마음에 갑자기 씁니다.
네이버에 북마크 다음에 북마크 마가린 바르기 HanRSS에 북마크하기 이올린에 북마크하기 News2.0에 투고하기 del.icio.us에 북마크하기 Digg에 번역해 투고하기 dzone에 번역해 투고하기 붐바
babyworm
2006/09/12 19:15 2006/09/12 19:15
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
perl, TCL

Trackback0 : Comment2
누적조회 1566 : 오늘조회 10
Trackback Address :: http://babyworm.net/tatter/trackback/42
gnil | 2006/09/20 08:29 | PERMALINK | EDIT/DEL | REPLY
전 한줄짜리 perl 명령을 추천합니다~
예를 들어, 현재 디렉토리 내 모든 SPICE 파일 내용 중에서 tck 값을 4n에서 30n로 바꾸고 싶다면...
% perl -pi -e 's/tck[ \t]*=[ \t]*4n/tck=30n/g' ./*.sp
babyworm | 2006/09/21 20:20 | PERMALINK | EDIT/DEL
거의 sed처럼 사용하시는군요.. 그것도 좋은 생각이네요.. 이런식으로 사용할 생각은 못해봤는데요.. ^^;
[로그인][오픈아이디란?]
Name
Password
Homepage

Secret
*1
Location : Tag : GuestBook : Admin
babyworm’s Blog is powered by Tattertools.com / Designed by Hisday / Modified by Daisy