디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

Verilog VPI example

DMW(125.138) 2011.03.22 23:49:29
조회 174 추천 0 댓글 1


전자겔이 더 어울리긴하지만 거긴 정전이 심하니까.....

--------------------------------------------------------------------------

크리에이티브 커먼즈 라이선스

Creative Commons License

VPI라는건 Verilog Procedural Interface의 약자고 PLI 2.0으로 불리기도 하는거다. $finish 처럼 $로 시작하는 시스템 테스크를 만들 수 있게 해주는 물건인데....이걸가지고 여러가지 재미난것을 많이 할 수 있다. 노력이 필요하긴 하지만....

PLI 1.0...그러니까 옛날에는 이게 시뮬레이터마다 중구난방으로 구현되어 있어 사용하는데 에로사항이 꽃이 피었다고 하는데 VPI로 오면서 통일되었다고 한다. 그러니까 코드 하나만 짜 놓으면 여러 시뮬레이터에서 쓸 수 있다 그말임.

VPI는 C/C++로 작성하고 shared object, 즉 DLL로 링크 된다. 만들어진 DLL을 시뮬레이터가 실행될 때 옵션으로 넣어주면 C로 짠 테스크들을 시뮬레이션에서 사용할 수 있다. 플러그인의 일종이라고 생각하면 편할듯....아무튼 이걸로 소켓으로 데이터를 보내서 다른 프로그램과 연동 시킨킨다던지 등등등 여러가지 재미난것을 할 수 있다.

만들려면 일정한 형식을 갖춰서 코드를 짜야 하는 것 같은데....내가 VPI에 대해 잘 모르기 때문에 이 부분은 뭐라 말할 수는 업ㅂ다능. The Verilog PLI Handbook 이라는 책에 설명이 잘 되있다고 하니 궁금한 사람은 이걸 구해다 읽어보라능.

Verilog 시뮬레이터를 설치하면 시뮬레이터가 설치된 디렉토리 밑에 include 디렉토리에 VPI 라이브러리 헤더가 설치되고 lib 디렉토리 VPI 라이브러리가 설치된다. 컴파일할 때 include 패스를 잡아주고 링크할때 라이브러리를 링크해서 DLL을 맹글면 된다.
 
첨부된 파일의 압축을 풀고 modelsim을 사용하는 사람은 vpi/modelsim 디렉토리에서 자기가 사용하는 환경에 맡는 Makefile를 불러다 make를 때리면 dll이 만들어 진다. mingw하고 visual studio용으로 Makefile이 만들어져 있다. icarus를 쓰는 사람은 vpi/icarus 디렉토리에서 mingw용 Makefile를 사용하면 된다....아 make를 하기전에 Makefile을 열어서 시뮬레이터의 패스를 자기 환경에 맞게 고쳐주는걸 잊지말자.

DLL이 잘 만들어 졌으면 sim 디렉토리 밑에 modelsim이나 icarus로 가서 make를 때리면 시뮬레이션 되고 아래같은 화면을 볼 수 있다 >_<.



별건 업ㅂ지만 testbench랑 VPI 소스코드는 아래처럼 생겼다. 빌드하는 방법과 시뮬레이션 하는 방법은 같이 들어있는 Makefile를 참고 하자.

 hello_vpi.v
<PRE>12345678</PRE>
<PRE>module tb();initial begin        $hello;        #10        $finish;endendmodule</PRE>


 hello.c
<PRE>#include "vpi_user.h"PLI_INT32 hello( PLI_BYTE8 *user_data ) {        vpi_printf("\\nHello PLI\\n");        return 0;}        void vpit_register_hello(void) {    s_vpi_systf_data systf_data;#ifndef ICARUS_VPI    vpiHandle        systf_handle;#endif    systf_data.type        = vpiSysTask;    systf_data.sysfunctype = 0;    systf_data.tfname      = "$hello";    systf_data.calltf      = hello;    systf_data.compiletf   = 0;    systf_data.sizetf      = 0;    systf_data.user_data   = 0;#ifndef ICARUS_VPI    systf_handle = vpi_register_systf( &systf_data );    vpi_free_object( systf_handle );#else    vpi_register_systf( &systf_data );#endif}void (*vlog_startup_routines[])() = {    vpit_register_hello,    0};</PRE>





--------------------------------------------------------------------------
http://www.filepang.co.kr/164

추천 비추천

0

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이혼하고 나서 더 잘 사는 것 같은 스타는? 운영자 24/07/08 - -
공지 프로그래밍 갤러리 이용 안내 [71] 운영자 20.09.28 36291 62
2725562 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:41 0 0
2725561 미래의 어느 역사학자들의 대화라는데 (요약편) 프갤러(211.241) 08:28 4 0
2725560 미래의 어느 역사학자들의 대화라는데 프갤러(211.241) 08:26 5 0
2725559 네이버 쇼핑 라비으 같은데 단비가 아두이노 판매하면 도리스아(112.170) 07:48 13 0
2725557 직접 수리해서 전파인증 해외폰 인증하고, 내가 고친거 전파 인증 테스트 도리스아(112.170) 06:52 11 0
2725555 jpql 안 배우고 바로 queryDSL 배워도 됨? 프갤러(211.119) 06:34 15 0
2725554 "최저임금 10030원 결정 10년전 요구…이제와 호들갑에 발명도둑잡기갤로그로 이동합니다. 06:20 15 0
2725553 "韓의사, '개인택시 운전사'와 비슷…최악의 의정갈등 촉발 이유" 발명도둑잡기갤로그로 이동합니다. 06:18 13 0
2725552 앱테크 안하려고요. 지겨워.. 그리고 미안함. 도리스아(112.170) 06:16 22 1
2725551 음기 충전 발명도둑잡기갤로그로 이동합니다. 06:15 23 0
2725549 방금 전 인스타그램 첫 화면 발명도둑잡기갤로그로 이동합니다. 06:04 30 0
2725548 kt로 3개월 후 다시 리턴해서 친구 무선 충전패드 액세서리 사주기. 도리스아(112.170) 05:50 13 0
2725547 국민의힘 전대서 나온 ‘김건희 댓글팀’, ‘한동훈 여론조성팀’ 파문 발명도둑잡기갤로그로 이동합니다. 05:46 14 0
2725546 프랑스가 보여준 극우를 이기는 방법: 좌파의 단결 발명도둑잡기갤로그로 이동합니다. 05:39 12 0
2725545 우연이 여러번 겹치면 필연이 되고 必聯이 된다. 必蓮이 겹치면 뭘까 도리스아(112.170) 05:38 16 0
2725544 매일 사망 뉴스를 접한다. 무섭다. 사는게 무섭다. 도리스아(112.170) 05:36 13 0
2725543 잘못된 것 같다 대한민국... 도리스아(112.170) 05:34 26 1
2725541 내가이책까지 예전에 산거 보았다. 후회된다 도리스아(112.170) 05:30 22 0
2725540 대현 이 대열 이 kt 위즈 야구선수 팬 그 친구 파일 복구하려는데잘안돼 도리스아(112.170) 05:20 11 0
2725539 난 바보인가봐 오늘 엄마친구 사진도 복원할뻔 원본 문제가 도리스아(112.170) 05:18 16 0
2725538 힙합 갤러리 가보니 누가 하키스틱 뱃사공 글 올림 발명도둑잡기갤로그로 이동합니다. 05:06 13 0
2725537 힙합 갤러리 어쩌다 가보니 누가 스커트 영상 올림 발명도둑잡기갤로그로 이동합니다. 05:04 15 0
2725535 네스프레소 음악 발명도둑잡기갤로그로 이동합니다. 04:50 20 0
2725529 코딩은 한달 손놓으면 [3] ㅋㅋ(122.36) 03:31 72 0
2725526 본격적으로 복구시작 윈도우에서 스캔한걸로... 도리스아(112.170) 03:26 13 0
2725517 초대졸 Flutter 프론트 스타트업 2600 푸념글 (약장문) [7] 프갤러(58.124) 02:47 66 0
2725509 박스 줍는 노인 입갤이요 ㅇㅅㅇ ㅇㅅㅇ(106.102) 02:07 15 0
2725508 프로그래밍 커뮤니티 어딨누?> 프갤러(27.119) 02:06 22 0
2725503 잘하는 새끼들이 많은게낫다 프갤러(61.75) 01:49 35 0
2725501 미래의 어느 역사학자들의 대화라는데 (요약편) 프갤러(211.241) 01:25 16 0
2725500 미래의 어느 역사학자들의 대화라는데 프갤러(211.241) 01:22 24 0
2725499 만약 다시 태어난다면 어떤 언어만 파고싶냐 [4] ㅇㅇ(118.235) 01:16 46 0
2725497 웹개발은 si개발에 비해서 스트레스 받는일 적겠다 [1] 프갤러(114.177) 01:11 68 0
2725496 섹스 hrin(118.235) 00:57 41 0
2725495 라면이나 한그릇 때리고 잘까염?? 별로입니까?? [4] ㅇㅇ(123.213) 00:51 31 0
2725494 새로 입사한 사람이 공무원처럼 일할려 해서 스트레스다.. ㅇㅇ(222.96) 00:50 36 2
2725493 애들아 이거 sm이냐? 전화오면 밤에 헐떡 일어나서 대응해야함 [1] 프갤러(114.177) 00:39 44 0
2725492 공급과잉땜에 개발자들이 갑이 되는 날은 이제 안오겠지 [2] 프갤러(114.177) 00:34 73 0
2725491 신입 포트폴리오는 어느 수준을 원하냐 [3] 프갤러(39.119) 00:20 103 0
2725490 좋은 기분좋은 주말의 시작 멍청한유라ㅋ갤로그로 이동합니다. 00:14 27 0
2725489 파이썬으로 간단 CRUD 만드는 무료강의 공유 [1] 고도전도사갤로그로 이동합니다. 00:04 39 1
2725488 개발자라면 어떤 기술이나 트렌드에 관심이나 자부심이 있어야하지않나 ㅇㅇ(112.150) 07.12 34 0
2725487 개발기술로 싸우는건 멍청한 짓임 [3] ㅇㅇ(117.111) 07.12 94 0
2725486 집 근처 it 기업들 퇴사율 왜 다 40퍼 넘냐? [4] 프갤러(222.104) 07.12 98 0
2725485 중국이 IT 강국 된 이유 알려준다 [1] ㅇㅇ(175.125) 07.12 70 0
2725484 확실히 운동 백일 하니까 대중교통 다리가 덜 아프다 발명도둑잡기갤로그로 이동합니다. 07.12 16 0
2725483 C++ 모르고 자바 인생 살아온 사람에게 하고 싶은 말. 프갤러(59.16) 07.12 52 0
2725482 HTML 쿠키 2개 한 페이지에 못만드나? [1] 프갤러(211.44) 07.12 35 0
2725481 C++ 독한 인생 40 년 갈아 넣었습니다. [2] 프갤러(59.16) 07.12 45 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2