当前位置: 首页 > article >正文

[SC]SystemC dont_initialize的应用场景详解(二)

SystemC dont_initialize的应用场景详解(二)

       摘要:下面给出一个稍复杂一点的 SystemC 示例,包含三个模块(Producer/Filter/Consumer)和一个 Testbench(Top)模块,演示了在不同的进程类型中如何使用 dont_initialize() 来抑制 time 0 的自动调用。

一、源代码

#include <systemc.h>
#include <iostream>//------------------------------------------------------------------------------
// DataProducer:等待 start_event,再在时钟上升沿产生一组数据
//------------------------------------------------------------------------------
struct DataProducer : sc_module {sc_in<bool>    clk;sc_out<int>    data_out;sc_out<bool>   valid_out;sc_event&      start_evt;SC_HAS_PROCESS(DataProducer);DataProducer(sc_module_name name, sc_event& ev): sc_module(name), clk("clk"), data_out("data_out"), valid_out("valid_out"), start_evt(ev){// 用 SC_THREAD 且对 start_evt 静态敏感,抑制 time 0 调用SC_THREAD(producer);sensitive << start_evt;dont_initialize();}void producer() {while (true) {wait();  // 等待 start_evt.notify()std::cout << sc_time_stamp() << " [Producer] started\n";for (int i = 0; i < 5; ++i) {data_out.write(i);valid_out.write(true);wait(clk.posedge_event());std::cout << sc_time_stamp()<< " [Producer] wrote data = " << i << "\n";}valid_out.write(false);std::cout << sc_time_stamp() << " [Producer] done\n";}}
};//------------------------------------------------------------------------------
// DataFilter:组合逻辑,将有效数据乘 2
//-----------
http://www.lryc.cn/news/2397584.html

相关文章:

  • 【Linux】权限chmod命令+Linux终端常用快捷键
  • Java八股文智能体——Agent提示词(Prompt)
  • Go语言的context
  • 快速掌握 GO 之 RabbitMQ 结合 gin+gorm 案例
  • JVM——SubstrateVM:AOT编译框架
  • 【HarmonyOS 5】鸿蒙Taro跨端框架
  • 数据库原理 试卷
  • 【Qt开发】对话框
  • Ubuntu上进行VS Code的配置
  • 阴盘奇门 api数据接口
  • 2025年渗透测试面试题总结-匿名[校招]攻防研究员(应用安全)(题目+回答)
  • 碰一碰发视频系统--基于H5场景开发
  • MagicAnimate 论文解读:引入时间一致性的视频人物动画生成方法
  • QT使用说明
  • 数据结构:递归(Recursion)
  • Cesium快速入门到精通系列教程一:打造第一个Cesium应用
  • 力扣题解106:从中序与后序遍历序列构造二叉树
  • Vue传参Props还是Pinia
  • 学习STC51单片机25(芯片为STC89C52RCRC)
  • 宁夏农业科技:创新引领,赋能现代农业新篇章
  • Accelerate 2025北亚巡展正式启航!AI智御全球·引领安全新时代
  • 005学生心理咨询评估系统技术解析:搭建科学心理评估平台
  • azure devops 系列 - 常用的task
  • 贪心算法应用:多重背包启发式问题详解
  • 【保姆级教程】PDF批量转图文笔记
  • Pytest Fixture 是什么?
  • Spring Boot 基础知识全面解析:快速构建企业级应用的核心指南
  • 数据库系统概论(十一)SQL 集合查询 超详细讲解(附带例题表格对比带你一步步掌握)
  • [mcu]系统频率
  • clickhouse如何查看操作记录,从日志来查看写入是否成功