自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 问答 (1)
  • 收藏
  • 关注

原创 数据结构与算法学习(二)

【代码】数据结构与算法学习(二)

2025-12-31 15:53:13 291

原创 数据结构与算法学习(一)

快慢指针(数组去重)fast < n;fast++) {if (满足条件) {slow++;// 新长度对撞指针(有序数组)if (条件满足) {// 处理结果left++;right--;} else if (条件1) {left++;滑动窗口(子串问题)// 扩大窗口right++;while (窗口需要收缩) {// 收缩窗口left++;

2025-12-31 15:49:55 1099

原创 使用vscode和Makefie搭建一个代码调试环境

这个简化配置提供了核心的构建和调试功能,足够满足日常开发需求。两个基础插件已经包含了代码高亮、智能感知、调试器等核心功能。这个 Makefile 可以根据项目需求轻松扩展,支持静态库、动态库、单元测试等高级功能。即使只有这两个基础插件,也能配置出很好的调试环境。如果智能感知不工作,可以手动创建。

2025-11-04 20:58:18 998

原创 AXI总线与Burst突发传输简介

摘要: AXI总线是ARM提出的AMBA规范中的高性能片内通信标准,其核心特点包括通道分离、突发传输和乱序事务。通过5个独立通道(写地址、写数据、写响应、读地址、读数据),AXI实现高带宽与低延迟传输。突发传输通过单地址多数据机制提升效率,支持递增、环绕和固定三种类型。AXI协议演进至AXI4版本,并衍生出简化版AXI4-Lite和流式传输AXI4-Stream,适用于不同场景。突发传输通过减少地址开销显著提升总线利用率,是现代SoC设计的核心技术。

2025-10-27 15:15:49 798

原创 桥接模式的聚合关系及用虚析构函数的必要性

在软件设计中,我们经常遇到这样的情况:一个类有两个相互独立的维度(或称为变化维度)需要变化。例如:如果不使用桥接模式,通常会导致:桥接模式通过引入一个抽象层(即“桥”)来连接这两个维度,从而解决了类爆炸和紧密耦合的问题。桥接模式通常由以下四个核心角色组成:假设我们要绘制不同的形状(抽象维度)到不同的图形库(实现维度)。维度二:抽象 (Abstraction) - 形状客户端代码客户端可以在运行时轻松切换形状的实现方式,而无需更改形状的类定义。4. C++ 中桥接模式的关键实现细节在 C++ 中实

2025-10-22 17:19:45 689

原创 复制构造函数移动构造函数的三五法则

摘要: C++ 的复制构造函数用于通过同类型对象初始化新对象,其标准形式为 MyClass(const MyClass& other)。调用场景包括对象初始化、函数传值、返回值处理及容器操作。默认浅拷贝仅复制指针值,导致多个对象共享同一资源,可能引发双重释放或数据污染。需自定义复制构造函数实现深拷贝(独立分配内存),并遵循三/五法则(同时定义析构函数、复制/移动操作符)以确保资源安全管理。

2025-10-22 16:44:41 852

原创 UML类图

UML(统一建模语言)类图是描述系统中类、接口以及它们之间关系的图形化工具。理解类图中的关系是掌握面向对象设计的基础。

2025-10-22 10:24:53 664

原创 002 TrafficGenerator 类详解

继承自Initiator说明它是一个仿真流量发生器,负责产生并发起内存访问请求。

2025-07-29 19:09:03 443

原创 001 Configuration结构体构造

DRAMSys配置系统采用模块化设计,通过主配置文件嵌套引用子配置文件的方式实现灵活配置。核心功能在DRAMSysConfiguration.cpp的from_path函数中实现,利用nlohmann/json库的解析回调机制,在解析JSON文件时动态加载子配置文件。当遇到特定键(如"MemSpec")时,系统会识别配置类型,并将值(子配置文件路径)替换为实际解析后的JSON内容。这种设计支持递归加载,允许子配置文件继续引用其他配置文件,实现了配置的高度可扩展性和可维护性。整个配置加载过

2025-07-29 19:07:50 941

原创 SOC中transaction的延迟和AT model实现方法

我们来详细分解在一个 SoC 中,硬件 Master 通过 NoC (Network-on-Chip) 到达 Target 需要经过的 latency,以及在 TLM-2.0 AT (Approximately Timed) 建模中这些 latency 通常对应哪些阶段的。是 AT 建模的关键特征,它允许在较高的抽象层次上进行精确的时序分析,同时保持了模型的松散耦合。是一个累计的、可修改的参数,在事务的不同阶段和模块间传递时,它会被不断更新和累加。,即从当前时间点算起,事务的下一个阶段预计何时发生。

2025-06-11 10:36:51 448

原创 VDK中接收memcpy传递结构体时,interface被访问多次问题

问题现象:在VDK软件中,SDMA接受从SCP/AP侧发来的命令帧后自动解析命令帧,然后执行相应操作,但是在使用SCP 给 SDMA发送命令帧时,发现SDMA的回调调用了多次,因此查看反汇编出来的代码,是否给SDMA的interface发送了多次的transaction,造成了回调调用多次。猜测:memcpy时,是多次transaction需要调试的sdma代码如下最关键的部分来了。

2025-05-21 17:22:47 865

原创 AI芯片中得训练任务和推理任务在底层得差异

大模型在训练和**推理(推断)**阶段使用 AI 芯片时,虽然整体流程类似,但目标、资源使用、底层算子实现上都有显著差异。下面我给你分点详细讲一下它们的区别

2025-04-23 16:14:41 1697

原创 NPU的编程模型和数据流驱动使用方法

NPU的编程模型从顶层到底层分为Dataflow programming model、High-Level Programming model、Low-level programming model、CT Kernel programming

2025-04-17 15:04:39 1381

原创 c++模板高阶使用技巧

C++模板高级使用技巧

2025-04-16 17:21:16 781

原创 在模板函数中调用模板类中的方法

这样你就可以在模板函数中灵活调用模板类的各种方法了。

2025-04-15 10:32:16 412

原创 vector迭代器的几种用法

在c++中vector迭代器的几种用法

2025-04-14 20:59:17 476

原创 tlm_quantumkeeper如何理解

用时间轴来分析一下这个时间,(两个init都只发了5次transaction)

2025-04-11 17:29:39 498 3

原创 C++面向对象编程,组合优于继承

面向对象编程中,组合优于继承的理解

2025-04-08 19:48:01 1029

原创 芯片算力的计算方式

算力=操作数×主频×并行单元=1×109×16,384=16.384 TOPS算力 = 操作数 \times 主频 \times 并行单元 = 1 \times 10^9 \times 16,384 = 16.384 \, \text{TOPS}算力的计算与芯片的硬件架构、数据类型支持、以及工作频率密切相关。算力=2×1.41 GHz×6912=19.5 TFLOPS算力 = 2 \times 1.41 \, \text{GHz} \times 6912 = 19.5 \, \text{TFLOPS}

2025-01-21 20:28:40 2603

原创 SystemC使用使用sc_spawn创建同一函数的不同名THREAD

在SPE的设计中,需要在一个SC_MODULE中有同一逻辑的多个不同SC_THREAD,直接使用for循环+SC_THREAD()去创建,在运行时会报警告,有同名函数,为此使用sc_spawn创建同一函数的不同名THREAD。

2025-01-12 14:28:59 336

原创 TLM2.0基础

TLM(Transaction-Level Modeling) 是 SystemC 的高级建模方法,用于描述系统的通信行为,特别是在硬件设计和验证中。TLM 是 SystemC 的一部分,用于提高仿真的效率和抽象性。以下是 TLM 的核心知识以及关键概念。通过学习以上内容,你可以掌握 TLM 的基本用法并应用于模块间的高级通信。若需更深入了解,可以逐步研究 TLM-2.0 的非阻塞传输和时序建模。TLM 定义了一种通过事务(Transaction)交换信息的通信方式,事务通常是对数据块的抽象。

2024-12-27 21:00:26 2731

原创 SystemC-Event

2. event可以在elaboration或者simulation期间通知,但在elaboration期间或从以下回调之一创建即时通知将导致错误。3. 即时通知(immeiate)被认为早于增量通知(delta)发生,增量通知早于定时(timed)通知。b).non zero time: 在给定时间创建定时通知,相对于调用函数通知时的模拟时间表示。1. 如果为已有待处理通知的事件调用函数通知,则只有计划在最早时间发生的通知才会保留。流程实例可以在事件发生时(即,当通知事件时)触发或恢复。

2024-12-27 20:59:01 582

原创 Visual Studio中SystemC/TLM开发环境配置

Visual Studio中解决systemc/tlm的配置运行问题

2024-10-17 17:36:26 1184

原创 cmake

99%的cmake错误可以用删build解决

2024-09-26 11:12:23 1883

原创 优化Swtich case结构为双层表查询+Lamda表达式

最近在工作中遇到了这样一段代码,是三层switch嵌套的结构,第一次swtich有4个case,第二层switch有上百个case,第二层switch下有的case下会有第三层swtich结构。多次调用这段代码时,如果第二个switch结构中多次访问的是靠后的几个case,由于处理器设计的原因,会逐case去刷新缓存,这会让代码执行效率变得很差。那有什么办法可以去优化这个结构呢?

2024-09-21 23:45:17 1717 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除