
System-C 基础
通过模块、端口、数据类型、进程、构造函数、时钟线程、模板和文件结构,建立面向硬件与软件设计的 System-C 实用基础。围绕 C++ 逻辑创建可执行封装,并以更清晰的仿真和调试方式建模时钟驱动行为。
通过模块、端口、数据类型、进程、构造函数、时钟线程、模板和文件结构,建立面向硬件与软件设计的 System-C 实用基础。围绕 C++ 逻辑创建可执行封装,并以更清晰的仿真和调试方式建模时钟驱动行为。
This resource includes
Description
System-C 为数字系统建模提供了基于 C++ 的基础,可用于描述硬件行为、软件行为,或两者的组合。它在普通 C++ 之上扩展了面向硬件的概念,例如模块、端口、信号、进程、时钟执行、复位处理和位精确数据表示。这些特性使 C++ 逻辑能够被封装在 System-C 结构中,在仿真环境中执行,并以数字设计所需的时序和并发方式描述行为。 技术基础围绕 System-C 模块和接口展开。模块定义硬件块的边界,输入端口和输出端口定义数据及控制信号如何跨越这个边界。时钟和复位输入端口建立时序和初始化行为。数据端口把具有明确类型的数值传入和传出模块。通过 read() 和 write() 访问端口,可以让数据移动方向保持明确,并把接口行为与内部计算区分开来。 System-C 数据类型对于硬件精确建模非常关键。sc_int 和 sc_uint 等位精确整数类型定义有符号属性和精确位宽。sc_fixed 和 sc_ufixed 等定点类型支持整数部分和小数部分表示,并提供量化和溢出控制。面向硬件的运算符,包括位选择、部分选择、拼接和类型转换,支持在 bit 层面对数字数值进行直接处理。 进程建模定义 System-C 模块在仿真中的实际行为。SC_METHOD 支持高效的事件驱动行为,适合组合逻辑和简单时序逻辑。SC_THREAD 提供灵活的挂起、等待和恢复能力,适合抽象建模和测试平台风格行为。SC_CTHREAD 使用时钟驱动线程结构建模时钟硬件,并支持复位和多周期执行。这些进程类型清楚地区分了普通 C++ 函数调用与由 System-C 内核管理的并发硬件风格执行。 构造函数宏和文件结构完善了实用建模流程。SC_CTOR 注册模块进程并处理标准构造,SC_HAS_PROCESS 在需要进程注册的自定义构造函数中提供支持。模板化的 SC_MODULEs 可以接收数据类型和数组长度等参数,使硬件块更易复用。清晰的头文件和设计文件分离方式把声明与进程定义分开。FIR 滤波器示例把这些概念整合在一起,包括时钟、复位、输入、输出、抽头移位、系数乘法、累加和基于时钟周期的输出生成。 Catalogue: System-C 概述 为什么选择 System-C 定点数据类型 System-C 数据类型 sc_int/sc_uint 运算符 System-C 硬件结构建模 步骤1: 声明模块 步骤2: 声明时钟和复位输入端口 步骤3: 声明数据输入端口 步骤 4: 声明数据输出端口 (一) 步骤 4: 声明数据输出端口 (二) 步骤 4: 声明数据输出端口 (三) 步骤5: 通过I/O端口执行读/写操作 步骤6: 声明System-C构造函数 SC_CTOR 与 SC_HAS_PROCESS System-C 进程 (一) System-C 进程 (二) System-C...
This resource includes
Description
System-C 为数字系统建模提供了基于 C++ 的基础,可用于描述硬件行为、软件行为,或两者的组合。它在普通 C++ 之上扩展了面向硬件的概念,例如模块、端口、信号、进程、时钟执行、复位处理和位精确数据表示。这些特性使 C++ 逻辑能够被封装在 System-C 结构中,在仿真环境中执行,并以数字设计所需的时序和并发方式描述行为。 技术基础围绕 System-C 模块和接口展开。模块定义硬件块的边界,输入端口和输出端口定义数据及控制信号如何跨越这个边界。时钟和复位输入端口建立时序和初始化行为。数据端口把具有明确类型的数值传入和传出模块。通过 read() 和 write() 访问端口,可以让数据移动方向保持明确,并把接口行为与内部计算区分开来。 System-C 数据类型对于硬件精确建模非常关键。sc_int 和 sc_uint 等位精确整数类型定义有符号属性和精确位宽。sc_fixed 和 sc_ufixed 等定点类型支持整数部分和小数部分表示,并提供量化和溢出控制。面向硬件的运算符,包括位选择、部分选择、拼接和类型转换,支持在 bit 层面对数字数值进行直接处理。 进程建模定义 System-C 模块在仿真中的实际行为。SC_METHOD 支持高效的事件驱动行为,适合组合逻辑和简单时序逻辑。SC_THREAD 提供灵活的挂起、等待和恢复能力,适合抽象建模和测试平台风格行为。SC_CTHREAD 使用时钟驱动线程结构建模时钟硬件,并支持复位和多周期执行。这些进程类型清楚地区分了普通 C++ 函数调用与由 System-C 内核管理的并发硬件风格执行。 构造函数宏和文件结构完善了实用建模流程。SC_CTOR 注册模块进程并处理标准构造,SC_HAS_PROCESS 在需要进程注册的自定义构造函数中提供支持。模板化的 SC_MODULEs 可以接收数据类型和数组长度等参数,使硬件块更易复用。清晰的头文件和设计文件分离方式把声明与进程定义分开。FIR 滤波器示例把这些概念整合在一起,包括时钟、复位、输入、输出、抽头移位、系数乘法、累加和基于时钟周期的输出生成。 Catalogue: System-C 概述 为什么选择 System-C 定点数据类型 System-C 数据类型 sc_int/sc_uint 运算符 System-C 硬件结构建模 步骤1: 声明模块 步骤2: 声明时钟和复位输入端口 步骤3: 声明数据输入端口 步骤 4: 声明数据输出端口 (一) 步骤 4: 声明数据输出端口 (二) 步骤 4: 声明数据输出端口 (三) 步骤5: 通过I/O端口执行读/写操作 步骤6: 声明System-C构造函数 SC_CTOR 与 SC_HAS_PROCESS System-C 进程 (一) System-C 进程 (二) System-C...
Recommended

EDA Academy is a practical learning platform for engineers in the VLSI and semiconductor industry. We offer structured courses, technical resources, and career-focused training across all major areas of chip design and verification — from Verilog to Physical Design, from fundamentals to advanced topics. Learn at your own pace, explore member-exclusive content, or join as an instructor to share your expertise. Lear...
