동작 언어 ― 제7부: SystemC® 언어 참조 매뉴얼
行为语言 - 第7部分:SystemC®语言参考手册
发布日期:
2015-12-30
该标准定义了Systemc®1,作为系统和硬件设计的ANSI标准C++类库。1.2目的Systemc的一般目的是为需要处理硬件和软件混合的复杂系统的设计者和体系结构提供基于C++的标准。该标准的具体目标是提供对Systemc类库的准确、完整的定义,以便只参考该标准来实现Systemc。该标准不是Systemc用户指南或Systemc入门。但其中包含对实际用户有用的信息。1.3标准的一些工具供应商可能会生成只支持该标准一部分的实现,或对该标准的使用施加附加限制的实现。即使这些实现不完全符合该标准,也可以主张与该标准的部分适合性,或使用Systemc名称。1.4C++的关系该标准与C++编程语言相关性高,遵循ISO/IEC14882:2003中使用的术语。李标准不限制C++程序语言的使用。Systemc应用可以使用C++提供的所有设备,也可以使用C提供的所有设备。但是,如果使用该标准中提供的设备,则必须根据该标准中规定的规则和约束使用。该标准定义了Systemc类库的公开接口,以及对这些类使用方法的约束。只有在接受了该标准中规定的义务时,Systemc类库才能以任何方式实现。1)Systemc®是Open Systemc Initiative的注册商标。
KS C IEC61691-7:2009 C++类库可以使用C++语言提供的机制进行扩展。在不违反该标准的情况下,实现者和用户可以以这种方式自由扩展Systemc。虽然适合备注C++编程语言标准,但可以生成违反该标准的编写良好的C++程序。实施时不需要检测该标准的所有违规事项。2)对于不熟悉1.5读者指南Systemc的读者,应从提供主题简短摘要的附件A“Systemc概要”开始,以帮助理解规范定义。此类读者应熟悉规范定义中包含的示例,并参阅附录B“术语集”。第3节要注意阅读“该标准使用的术语和规定”。对第3节中定义的术语的理解对于该标准的准确解释是必不可少的。第4节“精巧化和模拟语义系统”是定义Systemc内核动作、理解Systemc的核心部分。详细说明个别类的后续条款将在第4节的基础上定义语义体系。从第5节开始,定义Systemc类库的公开界面。每个类都会给出以下内容:a)类定义的C++源代码列表b)类及其元素使用的约束语句c)类和元素的语义语句d)对于特定类,与类相关联的函数、typedef、宏磁盘脚本e)说明类典型使用和罕见使用的参考示例读者应该记住,工具供应商的基本义务是使用从第5节开始的类定义提供的框架和约束,实现第4节定义的抽象语义体系。
이 표준은 시스템과 하드웨어 설계용 ANSI 표준 C++ 클래스 라이브러리로써 SystemC®1)를 정의한다.1.2 목적SystemC의 일반적인 목적은 하드웨어와 소프트웨어가 혼합된 복잡한 시스템을 다뤄야 하는 설계자와 아키텍트에게 C++ 기반 표준을 제공하는 것이다.이 표준의 구체적 목표는 SystemC 클래스 라이브러리에 대한 정확하고 완전한 정의를 제공하여, 이 표준만을 참조함으로써 SystemC를 구현하도록 하는 것이다. 이 표준은 SystemC 사용자 가이드 또는 SystemC 입문서가 아니다. 다만, 실사용자들에게 유용한 정보가 포함되어 있다.1.3 표준의 일부툴 벤더들은 이 표준의 한 부분만을 지원하는 구현 또는 이 표준의 사용에 추가 제약을 부과하는 구현을 생성할 수도 있다. 이 같은 구현은 이 표준에 완전히 순응하지 않더라도, 이 표준과의 부분적 적합성을 주장하거나 SystemC라는 이름을 사용할 수도 있다.1.4 C++와의 관계이 표준은 C++ 프로그래밍 언어와 관련성이 높고, ISO/IEC 14882:2003에 사용된 용어를 따른다. 이표준은 C++ 프로그램 언어 사용을 제한하지 않는다. SystemC 응용은 C++에서 제공하는 모든 장치를 사용할 수 있고, C에서 제공되는 모든 장치를 사용할 수 있다. 그러나 이 표준에서 제공되는 장치가 사용되는 경우, 이 표준에서 명시된 규칙과 제약에 따라 사용되어야 한다.이 표준은 SystemC 클래스 라이브러리에 대한 공개 인터페이스와, 그러한 클래스들이 사용되는 방법에 대한 제약을 정의한다. 이 표준에서 부과한 의무가 받아들여지는 경우에만, SystemC 클래스 라이브러리는 어떤 방식으로든 구현될 수 있다.1) SystemC®는 Open SystemC Initiative의 등록상표이다.KS C IEC 61691-7:2009C++ 클래스 라이브러리는 C++ 언어에서 제공되는 메커니즘을 사용하여 확장될 수 있다. 구현자와사용자는 이 표준을 위반하지 않는 선에서, 이러한 방식으로 SystemC를 자유롭게 확장할 수 있다.비고 C++ 프로그래밍 언어 표준에는 적합하지만, 이 표준을 위반하는 잘 짜여진 C++ 프로그램을 생성하는 것이 가능하다. 구현 시 이 표준의 모든 위반 사항을 탐지할 필요는 없다.2)1.5 독자를 위한 지침SystemC에 익숙하지 않은 독자는 규범적 정의에 대한 이해에 도움이 되도록 주제에 관한 간단한 요약을 제공하는 부속서 A “SystemC 개요”부터 시작해야 한다. 이 같은 독자는 규범적 정의에 포함된 예시를 숙지하고, 부속서 B “용어집”을 참조해야 한다.3절 “이 표준에 사용되는 용어와 규정”을 주의 깊게 읽어야 한다. 3절에서 정의된 용어에 대한 이해는 이 표준의 정확한 해석에 필수적이다.4절 “정교화와 시뮬레이션 의미 체계”는 SystemC 커널의 동작을 정의하고, SystemC를 이해할 수 있는 핵심적인 부분이다. 개별 클래스를 상세하게 설명하는 후속 조항들은 4절을 토대로 의미 체계를 정의한다.5절부터는 SystemC 클래스 라이브러리에 대한 공개 인터페이스를 정의한다. 각 클래스에 다음과 같은 내용이 제시된다.a) 클래스 정의의 C++ 소스 코드 목록b) 클래스와 이것의 요소의 사용에 대한 제약문c) 클래스와 이것의 요소의 의미문d) 특정 클래스의 경우, 클래스와 연결된 함수, typedef, 매크로 디스크립션e) 클래스의 전형적인 사용과 이례적인 사용을 설명하는 참고용 예시독자는 툴 벤더의 기본 의무는 5절에서 시작하는 클래스 정의에 의해 제공된 프레임워크와 제약을 사용하여, 4절에서 정의된 추상 의미 체계를 구현하는 것임을 명심해야 한다.