3. 모듈 (5장. 모듈).

Slides:



Advertisements
Similar presentations
3. 메소드와 변수 SCJP 자격증 프로젝트 발표자 : 최선웅. 1. 메 소 드 개 념 2. 메 소 드 양 식 3. 메 소 드 변 수 4. 메 소 드 예 제 5. 참 고 문 헌 / 자 료 목 차.
Advertisements

01_ 가상 함수를 사용한 다형성의 구현 02_ 오버라이딩
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++로 프로그래밍한다는 것의 의미 세상에서 가장 간단한 C++ 프로그램
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
ㅎㅎ C++ 프로그래밍의 첫 걸음 C++ 프로그래밍 기초 : 객체지향의 시작 C++로 프로그래밍한다는 것의 의미
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
최윤정 Java 프로그래밍 클래스 상속 최윤정
Chapter 6. 리눅스 백도어 황 선 환.
제 9 장 구조체와 공용체.
8. 객체와 클래스 (기본).
11장 구조체와 열거형 구조체의 정의 구조체 변수의 선언 구조체 초기화 및 사용 구조체 재정의 포인터를 이용해서 구조체 사용
Module Programming Linux Kernel 수업 4번째.
제12장 다형성과 가상함수 다형성의 개념을 이해한다. 상향 형변환의 개념을 이해한다. 가상 함수의 개념을 이해한다.
제15장 파일 입출력 문자열을 출력하는 여러가지 방법 (15-2쪽) 문자열만 처리하는 입출력 함수
Unix Project2 <test character device 생성>
제 6장. 생성자와 소멸자 학기 프로그래밍언어및실습 (C++).
8.1 인터페이스 개요와 인터페이스 정의 8.2 인터페이스의 사용 8.3 인터페이스의 상속 8.4 인터페이스 참조
제 14장 Multicast & Broadcast
제 3장. C보다 나은 C++ II.
07. 디바이스 드라이버의 초기화와 종료 김진홍
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
자바 5.0 프로그래밍.
명품 C++ 4장. 객체 포인터와 객체 배열, 객체의 동적 생성.
Lesson 7. 클래스와 메소드 - 1.
14. 예외처리.
CHAP 12. 리소스와 보안.
C#.
13. 연산자 오버로딩.
Chapter 3 클래스. 최호성.
제14장 예외처리와 템플릿 예외 처리의 개요를 학습한다. 예외 처리를 적용할 수 있다. 템플릿의 개념을 이해한다.
7장 인터페이스와 추상 클래스.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
Device Driver 임베디드 시스템 I.
명품 C++ 9장 가상 함수와 추상 클래스.
쉽게 풀어쓴 C언어 Express 제14장 포인터 활용 C Express Slide 1 (of 22)
19. 함수 포인터와 void 포인터.
Lesson 2. 기본 데이터형.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
School of Electronics and Information. Kyung Hee University.
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
멤버함수 중첩( 복사 생성자 ) - 연사자 중첩 - 동적 메모리를 가지는 클래스를 지원 하도록 멤버 함수 작성
Signal & Inter-Process Communication
JA A V W. 06.
Fucntion 요약.
CHAP 21. 전화, SMS, 주소록.
12. 상속 : 고급.
객체기반 SW설계 팀활동지 4.
4. 시간의 표현 (6장. 시간의 표현).
SelfShopping ProJect.
Chapter 2 C++ 함수와 네임스페이스. 최호성.
클래스 : 기능 CHAPTER 7 Section 1 생성자(Constructor)
중복 멤버의 처리 조 병 규 한 국 교 통 대 학 교 SQ Lab..
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
안드로이드 앱 개발과정 Step1. 기초과정 강사 : 정 훈 희.
서브클래스 조 병 규 한 국 교 통 대 학 교 SQ Lab..
구조체(struct)와 공용체(union)
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
실습 UBLAB.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 05. 복사 생성자.
06. 디바이스의 등록과 해제 김진홍
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 07. 상속의 이해.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
상속 (Inheritance) private 전용부분 전용부분 공용부분 공용부분 public 기본 클래스
7 생성자 함수.
Presentation transcript:

3. 모듈 (5장. 모듈)

시작 점: sc_main SystemC는 sc_main에서 시작한다 시뮬레이션 준비 sc_start() : 시뮬레이션 실행 시스템 구헝 계층 구조 형성 각종 자료구조 초기화 클럭과 설계모듈, 그리고 모듈을 상호 연결할 채널이 사례화 sc_start() : 시뮬레이션 실행 시뮬레이션 결과 후처리 결과 보고서 작성 파일 마감하고 할당된 메모리 해제 int sc_main (int argc, char* argv[]) { // [시뮬레이션 준비] sc_start (); // 이 함수 호출에 의하여 시뮬레이션 수행 // [시뮬레이션 결과 후처리] return EXIT_CODE; }

설계의 기본 단위: SC_MODULE SystemC의 모듈 어떤 상태의 동작과 행위, 계층성을 갖는 구조 등을 담아두는 가장 작은 단위 SC_MODULE 구문 실제로 SC_MODULE은 다음과 같은 C++ 매크로이다. 즉, SystemC의 sc_module 클래스를 상속 받은 클래서로 정의된다. #include <systemc.h> SC_MODULE (module_name) { // [모듈 본문] }; #define SC_MODULE (module_name) \ struct module_name: public sc_module

설계의 기본 단위: SC_MODULE 모듈 본문의 구성 요소 포트 모듈 내 지역 채널 모듈 클래스의 소속 자료 하위 설계 모듈 모듈 클래스 생성자 모듈 클래스 소멸자 프로세스로 지정될 멤버함수 기타 멤버함수

SC_MODULE 클래스의 구성자: SC_CTOR 하부 설계 모듈의 할당(사례화)과 초기화 하부 설계물의 상호 연결 SystemC 시뮬레이션 커널에 프로세스 등록 정적 감응 지정 기타 사용자 정의 설정 SC_CTOR의 구문 SC_CTOR (module_name) : Initialization // 클래스 구성자 초기화 (선택사항) { Subdesign_Allocation // 하위 모듈 객체 할당(사례화) Subdesign_Connectivity // 하위 모듈 상호 연결 Process_Registration // 프로세스 등록 Miscellaneous_Setup // 기타 설정 }

실행의 기본 단위: SystemC 프로세스 SystemC에서 병렬실행의 기본 단위는 프로세스이다. void PROCESS_NAME (void);

프로세스의 등록: SC_THREAD 클래의 멤버함수를 프로세스로 사용하기 위해서는 시뮬 레이션 커널에 등록해야 한다. SC_CTOR 내에서 프로세스를 등록하기 위한 구문은 다음 과 같다. 간단한 SC_THREAD 사용 예 SC_THREAD (process_name); // 반드시 구성자 내에 사용 SC_MODULE (simple_process_ex) { // 모듈 클래스 SC_CTOR (simple_process_ex) { // 모듈 클래스 구성자 SC_THREAD (my_thread_process0; // 시뮬레이션 프로세스 등록 } void my_thread_process (void); // 프로세스로 사용할 멤버함수 };

간단한 예제 simple_process_ex.h SC_MODULE (simple_process_ex) { SC_CTOR (simple_process_ex) { SC_THREAD (my_thread_process0; } void my_thread_process (void); }; simple_process_ex.cpp void simple_process_ex::my_thread_process (void ) { cout << “my_thread_process executed within “ << name() << endl; } main.cpp int sc_main (int argc, char *argv[]) { simple_process_ex my_instance(“my_instance”); sc_start (); return 0; }

SC_HAS_PROCESS 생성자 사용 방법 부가적인 생성자 인수 예 SC_HAS_PROCESS 예제 SC_CTOR : 생성자 인수로 이름만 전달 가능 SC_HAS_PROCESS : 다양한 생성자 인수 전달 가능 부가적인 생성자 인수 예 SC_HAS_PROCESS 예제 My_memory instance (“instance”, 1024); module_name.h SC_MODULE (module_name) { SC_HAS_PROCESS (module_name); module_name (sc_module_name instname [, others…]); }; module_name.cpp module_name::module_name ( sc_module_name instname [,others …]) : sc_module (instname) { // 생성자 본문 }