预备打工人之SystemC学习 (五) 事务级建模库

2023-11-17

TLM2.0基本概念

在前面说了很多特有的行为建模语法。在十几种,这些语法能够帮助你高效地建模实际系统,但不要受限于新语法。

片上系统建模时SystemC的核心功能之一。TLM2.0库的设计目标是使得不同提供商的模型相互兼容。在基于总线的片上系统中,最近的通信模式由以一个主设备发起一次总线访问,被访问者做出相应的相应。

发起事务的模块被称为发起者,而接受 钙食物并做出相应的木块被称为目标。发起者和目标之间通过套签字连接。发起者和目标木块必须遵守一定的接口标准才能互联互通,这个接口在TLM2.0预定义了恶一个通过净核类和相应的基础协议,以进一步保障不同提供商提供的模型互联互通。TLM2.0还定义了实用工具、分析接口和端口。

核心接口包括阻塞和非阻塞传送接口、直接存储器接口和调试传送接口。

如图所示,构建SystemC核心库的基础上。为了最大化可互操作性,特别是建模存储器映射类型的互联模型,TLM2.0核心接口、发起者和目标套字、通用金河和基础协议通常一起使用。当然,TLM2.0核心接口、发起者和目标嵌套字、通用净核和基础协议都可以单独使用。

实用工具、分析接口和端口并不是必须的,但是为了保持风格的连续性和建模的一致性,在建模时应尽量使用。

下面是库文件目录结构

松散定时建模

松散定时建模使用阻塞传送接口。在建模中,阻塞的意义是一个调用请求发出购,知道请求被处理完成该调用才返回。。因此在这种模型中,每一个事务处理对应了两个时间点,即事务处理的开始点和结束点。在TLM基础协议中,这两个时间点与请求相位的开始和相应相位的开始相对应。正常情况下,事务处理的结束时间点要晚于事务处理的开始时间点,但有时候可以相同。

松散定时建模风格支持 “时间解耦”,是松散定时模型的一个显著特征。具体的说,模型的一部分可以在当前仿真时间之前运行,直到一个需要与其他部分同步的一个同步点。时间解耦降低了进程允许的仿真精度,但是有效地提高了仿真速度。

“全局量子时间”是一个进程提前与当前仿真时间运行的时间上限。它反映了仿真精度和仿真速度之间的权衡。

松散定时模型的两个核心特征为:

  • 阻塞调用
  • 基于全局量子时间的时间解耦

近似定时模型

近似定时建模通过非阻塞传送接口支持,主要用于体系结构探索和性能分析。在一个非阻塞传送中存在多个定时点,不同传送相位可以分别用时间标注。在近似定时建模中,一个事务被划分为多个相位,由不同的时间点即兴分割。在基础协议汇总,基本的时间点包括请求的开始和结束、应答的开始和结束。特定的协议可以进一步包括更多的时间点,但可能导致与通用净核失去兼容。

在近似定时建模时,一般不使用时间解耦。这是因为考虑到定时精度的需求。在近似定时建模时,每一个进程根据SystemC调度器的时间 进行执行。在近似定时建模时,通过使用两种延迟:目标延时和发起延时。发起延时也可以看做目标接收延时。

近似定时建模和松散定时建模的使用

不同模型适合的应用场景是不一样的。

  • 周期精确模型什么都可以做,它仿真速度是很慢的
  • 非定时模型仿真速度最快,包括的信息较少,适合定义设计规范和做软件开发
  • 松散定时模型主要用于软件开发和软件性能评估,也可以做体系结构分析。

发起者、目标、套接字和桥

TLM2.0 支持在发起者和目标之间传递事务。发起者能够发起事务,即创建一个新的事务对象,并通过TLM核接口定义的方法进行传递。目标是一个事务的目的地。发起者和目标之间可以直接相连,也可以通过互联组件提供互联。互联组件是一个模块,它可以访问事务,但不是事务的发起者或者目标。典型的互联组件包括路由器、总线和仲裁器。

在TLM2.0中定义了发起者套接字和目标套接字,他们支持使用通用净核来简历前项、返回、反向路径。除了传送接口,套接字还封装了DMI和调试传送接口。

DMI和调试传送结构

直接存储器接口(DMI)和调试传送接口是不同于一般传送接口的专门接口,可以直接访问和调试一个目标所拥有的的一片存储区域。它们一般不通过互联单元的算术接口而是进行存储器直接访问。

DMI一般用于松散模型中,加速正常的存储器事务处理器。调试传送接口用于调试访问,无延迟也无负效应。DMI包括前向和后向接口,而调试接口只有前向接口。

合并接口和套接字

在标准的发起者和目标套接字中,阻塞、非阻塞传送接口、DMI和调试传送接口被合并在一起。所有的四个类型的结构可以在一个给定的目标中并行使用。

名字空间和头文件

TLM2.0包括tlm和tlm_utils两个名字空间。tlm名字空间包括了支持TLM建模的四种传送接口等核心类。

为了编译通过,一个TLM2.0项目必须包括上述两个目录。它还必须包换systemc.h之前定义SC_INCLUDE_DYNAMIC_PROCESSES宏。

通用净核类

进行事务处理级建模,核心是描述事务以及事务的传递过程。可以定义很多中不同的C++类来表示事务。对于32位总线读写事务,一种的C++类为:

Class bus_payload
{
public:
  unsigned int address;
  unsigned int data_in;
  unsigned int data_out;
  bool[4] sel;
  bool we;
  bool cyc;
  bool stb;
  bool ack;
  bool err;
  bool rty;
};

一个总线读写事务为:
bus_payload bp;
对于不同的总线,总线读写事务类的定义不同。

定义

通用净核用于提高存储器映射类型总线模型的互联互通性。通用净核提供了创建存储器映射类型总线模型所需要的基本属性,对于创建多数抽象总线模型已经足够。另一方面,它还提供了一个扩展机制以满足某些总心啊标准的特定需求。

通用净核针对存储器映射类型总线模型而设计,包括了命令、地址、数据、时能、单字传输、突发传输等属性。它支持阻塞和非阻塞传送接口,也支持DMI和调试传送接口。

在使用通用净核作为食物对象传递前,发起者需初始化数据指针和字节使能属性指针。数据智针可以指向静态、自动或者动态分配的存储空间。

通用净核支持两种管理存储区的方法:引用计数和发起者随机管理。两个方法可以同时使用。

存储区管理器是一个用户定义的类,至少实现tlm_mm_interface的free方法。这样一个类的设计目的是提高一个从一个存储池分配通用净核事务对象的方法。

只有存在一个存储管理器的时候,set_mm,acquire,get_ref_count和reset方法才能使用。缺省条件下,通用净核对象没有存储器管理器。set_mm方法啊用于设置一个通用净核的村处理器管理器。

构造、赋值和析构函数

缺省构造函数将通用净核的属性设置为缺省值。
在这里插入图片描述
tlm_generic_payload将通用净核的属性设置为缺省值,并初始化存储器管理器。通用净核不支持拷贝构造函数和赋值操作。

通用净核对象的属性

set_command设置命令属性,即读和写。Get_comand返回当前的命令属性。Set_read和set_write分别将命令属性设置为TLM_READ_COMMAND和TLM_WRITE_COMMADN。

大端和小端

大端和小端是常见的问题。被建模的发起者和目标的大小端方向与主机的大小端方向是有关的。

阻塞传送接口

核心接口概述

核心接口包括四种:

  • 阻塞
  • 非阻塞传送接口
  • DMI
  • 调试传送接口

其中阻塞和非阻塞传送接口是发起者、目标和互联组件之间进行事务处理的基本接口。阻塞、非阻塞传送接口都支持定时标注和时间解耦。则色传送接口没有事务处理器相位参数,阻塞传送接口与非阻塞传送接口的事务处理器相位的任何对应都是名义上的。非阻塞传送接口返回一个值指示返回路径是否已使用。

阻塞传送接口定义

阻塞传送接口主要支持松散时间建模。发起者通过调用一个函数就可以完成一个非阻塞事务处理。

非阻塞事务处理接口如下:

namespace tlm{
template <typename TRANS = tlm_generic_paylpoad>
class tlm_blocking_transport_if:public virtual sc_core:: sc_interface{
public:
  virtual void b_transport(TRANS &trans,sc_core::sc_time &t)=0;
};
}

b_transport()是非阻塞事务处理接口的唯一方法。Trans为一个事务,t是一个双向时间参数。当发起者通过其访问目标是,t为事务处理器发起的时间。当目标返回时,t为事务处理结束时间。TRANS参数默认值为tlm_generic_payload。用户也可以根据需要修改具体类型。
调用规则如下:

  • 可以直接或者间接调用wait;
  • 只能在线程类型的进程中调用,而不能在方法进程中调用。
  • 发起者可以重用一个事务对象,从一个调用送到另一个调用,也可以跨传送接口,包括DMI和调试传送接口。
  • 调用时送入的时间参数为事务发起时间,而返回的时间为事务完成时间
  • 时间标注产生允许定时点与仿真时间不同
  • 事务对象一般不携带时间信息
  • 是否可以调用一栏具体规则协议

阻塞调用实例

阻塞调用的流程如图所示,第一次立即返回,第二次在50ns后返回。
在这里插入图片描述

时间解耦阻塞调用示例

一个时间解耦的发起者可以提前与仿真时间允许,这时发起者和目标都需要一个本地名义时间。本地名义时间包括本地绝对名义时间和本地相对名义时间。b_transort里调用挂了wait时,本地相对名义时间被复位为0.

量子时间阻塞示例

所有的时间结构的发起者增加本地相对时间知道量子时间被超出。
在这里插入图片描述

非阻塞传送接口

相位

tlm_phase是非阻塞传送接口模板的缺省相位类型。tlm_phase对象采用无符号整数表示相位。类tlm_phase的值有五个。

tlm_phase的缺省值是UNINITIALIZED_PHASE。方法tlm_phase(unsigned in)、操作符=和操作符unsigned int可以用来设置和获取tlm_phase对象的值。

操作符<<可以用来显示当前相位的ASCII文本。宏DECLARE_EX-TENDED_PHASE创建一个单态类tlm_phase_arg,继承与tlm_phase,它有一个公有方法get_phase返回它所创建的静态对象的引用。

大多数情况下,使用预定义的相位就可以完成建模。

基础协议类型

在TLM2.0中广泛使用了基础协议类型tlm_base_protocal_types,其定义如下

namespace tlm{
  struct tlm_base_protocol_types{
    typedef tlm_generic_payload tlm_payload_type;
    typedef tlm_phase tlm_phase_type;
  };
}

其中 tlm_generic_payload是通用净核。

非阻塞传送接口定义

非阻塞传送接口用于支持建模近似时间模型。近似时间模型建模用于藐视发起者和目标之间的事务查理过程的多相位的细节。,每一个相位都有一个明确的定时点。

如果将时间点越是为两个,非阻塞接口就可以用于建模松散时间模型。非阻塞传送接口同时使用前向路径和反向路径,因此非阻塞传送该接口有两个。

与阻塞传送接口类似,非阻塞传送接口需要传送事务对象的应用和相对本地名义时间信息。此外,非阻塞传送接口还需要一个枚举便令表示交易的状态,并返回同一个枚举便令标志是否发生了事务处理相位的改变。

为了与基础协议兼容,在实际建模中尽量使用tlm_phase和tlm_generic_payload以保持不同模型的兼容性。

前向非阻塞接口类tlm_fw_nonblocking_transport_if的接口函数nb_transport_fw在前向路径中调用,反向非阻塞接口类tlm_bw_nonblocking_transport_if的接口。视线中都不允许使用wait函数,因此他们也都可以在线程类进程和方法进程中使用。

nb_trasport_fw和nb_transport_bw中补鞥呢调用b_transport。对于基础协议,simple_target_socket类实现了nb_transport_fw、nb_transport_bw与b_transport的自动转换。

TRANS& trans参数的使用于阻塞接口一样。

PHASE& phase参数引用一个相位对象,相位的变化表明时间的前进。

非阻塞传送接口使用示例

在这里插入图片描述

发起者首先调用nb_transport_fw(trans,BEGIN_REQ,0)来发起请求。当使用反向链路时,可能目标并不能立刻计算出下一个相位切换时的事务对象的状态,因此返回TLM_ACCEPTED。发起者此时应该通过调用wait或者sync来进行同步,以使得目标中的进程可以得到执行。

当目标得到执行,它调用nb_transport_bw(trans,END_REG,0)来对nb_transport_Fw来做响应。而目标在执行时,发起者中的相应进程也无法得到执行,同样发挥了TLM_ACCEPTED,此前目标应该通过调用wait或者sync来进行同步。

直接存储器接口

直接存储器接口(DMI)允许发起者使用指针直接访问而不是使用传输接口访问目标拥有的一片存储区域。DMI回避了对阻塞和非阻塞传送接口的多次调用,DMI能够有效提高仿真速度。

DMI接口有两个,一个用于从发起者到目标的前项路径调用,另外一个用于目标到发起者的反向路径调用。前向路径调用返回一个类型为tlm_dmi的引用对象,发起者可以通过该应用范围给位于目标的存储器区域。反向路径被目标用于使通过前向路径建立的引用无效。前向和反向路径都可以穿越0、1或者多喝互联单元,但是前向和反向路径必须穿越互联单元的集合必须相同。

DMI缺省的事务对象的类型为tlm_generic_payload,也可以根据需要进行拓展。

DMI接口定义如下:

namespace tlm{
class tlm_dmi{
public tlm_dmi(){init();}

}
}

调试传送接口

调试攒送接口为发起者提供一个与其他传送接口具有相同的前向路径的读写方法,但是对其他传送接口的操作没有任何影响,即调试传送接口操作对于其他传送接口来讲是非入侵式的。调试传送接口可以让发起者在仿真过程中对存储器内容进行以诊断为目的扫描。

namespace tlm{
template <typename TRANS=tlm_generic_payload>
class tlm_transport_dbg_if :public virtual sc_core::sc_interface{
 public:
    virtual unsigned int transport_dbg(TRANS& trans)=0;
 };
}

合并的传送接口

发起者和目标套接字

发起者和目标套接字

一个套接字讲一个端口和一个导出端口相连接。一个发起者至少有一个前向路径端口和一个反向路径导出端口,而一个目标有一个反向路径端口和一个前向路径导出端口。

在TLM2.0中预定义了一些套接字

简单套接字

简单套接字就是使用简单方便,它们从tlm_initiator_socket和tlm_target_socjer继承而来,所以能够直接与这些类型的套接字绑定。每一个简单套接字都提供了注册回调方法的方法。

全局量子时间和量子看守者

“时间解耦”允许SystemC进程可以提前于仿真时间运行,二允许提前的最大仿真时间称为量子时间。全局量子时间由单态tlm_global_quantum来定义,而类tlm_quantumkeeper则提供了管理全局量子时间的方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

预备打工人之SystemC学习 (五) 事务级建模库 的相关文章

  • 静态只读字符串数组

    我在我的 Web 应用程序中使用静态只读字符串数组 基本上数组有错误代码 我将所有类似的错误代码保存在一个数组中并检查该数组 而不是检查不同常量字符串中的每个错误代码 like public static readonly string m
  • 当我在组合框中选择一个项目时,如何防止 TextChanged 事件?

    我有一个TextChanged http msdn microsoft com en us library system windows forms control textchanged aspx我的事件ComboBox http msd
  • 如何从 C# 中的 dataTable.Select( ) 查询中删除单引号?

    所以我有一个经销商名称列表 我正在我的数据表中搜索它们 问题是 一些傻瓜必须被命名为 Young s 这会导致错误 drs dtDealers Select DealerName dealerName 所以我尝试替换字符串 尽管它对我不起作
  • 使用 C# 登录《我的世界》

    我正在尝试为自己和一些朋友创建一个简单的自定义 Minecraft 启动器 我不需要启动 Minecraft 的代码 只需要登录的实际代码行 例如 据我所知 您过去可以使用 string netResponse httpGET https
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • C++ 是否可以在 MacOS 上与 OpenMP 和 boost 兼容?

    我现在已经尝试了很多事情并得出了一些结论 也许 我监督了一些事情 但似乎我无法完成我想要的事情 问题是 是否有可能使用 OpenMP 和 boost 在 MacOS High Sierra 上编译 C 一些发现 如果我错了请纠正我 Open
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 如何使用 Castle Windsor 将对象注入到 WCF IErrorHandler 实现中?

    我正在使用 WCF 开发一组服务 该应用程序正在使用 Castle Windsor 进行依赖注入 我添加了一个IErrorHandler通过属性添加到服务的实现 到目前为止一切正常 这IErrorHandler对象 一个名为FaultHan
  • 为什么在 WebApi 上下文中在 using 块中使用 HttpClient 是错误的?

    那么 问题是为什么在 using 块中使用 HttpClient 是错误的 但在 WebApi 上下文中呢 我一直在读这篇文章不要阻止异步代码 https blog stephencleary com 2012 07 dont block
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 检测到严重错误 c0000374 - C++ dll 将已分配内存的指针返回到 C#

    我有一个 c dll 它为我的主 c 应用程序提供一些功能 在这里 我尝试读取一个文件 将其加载到内存 然后返回一些信息 例如加载数据的指针和内存块的计数到 c Dll 成功将文件读取到内存 但在返回主应用程序时 程序由于堆损坏而崩溃 检测
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • OpenGL:仅获取模板缓冲区而没有深度缓冲区?

    我想获取一个模板缓冲区 但如果可能的话 不要承受附加深度缓冲区的开销 因为我不会使用它 我发现的大多数资源表明 虽然模板缓冲区是可选的 例如 排除它以利于获得更高的深度缓冲区精度 但我还没有看到任何请求并成功获取仅 8 位模板缓冲区的代码
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include

随机推荐

  • 【PAT乙级】旧键盘打字

    题目描述 旧键盘上坏了几个键 于是在敲一段文字的时候 对应的字符就不会出现 现在给出应该输入的一段文字 以及坏掉的那些键 打出的结果文字会是怎样 输入格式 输入在 2 行中分别给出坏掉的那些键 以及应该输入的文字 其中对应英文字母的坏键以大
  • C# System.UnauthorizedAccessException:“对路径“C:\xxx”的访问被拒绝。

    C 程序运行时提示 对路径 C xxx 的访问被拒绝 System UnauthorizedAccessException 对路径 C Excel2007 xlsx 的访问被拒绝 解决办法是 启动visual studio时选择右键 gt
  • System.in.read()问题

    来源 http zhidao baidu com question 74164319 Q System in read 中in是一个字段即静态常量 JAVA帮助文档中 public static final InputStream in 那
  • MAC地址介绍及相关操作

    一 MAC地址介绍 MAC地址简介 MAC Mediun access cntrol 地址 用来表示互联网每一个站点的标识符 采用十六进制数表示 共六个字节 其中 前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码 也称为 编
  • ArcGIS 10.8打开后显示loading document后闪退

    安装ArcGis完成后 打开ArcMap 卡在Loading Document后 闪退的问题 为何为肖的博客 CSDN博客 arcmap加载文档后闪退b同事新装ArcGis10 5后出现这个情况 联想以前编译Qgis时python环境变量的
  • 由一个例子,介绍linux目录的多用户及其读写可执行权限

    例子 查看文件的读写权限以及所属用户 查看目录的读写权限以及所属用户 目录读写权限默认为755即rwxr xr x 文件读写权限默认为744即rwxrr 目录和子目录的读写权限特点 例子 ls ld home1 drwxrwxrwx 39
  • 模板小程序是什么?怎么选择?

    模板小程序是指第三方服务商基于某个模板开发的小程序 这个模板可以根据开发者的需求进行定制 包括页面设计 功能模块 数据管理等方面 开发者可以在模板基础上进行自主开发 实现自己的需求和功能 模板小程序的优点是开发周期短 价格相对较低 一般是直
  • 白夜追凶 :手 Q 图片的显示和发送逻辑

    欢迎大家前往腾讯云社区 获取更多腾讯海量技术实践干货哦 作者 陈舜尧 导语 这张图片在快捷发图栏背景是黑色的 为啥发到AIO 会话窗口 里背景就变成白的了 通过一个bug单 对黑白背景问题跟进的过程中发现了手q中很多奇怪的表现 一层层看代码
  • SpringBoot支付宝接入实战

    文章目录 支付宝支付后端实战 基于SpringBoot 一 支付宝支付介绍及接入指引 1 支付宝开放能力介绍 1 能力地图 2 电脑网站支付产品 2 接入准备 1 开放平台帐号注册 2 常规接入流程 3 使用沙箱 二 项目的环境准备 1 框
  • js小案例

    一次性定时器 div class dn div
  • C++,命名空间

    命名空间定义 namespace 命名空间名 变量名 函数 结构体 枚举名 全局引入命名空间 using namespace 命名空间名 部分引入命名空间 using namespace 命名空间名 变量名 注意 表示域限定符 在哪个位置使
  • 【实战加详解】二进制部署k8s高可用集群教程系列二 - ssl 证书简介

    TIP 二进制部署 k8s ssl 证书 转载请注明出处 https janrs com 1 ssl 证书简介 NOTE 在这里只做应用的简介 原理不做介绍 自行谷歌查阅 涉及到安全的 也不整理文档了 自行研究 1 1 什么是 ssl 证书
  • Java实现:寻找水仙花数

    Java实现 寻找水仙花数 文章目录 Java实现 寻找水仙花数 1 问题 2 解决方案 3 实现代码 4 执行结果 5 解决方法说明 穷举法 1 问题 寻找水仙花数 如果一个3位数等于其各位数字的立方和 则称这个数为水仙花数 例如 407
  • 奇异值分解方法求解最小二乘问题的原理

    文章目录 一 奇异值分解 SVD 原理 1 1 回顾特征值和特征向量 1 2 SVD的定义 1 3 求出SVD分解后的U V矩阵 1 4 SVD计算举例 1 5 SVD的一些性质 二 线性最小二乘问题 2 1 最小二乘问题复习 2 2 奇异
  • 最小二乘法拟合圆(Python)

    上文已经对比了三种数据点拟合圆的方法 本文分享最小二乘法的拟合过程 旨在了解如何用Python编程拟合圆 usr bin env python coding utf 8 This program is debugged by Harden
  • Markdown插入视频、mp3音频和gif图的语法

    总所周知 鄙人有一个专栏叫做 差生文具多 里面记录了一些工具的使用方法 以及使用工具时会遇到的一些问题 于是乎 之前就有一个朋友在群里问道 markdown如何插入视频 当时的我不会弄 然后就出现了下面这一幕 明天就弄 开整 然而这篇博客是
  • ARM64_VS2017 动态库 静态库编译 主程序调用环境搭建

    ARM64 VS2017 动态库 静态库编译 主程序调用环境搭建 1 打开Visual Studio Installer安装linux开发环境 2 配置linux环境 工具 gt 选项 gt 跨平台 gt 连接管理器 gt 添加 远程lin
  • mkdir()和mkdirs()区别

    mkdir 和mkdirs 区别如下 mkdirs 可以建立多级文件夹 mkdir 只会建立一级的文件夹 如下 new File tmp one two three mkdirs 执行后 会建立tmp one two three四级目录 n
  • 算法:回文字符串

    要求 给定一个字符串数组 判断出所有的回文字符串 class Solution public List
  • 预备打工人之SystemC学习 (五) 事务级建模库

    预备打工人之SystemC学习 TLM2 0基本概念 松散定时建模 近似定时模型 近似定时建模和松散定时建模的使用 发起者 目标 套接字和桥 DMI和调试传送结构 合并接口和套接字 名字空间和头文件 通用净核类 定义 构造 赋值和析构函数