littlebot
Published on 2025-04-15 / 0 Visits
0

【源码】基于SystemC的硬件在环仿真平台

项目简介

本项目是用于在SystemC环境开展硬件在环(Hardware-in-the-Loop, HIL)仿真的平台。它达成了SystemC模型和实时硬件系统间的双向异步通信,为硬件验证与设计提供高效、灵活的工具。该平台在David C. Black的技术演示器工作基础上进行扩展,基于SystemC v 2.3,支持TCP、共享内存和POSIX共享内存等通信方式,还有实时同步功能,保障模拟环境的实时性。

项目的主要特性和功能

  1. 实现SystemC模型和实时硬件系统的双向异步通信,支持TCP、共享内存和POSIX共享内存等通信方式。
  2. 借助Realtimify模块同步SystemC模拟时间和真实时间,确保模拟环境实时性。
  3. 采用模块化设计,便于扩展和定制,支持多种硬件和软件系统。
  4. 提供完整测试框架,涵盖回归测试、测试基准和测试工具,用于验证平台的正确性和性能。

安装使用步骤

环境准备

确保已安装SystemC库,并配置好环境变量。若要在Zedboard或其他ARMv7架构板上运行SystemC,需在SystemC的配置中启用pthreads支持(--enable-pthreads)。

代码获取

从项目仓库下载平台的源代码。

修改配置文件

依据自身安装情况修改config.mk文件,设置相关变量,如编译信息显示、库路径、系统架构、实时仿真支持等。

安装库和示例

  1. 定义好config.mk中的配置后,在同一目录下运行make && make install安装库。
  2. 库安装完成后,运行make all构建示例和回归测试。

运行测试

仅测试SystemC模拟器

  1. 打开一个终端,进入源码目录下的example/Demo_SC_firewall,运行./demo_sc_firewall.exe启动模拟器。
  2. 打开另一个终端,进入example/Demo_SC_firewall,可选择运行以下命令测试:
    • ./test_read.exe:测试防火墙DUT模型的读取功能。
    • ./test_write.exe:测试防火墙DUT模型的写入功能。
    • ./test_app.exe:运行使用DUT模型的真实应用程序。

在真实硬件上运行测试

  1. config.mk中启用ARM构建选项。
  2. 进入源码目录下的example/Demo_HARDWARE_firewall_ARM,可选择运行以下命令测试:
    • ./test_read.exe:测试硬件防火墙DUT的读取功能。
    • ./test_write.exe:测试硬件防火墙DUT的写入功能。
    • ./test_app.exe:运行使用硬件防火墙DUT的真实应用程序。

若要使用其他通信接口类型进行测试,需在config.mk文件中设置相应选项,重新构建库和测试平台,且在重新构建前先执行make clean。有时每次测试后重启模拟器效果更佳。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】