元直数字电路验证
天地本無心,生民自有命,往聖無絕學,萬世不太平。硅農,因bug而生,與bug為伴,以debug為生。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[SC]SystemC在CPU/GPU验证中的应用(五)
本文介绍了SystemC在CPU/GPU验证中的应用,提供50个逐步提升SystemC编程能力的示例。重点展示了31-40号示例代码,包括4阶段CPU流水线模型、直接相联缓存模型、DMA引擎、GPU核心调度器、矢量加法计算单元等硬件模块的实现。这些示例涵盖模块设计、进程控制、FIFO通信、TLM接口、同步机制等关键技术,并采用SystemC标准库和AMS扩展实现硬件建模。每个示例提供完整代码和详细注释,构成SystemC验证方法学的实用学习路线图。原创 2025-05-31 19:43:10 · 1391 阅读 · 0 评论
-
[SC]SystemC在CPU/GPU验证中的应用(四)
本文介绍了SystemC在CPU/GPU验证中的50个渐进式学习示例,涵盖从基础模块到高级建模内容。重点展示了第21-30个示例,包括TLM2.0目标套接字实现、层次化模块实例化、动态进程管理、事件通知、异步复位同步电路、跨时钟域FIFO、总线监视器、寄存器文件、中断控制器以及三阶段流水线等典型应用场景。每个示例提供完整代码和详细注释,演示了SystemC在数字系统建模中的关键技术与方法,如TLM事务级建模、时钟域处理、进程控制等,为SystemC学习者提供了循序渐进的学习路径和实践参考。原创 2025-05-31 19:37:14 · 1040 阅读 · 0 评论
-
[SC]SystemC在CPU/GPU验证中的应用(三)
本文介绍了SystemC在CPU/GPU验证中的应用,提供了50个逐步提升SystemC编程能力的示例代码及学习路线。从基础模块(时钟生成器、计数器)到高级功能(TLM传输、AXI总线模型、DMI接口),涵盖阻塞/非阻塞通信、分析端口、量子时间管理等功能。重点展示了双端口RAM、总线仲裁器、TLM2.0事务处理等典型验证场景的实现方法,包括详细注释的完整代码示例。这些案例由浅入深,为系统级芯片验证提供了实用的参考实现。原创 2025-05-31 19:29:42 · 707 阅读 · 0 评论
-
[SC]SystemC在CPU/GPU验证中的应用(二)
SystemC在CPU/GPU验证中的应用(二)摘要:本文提供了50个由浅入深的SystemC编程示例及学习路线图,涵盖基础模块、通道、TLM、总线模型和CPU/GPU内核等内容。前10个示例包括:基本模块构建、组合逻辑AND/OR门、带异步复位的D触发器、8选1多路选择器、阻塞式RAM/ROM模型等。每个示例提供完整代码和详细注释,建议按阶段批量化学习,从基础到高级逐步掌握。编译方法为使用SystemC库路径执行g++命令,运行后可观察控制台输出。后续将继续提供更复杂的11-15号示例。原创 2025-05-31 17:56:15 · 288 阅读 · 0 评论
-
[SC]SystemC在CPU/GPU验证中的应用(一)
SystemC在CPU/GPU验证中的应用:摘要 本文通过50个逐步升级的SystemC示例,构建从基础到高级的硬件建模学习路径。前5个基础示例包括:SystemC入门模块、时钟生成器、4位计数器、阻塞FIFO通道和非阻塞握手协议实现。每个示例附带完整代码和注释,建议分阶段掌握:先完成基础模块(1-5),再进阶学习通道、TLM协议、总线模型(AXI-Lite)、CPU/GPU内核等。后续示例涵盖存储器模型、中断控制器、流水线CPU、缓存、DMA引擎等复杂组件,最终实现完整的SoC系统建模。学习路线强调实践驱原创 2025-05-31 17:40:25 · 791 阅读 · 0 评论
-
[SC]一个使用前向声明的SystemC项目例子
本文探讨了SystemC中前向声明的使用要点:1. 前向声明可避免头文件循环依赖,但仅支持指针/引用操作,需确保后续提供完整定义;2. 在SystemC模块中需特别注意端口绑定、敏感列表和模板实例化等限制;3. 通过生产者-消费者模型示例,展示了头文件前向声明与源文件完整定义配合的方法;4. 编译阶段可减少依赖提升速度,但链接阶段仍需完整实现,错误使用可能导致运行时问题。建议在大型项目中合理使用前向声明,小型项目直接包含头文件更安全。原创 2025-09-15 23:26:04 · 79 阅读 · 0 评论 -
[SC]在SystemC中,如果我使用了前向声明,还需要include头文件吗?
在C++中调用命名空间中的函数时,必须使用作用域运算符(::)或通过using声明导入命名空间。SystemC项目示例展示了多文件结构如何管理命名空间和头文件包含,其中硬件处理模块和模拟逻辑分别定义在不同命名空间中。前向声明可以避免立即包含头文件,但仅提供函数签名,仍需确保链接时实现可用。建议优先使用完整头文件包含,除非有特定优化需求。项目结构示例包括CPU和加速器模块,演示了如何通过限定名称调用跨命名空间函数。原创 2025-09-15 23:20:45 · 77 阅读 · 0 评论 -
[SC]SystemC中,一个namespace中调用了其他namespace中的函数,需要显示include那个函数所在的.h文件吗?
摘要: 在SystemC(基于C++的系统级建模库)中,调用其他命名空间(namespace)中的函数时,必须显式#include该函数所在的头文件(.h),以确保编译器能识别函数声明。命名空间仅用于名称限定,不替代头文件包含。例外情况包括:函数已在前向声明或同一文件中定义,但推荐通过头文件管理声明。示例中,若Hardware::process_data()定义于hardware.h,则调用方需#include "hardware.h",否则会报“未声明”错误。原创 2025-09-15 23:11:03 · 139 阅读 · 0 评论 -
[SC]SystemC Namespace 的详细介绍
摘要:SystemC是一个基于C++的系统级硬件建模库,使用命名空间机制组织核心组件。主要命名空间包括sc_core(核心功能)、sc_dt(数据类型)和sc_tlm(事务级建模)。命名空间通过语法namespace name{...}定义,支持嵌套和扩展,可使用全限定名、using声明或别名访问元素。在SystemC中,命名空间用于分组代码、避免冲突、模块化开发和IP复用,典型应用包括SoC模拟和测试环境隔离。示例展示了如何在自定义命名空间(如cpu_ns和mem_ns)中定义模块,并通过using声明跨原创 2025-09-03 07:51:26 · 92 阅读 · 0 评论 -
[SC]SystemC动态进程概述及案例
SystemC动态进程概述及案例摘要:本文基于SystemC标准(IEEE1666)介绍动态进程的概念与应用。动态进程从SystemC2.1开始引入,允许在运行时动态创建进程(SC_METHOD/SC_THREAD),相比静态注册更具灵活性。核心语法包括sc_spawn创建进程、sc_spawn_options配置参数、SC_FORK/SC_JOIN实现并行控制,以及进程句柄管理。典型应用场景包括临时断言检查、事件驱动建模和并行测试。文中通过完整代码示例展示了动态进程的创建、同步和共享变量访问,并指出需注意原创 2025-08-25 23:37:22 · 190 阅读 · 0 评论 -
[SC]如何使用sc_semaphore实现对共享资源的访问控制
本文介绍了SystemC中sc_semaphore的使用方法,通过信号量实现对共享资源的并发访问控制。sc_semaphore初始化时指定计数,wait()获取信号量,post()释放。文章提供了一个示例,展示两个子进程通过信号量安全访问共享缓冲区。此外还介绍了SC_FORK/SC_JOIN的执行流程时序图,以及TLM接口共享变量的实现方式。最后说明了子进程异常时SC_JOIN的处理机制,会捕获并重新抛出异常到父进程。原创 2025-08-12 22:28:11 · 114 阅读 · 0 评论 -
[SC]SystemC中的SC_FORK和SC_JOIN用法详细介绍
摘要:SystemC中的SC_FORK和SC_JOIN用于在SC_THREAD中创建并行子进程。SC_FORK通过sc_spawn启动多个子进程,SC_JOIN等待所有子进程完成。由于SystemC采用确定性单线程模拟,需注意共享变量访问安全,可使用sc_mutex、sc_event等同步机制。示例展示了两个子进程安全递增共享计数器的实现,强调了互斥锁的必要性。这些特性适用于硬件建模中的并发行为仿真,但需遵循SystemC的模拟语义和同步规范。原创 2025-08-12 22:14:21 · 391 阅读 · 0 评论 -
[SC]SystemC 常见的编译/语法错误与解法(三)
SystemC建模在SoC验证中常见的编译/语法错误可分为三类:1.基础语法错误,如未包含头文件、命名空间缺失、SC_MODULE缺少分号等;2.进程注册错误,包括构造函数外使用SC_CTOR、进程回调签名不匹配、SC_METHOD误用wait()等;3.端口与信号错误,如类型不匹配、位宽不一致、sc_vector初始化不当等。解决方法包括:规范代码结构、统一类型策略、使用sc_vector管理端口数组、严格进程注册规范等。建议采用模块样板、静态分析工具和编译探针来预防问题,并遵循"从第一个错误开原创 2025-08-09 20:47:09 · 319 阅读 · 0 评论 -
[SC]高效地调试SystemC模型中的语法错误
本文介绍了高效调试SystemC模型的方法论,分为预防策略、调试工具和系统性方法三个层面。预防措施包括启用编译器警告、规范命名、模块化设计和使用断言。核心调试工具推荐波形图调试(GTKWave)、日志打印和GDB调试器,分别适用于时序问题、控制流跟踪和算法调试。系统性方法强调错误分类和"分而治之"的定位策略,针对不同类型错误提供对应的调试工具组合。通过这套方法,开发者可以建立完整的调试工作流,有效解决SystemC模型中的各类问题。原创 2025-08-09 20:00:26 · 169 阅读 · 0 评论 -
[SC]SystemC开发中常见的语法错误及解决方法(二)
《SystemC开发常见语法错误及解决方法(二)》摘要 本文总结了SoC验证中SystemC建模常见的50个语法和逻辑错误,分为七大类并提供解决方案。主要错误类型包括:基础语法与宏错误(如忘记包含头文件、命名空间问题);模块端口连接错误(端口未绑定、信号多驱动、数据类型不匹配);进程敏感列表错误(SC_METHOD中使用wait()、敏感列表语法错误);构造实例化错误(忘记SC_CTOR、子模块管理不当);仿真控制错误(未调用sc_start()、时间单位不一致);数据类型错误(sc_bv/sc_lv混淆、原创 2025-08-09 07:28:21 · 273 阅读 · 0 评论 -
[SC]SystemC开发中常见的语法错误及解决方法(一)
SystemC开发中常见的语法错误及解决方法 摘要:本文总结了SystemC硬件建模语言开发中常见的50种语法错误,主要涉及五大类问题:模块定义、信号与端口、时钟与进程、数据类型和仿真控制。文章详细列举了每类错误的典型表现、错误示例及解决方案,包括SC_MODULE定义不当、信号未初始化、端口绑定错误、进程注册不规范、数据类型不匹配等问题。针对每个错误都提供了修正后的正确代码示例。文章还给出了调试建议(如使用sc_report_handler)和预防措施(遵循编码规范、使用静态分析工具),帮助开发者快速定位原创 2025-08-09 07:02:27 · 433 阅读 · 0 评论 -
[SC]SystemC中常用的宏和小工具
SystemC提供了一系列实用宏和工具来简化硬件建模。主要包括:SC_MODULE/SC_CTOR用于模块定义,SC_METHOD/SC_THREAD/SC_CTHREAD注册不同进程类型;sc_assert和SC_REPORT_*实现调试断言和结构化报告;SC_NS/SC_US等时间单位宏;sc_trace_file实现波形捕捉;SC_MODULE_EXPORT支持动态加载。这些工具能有效减少样板代码,提高建模效率,如SC_HAS_PROCESS替代手动构造函数,dont_initialize()控制进程原创 2025-06-02 13:01:50 · 948 阅读 · 0 评论 -
[SC]C++ 中 struct vs. class 的唯一区别
SystemC使用struct而非class定义模块主要是出于简洁性和便利性考虑。在C++中,struct和class功能相同,唯一区别是struct默认成员和继承为public,而class默认为private。SystemC的SC_MODULE宏展开为struct继承sc_module,自动将所有端口、信号和进程设为public,省去手动声明。这种设计符合硬件建模需求,因为模块成员通常需要公开访问。若使用class则需手动添加public修饰,写法更繁琐。本质上这是风格选择,功能上二者等价。原创 2025-06-02 12:57:01 · 462 阅读 · 0 评论 -
[SC]sc_signal_rv的用法和sc_signal相比有什么优势?
SystemC中sc_signal_rv相比sc_signal的主要优势在于支持多驱动和总线分辨功能。sc_signal只能单驱动,多写会报错;而sc_signal_rv允许多个模块同时驱动总线,通过内建分辨函数自动处理冲突(产生'X'标记)和三态('Z')情况。它采用sc_lv类型进行逐位分辨,特别适合建模三态总线和多驱动场景,无需手动编写仲裁逻辑。对于单驱动场景仍推荐使用sc_signal,但涉及总线仲裁、三态驱动等复杂情形时,sc_signal_rv能提供更自然的建模方式并自动检测总线争用。原创 2025-06-02 12:50:47 · 1018 阅读 · 0 评论 -
[SC]SystemC dont_initialize的应用场景详解(二)
本文通过一个SystemC示例详细讲解了dont_initialize()的典型应用场景。该示例包含Producer、Filter和Consumer三个模块,以及一个Top测试平台。关键点:1) 在Producer和Filter模块中使用dont_initialize()抑制time0的自动调用,确保仅在预定事件触发后才执行;2) 通过sc_signal的更新语义、单一写者模式、时序与组合逻辑分离等方法,有效避免了常见的竞争条件;3) 展示了如何通过SystemC的分相机制和dont_initialize原创 2025-06-02 12:41:19 · 1038 阅读 · 0 评论 -
[SC]SystemC dont_initialize的应用场景详解(一)
本文详解了SystemC中dont_initialize的应用场景。首先介绍了C++构造函数初始化列表的语法和作用,强调其与作用域解析符"::"的区别。然后重点说明dont_initialize的功能:阻止进程在仿真time0自动执行,仅在实际事件触发时运行。典型应用包括测试激励初始化控制、纯事件驱动函数和避免组合逻辑冲突。通过代码示例展示了在SC_THREAD和SC_METHOD中的使用方法,并与构造函数传参初始化进行了对比区分。最后总结指出:dont_initialize仅控制进程调原创 2025-06-02 12:34:40 · 1423 阅读 · 0 评论 -
[SC]SystemC 中,SC_THREAD 和 SC_CTHREAD 的区别
SystemC中SC_THREAD和SC_CTHREAD的主要区别:SC_THREAD是通用线程,支持手动敏感列表和多种事件触发,适用于测试平台等非时序严格要求场景;SC_CTHREAD是时钟线程,仅对单时钟敏感,自动支持复位,每个wait()对应一个时钟周期,专为可综合的同步时序电路设计。关键差异体现在注册方式、复位支持、wait语法和可综合性等方面:SC_CTHREAD具有隐式时钟敏感、自动复位和确定性同步特性,而SC_THREAD提供更灵活的事件/时延响应能力。原创 2025-06-02 12:29:41 · 799 阅读 · 0 评论 -
[SC]SystemC语法小结(三)
SystemC中的SC_THREAD和SC_CTHREAD区别显著:SC_CTHREAD专为同步时序电路设计,隐式单时钟敏感、支持自动复位,仅允许wait()等待时钟边沿,更贴近RTL且易于综合;而SC_THREAD则更灵活,支持手动敏感列表和多种wait()形式(事件/时间延迟),适合测试平台和复杂行为建模但需自行处理复位逻辑。SC_CTHREAD默认不从time0执行,而SC_THREAD默认time0启动。选择依据:时序电路用SC_CTHREAD,非时序场景用SC_THREAD。原创 2025-06-02 12:10:58 · 1200 阅读 · 0 评论 -
[SC]SystemC语法小结(二)
本文总结了SystemC中进程和模块构造的关键语法:SC_METHOD适用于组合逻辑,不支持wait(),执行过程在单个delta周期完成;SC_THREAD支持wait(),适合时序控制和测试激励生成。介绍了两种模块构造方式:SC_CTOR宏自动生成构造函数并注册进程,而SC_HAS_PROCESS需配合自定义构造函数使用。同时列举了常用SystemC宏和语法,包括进程注册、敏感列表设置等。正确理解这些语法差异是编写高效SystemC模块的基础。原创 2025-06-02 12:04:05 · 933 阅读 · 0 评论 -
[SC]SystemC在CPU/GPU验证中的应用(六)
本文提供了一个SystemC学习路线图,包含50个由浅入深的编程实例,涵盖从基础模块到复杂SoC建模的全过程。示例包括:基础模块(时钟、计数器)、通道(FIFO、握手)、TLM2.0接口、总线模型(AXI-Lite)、CPU/GPU内核实现、功耗分析、断言验证等。重点展示了SystemC在硬件验证中的关键应用:VCD波形生成、UVM-SystemC框架、Verilog DPI协同仿真、Python集成、NoC路由器和完整SoC建模(CPU+Cache+DRAM+互连)。每个示例提供完整代码和详细注释,建议分原创 2025-05-31 19:48:20 · 1243 阅读 · 0 评论 -
[SC]SystemC在CPU和GPU等复杂SoC验证中的应用
SystemC是一种基于C++的硬件描述和仿真语言,广泛应用于CPU、GPU等复杂SoC的系统级验证。本文通过50个典型示例(部分展示)系统讲解SystemC的核心语法和功能:1)基础语法(模块定义、端口信号、时钟控制);2)模块设计(FIFO通信、TLM事务级建模、总线架构);3)时序与通信(触发器、寄存器堆等)。每个示例包含核心代码和Testbench,涵盖从组合逻辑到时序控制的关键技术,为SoC验证提供实践基础。开发环境需配置SystemC库和C++编译器。原创 2025-05-31 17:42:57 · 1446 阅读 · 0 评论 -
[SC]SystemC语法小结(一)
通过这种方式,你可以在保持类定义简洁的同时,将函数实现与类分离,便于代码的可读性和维护性。中,可以在类的内部声明函数,然后在类的外部实现这些函数。原创 2025-05-29 23:21:50 · 1003 阅读 · 0 评论 -
[SC]深入理解SystemC必备的50个经典程序
本文提供了50个SystemC编程示例,涵盖从基础语法到高级应用的完整学习路径。内容分为五大板块:1)基础结构与组合逻辑,包括基本模块、信号端口和逻辑门实现;2)时序逻辑,展示时钟生成、触发器和状态机;3)层次化设计与测试平台,讲解模块实例化和完整验证环境搭建;4)数据类型与运算,深入sc_lv、sc_uint等SystemC特有类型;5)高级概念与CPU/GPU应用,包含总线接口、DMA控制器等复杂系统建模。每个示例均包含Verilog等效代码说明和CPU/GPU应用场景分析,特别适合硬件设计验证人员从零原创 2025-05-03 10:34:52 · 1346 阅读 · 0 评论 -
[CPP]深入理解C++必备的50个经典程序
本文精选50个C++经典程序示例,系统展示从基础语法到高级特性的核心知识。内容涵盖:1)基础语法与函数(I/O、引用、重载等);2)面向对象(类、继承、多态);3)指针与内存管理;4)运算符重载;5)模板编程;6)STL容器与算法;7)异常处理;8)现代C++特性(auto、lambda、智能指针等)。每个示例都包含关键特性说明和实践建议,通过代码注释详解核心概念,适合不同阶段的C++学习者循序渐进地掌握这门语言。特别强调面向对象设计、资源管理和现代C++最佳实践,帮助读者构建扎实的编程基础。原创 2025-05-03 10:07:51 · 1137 阅读 · 0 评论 -
[SC]SystemC在GPU/CPU SoC验证中的应用案例
摘要:本文探讨了SystemC在GPU/CPU SoC验证中的系统级建模应用,重点介绍了20个关键用例。这些用例涵盖存储系统建模(DDR控制器、L1/L2缓存)、处理器建模(RISC-V核心、多核架构)、互连通信(AXI总线、NoC)以及图形处理单元建模等方面。文章详细展示了SystemC在SoC验证中的核心代码实现,包括内存访问、指令执行等关键功能。此外,还提供了将SystemC模型集成到UVM验证环境的方法,通过DPI接口实现协同仿真。这些案例充分展示了SystemC在SoC系统级验证中的优势,包括抽象原创 2025-05-03 09:45:27 · 1157 阅读 · 0 评论 -
[UVM]在UVM环境中加入C++内存模块
这个例子展示了如何将C++和SystemVerilog结合使用,建立一个内存模型并在UVM环境中操作它。您可能需要根据具体设计需求调整内存大小和接口细节。确保编译和链接时配置正确,以便SV DPI和C++之间的互操作正常工作。原创 2024-12-05 14:54:50 · 844 阅读 · 0 评论 -
[SV]如何在UVM环境中使用C Model
使用支持 DPI-C 的仿真器(如 VCS、QuestaSim 或 XSIM)进行仿真。在 SystemVerilog 文件中,声明与 C 函数对应的 DPI 导入函数。为了与 SystemVerilog 交互,需要对先前的。创建一个 Memory 驱动类,封装对 C Memory 的读写操作。函数进行修改,添加 DPI-C 兼容的。在 AXI VIP 环境中,可以使用。使用 GCC 编译 C 代码为共享库(文件,用于声明 DPI 函数。原创 2024-12-14 19:29:59 · 1420 阅读 · 0 评论 -
[SC]第一个systemc验证环境
摘要:本文通过一个全加器的验证案例,来讲述在VS2022中用SystemC描述RTL和TB的流程。原创 2024-09-11 08:53:29 · 512 阅读 · 0 评论 -
[SC]Windows VS2022下配置SystemC环境
VS中打开下载的systemc文件夹中的解决方案,目录是systemc-2.3.3\msvc10\SystemC\SystemC.sln,然后右键SystemC栏目,点击“属性”,设置SDK版本和平台工具集,完成后退出,再次右键SystemC栏目,点击“生成”。配置属性->链接器->常规>>附加库目录->添加编译生成的x64\Debug 目录。配置属性->C/C++->语言->启用运行时类型信息:选择“是”。配置属性->C/C++->常规->附加包含目录:添加src 项。配置属性->C/C++->原创 2024-09-10 19:01:03 · 2318 阅读 · 3 评论 -
[UVMC]UVM Connect基础教程
尽管 UVM 为构建参考模型提供了高级抽象,但 SystemC 在用于设计和验证的高级模型方面具有传统。 为了允许在 UVM 测试平台中重用使用 SystemC 编写的参考模型,UVMC 在 SystemC 和 SystemVerilog UVM 模型和组件之间提供 TLM1 和 TLM2 连接。原创 2022-09-15 18:53:56 · 3364 阅读 · 1 评论 -
[SystemC]SystemC中的模块和程序
SystemC 中的层次结构是使用类 sc_module 创建的。sc_module 可以直接使用,也可以使用宏 SC_MODULE “隐藏”。上面的示例 SC_MODULE 创建了一个名为 nand2 的 sc_module 类对象。它的输出纯粹是输入值的函数。因此,模型可以使用最简单的 SystemC 进程,即 SC_METHOD。摘要:本节包含一个完整的简单设计,用于演示 SystemC 中模块和流程的使用。同样,重要的是要注意这不是典型的设计风格 - 但它很好而且易于理解。为什么要看模块和流程?原创 2022-09-03 20:38:08 · 1661 阅读 · 1 评论 -
[SystemC]SystemC Hierarchical Channels
摘要:分层通道构成了 SystemC 系统级建模能力的基础。它们基于通道可能包含相当复杂的行为的想法——例如,它可能是一个完整的片上总线。 另一方面,原始通道不能包含内部结构,因此通常更简单(例如,您可以认为 sc_signal 的行为有点像一根电线)。 为了构建复杂的系统级模型,SystemC 使用将通道定义为实现接口的事物的想法。接口是访问给定通道的可用方法的声明。原创 2022-09-03 21:31:44 · 843 阅读 · 0 评论 -
[SystemC]Primitive Channels and the Kernel
摘要:本节介绍了 SystemC 仿真内核的一些操作,然后将其与原始通道的行为联系起来。原创 2022-09-03 22:00:55 · 948 阅读 · 0 评论 -
SystemC简介 --- SystemC是什么?SystemC能干什么?
SystemC是一种基于C++的开源库,主要用于系统级建模,特别适用于复杂芯片的软硬件协同设计与验证。它通过提供并行处理、事件驱动等机制,支持从架构探索到RTL设计的全流程。相比传统硬件描述语言,SystemC建模效率更高,仿真速度更快,并能实现软硬件并行开发,显著缩短芯片开发周期。其核心功能包括系统内核调度、进程管理、模块化设计和通信机制,兼容标准C++环境,无需昂贵EDA工具。作为Accellera组织维护的开源项目,SystemC采用商业友好的Apache 2.0协议,在芯片前端流程中可作为跨部门协作原创 2022-08-01 13:31:38 · 14363 阅读 · 0 评论 -
[SystemC]SystemC应用实例 --- 乘法器的设计及验证
在SystemC中子模块使用一个类描述,这个类使用宏声明,这里的子模块是向量-向量乘法器,这一部分代码如下所示。 一个子模块包括三个部分:端口定义、功能描述与构造函数。该乘法器定义了两个类型为的控制端口:和。分别是时钟和复位端口;还定义了两个输入端口数组,分别是和,数组宽度为(宏定义),类型为有符号整数类型;此外还定义了一个输出端口,类型为指定位宽的整数类型。 功能描述使用一个无输入参数无输出参数的方法描述,建议使用读取输入端口的数据并使用向输出端口写入数据。一个模块可以原创 2022-08-01 11:55:08 · 1560 阅读 · 0 评论
分享