systemc 예제

SystemC의 계층 구조는 클래스 sc_모듈을 사용하여 만들어집니다. sc_module은 직접 사용하거나 매크로 SC_MODULE을 사용하여 “숨김”일 수 있습니다. 위의 예제 SC_MODULE은 nand2라는 sc_module 클래스 개체를 만듭니다. Linux에서 위의 예제를 컴파일하고 시뮬레이션하려면 아래 명령을 사용하십시오. 원래 다이어그램은 NAND 게이트를 연결하는 몇 가지 “와이어 조각”을 보여줍니다. sc_signals S1, S2 및 S3를 선언하여 생성됩니다. sc_signal은 이 예에서 신호가 보유할 수 있는 데이터의 유형을 지정하는 템플릿 파라미터가 있는 클래스입니다. sc_signal은 SystemC 클래스 라이브러리 내에 내장된 기본 채널의 예입니다. VHDL의 신호처럼 작동합니다.

실용적인 경험이없는 이론은 아무 소용이 없습니다. 따라서 OR 게이트의 예로 더 자세히 연구해야 합니다: 위의 예에서 생성자는 do_nand2가 SC_METHOD임을 선언하고 포트 A와 B의 모든 이벤트는 커널이 함수를 실행하게 하여 F에 대한 새 값을 계산해야 한다고 말합니다. 이 SystemC 시뮬레이션 예제는 두 개의 TTA 코어가 메모리 매핑된 액세스를 사용하여 두 개의 공유 레지스터를 통해 통신하는 시스템을 시뮬레이션합니다. 레지스터 중 하나 (busyReg)는 `수신기 TTA`가 `보낸 사람 TTA`가 (dataReg에) 기록하는 이전에 기록 된 데이터를 처리바쁜 것을 나타내는 데 사용됩니다. 수신기는 iprintf를 사용하여 수신된 데이터를 인쇄합니다. 위의 프로그램은 or_gate.cpp라는 별도의 파일에 프로세스 정의를 넣어 표준 형식으로 작성할 수도 있습니다. 그러나이 파일은 현재 예제에서 매우 작기 때문에 수행되지 않습니다. 테스트 벤치 쓰기 : 녹색 단어는 주석, 파란색은 예약 된 단어입니다, SystenC의 모든 프로그램은 파일의 시작 부분에 파일 systemc.h 헤더 파일을 포함해야합니다. 이 파일에는 모든 매크로 및 SystemC 템플릿이 포함되어 있습니다. SystemC의 모든 프로그램은 예약 된 단어 SC_MODULE 시작, 위의 예제 라인 4 모듈 hello_world를 포함. (참고 : 모듈 선언 전에 #include #define 문과 같은 컴파일러 사전 프로세서 문을 가질 수 있습니다.

마지막으로, 실제 주 SystemC 시뮬레이션 코드는 다음과 같이 정의됩니다. 언급할 수 있듯이 두 TTA 코어는 mmio.adf에서 로드된 동일한 아키텍처를 사용하며, 이 아키텍처는 여기에 표시되지 않습니다. 이 예제를 작동하도록 하기 위해 TCE 포함 최소_with_io.adf 아키텍처를 대신 사용할 수 있습니다. 하지만 당신이 볼 수 있듯이, 이것은 입력의 많은. 편의를 위해 특수 포트를 만들고 사용할 수도 있습니다. sc_in은 sc_signal 클래스에 대한 특수 포트의 예입니다. 포트는 C++ 또는 SystemC 형식일 수 있습니다 . 최상위 모듈 내에서 하위 수준 모듈을 인스턴스화하는 몇 가지 기본 예제와 sc_main이 사용되는 방법도 보았습니다. 시스템C 는 현재 전자 산업의 필수품으로 인해 탄생 : 전자 가제트는 오늘날 더 크고 더 큰 기능을 통합하지만 가젯을 생산하고 마케팅하는 시간을 타협하지 않습니다.

Posted in Uncategorized