DDR4 眼图测试方法

news2024/12/26 20:44:01

DDR的全拼是Double Data Rate SDRAM双倍数据速率同步动态随机存取内存。主要就是用在电脑的内存。他的特点就是走线数量多,速度快,操作复杂,给测试和分析带来了很大的挑战。目前DDR技术已经发展到了DDR5,性能更高,功耗更低,存储密度更高,芯片容量大幅提升,他的数据速率在3200-6400MT/s。

 

format,png

DDR本质上不需要提高时钟频率就能加倍提高SDRAM的速度,它允许在时钟的上升沿和下降沿读出数据,因而其速度是标准SDRAM的两倍,至于地址与控制信号则与传统SDRAM相同,仍在时钟上升沿进行数据判断。

 

"Keysight DDR4参数测试参考解决方案帮助工程师根据 JEDEC 规范来验证 DDR4存储器设计的信号完整性。"

随着示波器用户对速度更快、功耗更低和体积更小的存储器的需求与日俱增,双倍数据速率(DDR)存储器技术在过去五年里得到了巨大的发展。DDR4 的含义是具有双倍数据速率的第四代 SDRAM 存储器。

 

“由于改进的制造工艺降低了成本,现在选择的技术是 DDR SDRAM,是双倍数据速率同步动态随机存取存储器的缩写。”

ddr4与ddr3区别

与 DDR3 相比,DDR4 的数据传输带宽大幅增加,而且在速度、密度和功率等方面都超越以往。这些技术进步推动企业级应用、微型服务器应用和平板电脑应用的性能和能效进一步提高,让设计人员可以设计芯片更小、功耗更低、散热更少的器件。

 

format,png

DDR4 存储器的体系结构整合了 DDR3(双向 DQS)和类似 GDDR5 的数据总线(CRC 和数据误码检测功能)两方面的关键特性。但 DDR4 信号也有一些特性与上一代 DDR 解决方案截然不同。这些关键差异促使新的测试方法问世。

信号完整性的问题

信号完整性对于存储器系统的可靠运行至关重要。测试信号完整性,首先应从物理层开始,数据在这一层通过时钟上升沿和下降沿进行传输。但是在测试 DDR4 存储器的物理层时遇到了一些新的挑战。

按照电子器件工程联合会(JEDEC)标准的要求,在实施电子、时序和眼图测试时都需要执行输入和输出测量,其中包含大量测试操作以确保存储器系统正常运行,不会发生错误。DDR4 的速度提升还要求通过分离读写周期来测量 AC 时序参数。

存储器速度的提高,也导致随机抖动爆增。DDR4 是第一款速度超快而必须将抖动控制在规定范围内的 DRAM。过多的抖动会减少数据有效窗口,所以必须明确定义 DDR4 的数据有效窗口。
DDR4 器件开发人员所关注的另一个问题是互操作性。其最终目标是保证存储器系统的通用功能,同时提高效率和生产力。唯有清晰地了解 DDR4 规范的测试要求(例如,存储器时序、眼图测量和抖动)和测试过程(例如,正确的探测和仿真协议),您才能恢复裕量,缩短芯片/系统的设计周期、降低成本并加快产品上市速度。最终目标是保证存储器系统具备通用功能,且达到更高能效和生产效率。

什么是抖动?- 抖动是指信号的时序事件偏离其理想位置的现象。

DDR4测试要求

前几代 DDR 存储器的时序规范基于多种风险假设,其中最大的假设是,只要数据设置和保持时间符合规范,就可以实现完美的数据捕获。DDR2 和 DDR3 的数据速率较慢且裕量较大,其规范假设随机抖动可忽略不计且比特误码率(BER)为零。当然,它实际上并不为零。对于时钟抖动,测量 10,000 个周期的时钟周期,其误码率将为 1e-4,因而可以认为它足够接近零。DDR2 和 DDR3 较低的数据传输速度使得这些假设可以成立,因为在系统发现不合格结果之前存在足够的裕量。
DDR4 的数据速率更快,这会降低裕量,随机抖动可能会快速关闭数据眼图,这意味着误码率会增加。如果不加以控制,有可能会产生严重的系统可靠性问题、延长设计时间、减缓产品上市时间并增加设计周期的成本。然而,DDR4 测试要求可以正面地解决这些问题,保障可靠性并降低成本。
将捕获的波形数据显示为实时眼图(RTE),可以深入了解串行数据信号中的抖动。眼图基本上是数字化比特的叠加,显示比特何时有效(高或低)。它提供了描述系统物理层特征质量的合成图像,并使峰峰值边缘抖动和噪声得以具体显示。

实时眼图测试执行眼高和眼宽测量,检查信号完整性并预估数据有效窗口。然而,仅测量数据眼图并不能完全了解数据有效窗口或预估比特误码率。目前,DDR4 规范的信号完整性测量的是最差情况下的时间裕度(tDIVW)和电压(vDIVW)。

眼图模板测试是最重要的物理层测量之一,可用于测试总体信号完整性。从总体抖动可以推导出与眼图模板相关的最小时间和最小电压的裕量。如果定义的 BER 很大(或者如果存在少量数据),就可以直接执行测量。如果测试的 BER 很小,那么测量数万亿个单位间隔(UI)就会花费太多时间。
眼图模板测试可确保数据眼图不会超过可能发生抖动(和误码)的模板边界。除此之外,它可以通过 tDIVW 测量结果(图 1)报告最小裕量(模板四个角的四个时序点)。

 

format,png

图 1. 眼图模板测试可以确保信号不会超过模板边界(在边界上可能发生抖动和误码)。

眼图测试

– 可以测量数据眼高和眼宽
– 用户还可以根据器件规范定义自己的眼图模板
– 如果眼图不符合模板,那么一致性应用软件可以报告不合格状态

DDR4 规范考虑了抖动和 BER 的关键作用。计算抖动 BER 测量结果很重要,它可以统计测量总体抖动(确定性抖动+随机抖动),了解设计的数据有效窗口结果和可能出现错误的概率。

除了规范测试,采用正确的测试过程和方法也是至关重要的。例如,示波器探头的正确放置会影响一致性测试结果以及设计裕量的准确表征和测试。对于 JEDEC 规范,最佳探测点位于 DRAM 封装的球上(不在传输线或通道上,也不在存储器控制器上)。

仿真是测试过程中的另一个重要却经常被忽略的步骤。随着总线速度的提高以及获得尽量多裕量的需求,仿真过程可以很大程度地帮助减少设计周期和成本。

例如,仿真有助于确保系统能够容忍内插器的负载效应。这一步骤评测所测量的带宽/频率响应,确保内插器不会断开总线。

最后,是德科技与 JEDEC 组织密切合作,以确保其测试和测量解决方案与 JEDEC 标准的测试和测量规范保持高度一致。

 

format,png

图 2. 然后将具有适当负载效应的仿真设计与原型的实际扫描结果进行比较,确定系统正常运行。

眼图测试101 赞同 · 4 评论文章​编辑

如何计算总体抖动?

确定性抖动(DJ)通常是有界而可预测的,可以与数据流相关联,例如符号间干扰和占空比失真。随机抖动(RJ)属于高斯分布并且是无界的。与任何高斯分布一样,随着总量的增加,分布的峰-峰值也会增加。因此,总体抖动(TJ)等于确定性抖动 DJ 加上随机抖动 RJ 与 BER 的乘积。了解抖动的组成和来源可以帮助设计人员降低设计中抖动的发生率,确保更好的数据性能。

 

format,png


物理层 DDR4测试的解决方案

准确执行测试的三个步骤:

1.选择合适的探头并把它置于正确的位置
2.选择能够执行适当应用分析的示波器
3.使用符合 JEDEC 标准的自动一致性测试应用程序

1. 选择合适的探头并把它置于正确的位置

对于采用 DDR4 存储器的计算机系统设计,有几种探测方法可以访问用于测试的存储器系统。第一种探测方法适用于计算机系统有内存插槽/连接器,可以插入DIMM 或 SODIMM 的场景。对于此类配置,访问信号的最简单方法是使用插槽内插器(图 3)。

 

format,png

图 3. SODIMM 插槽内插器

插槽内插器将所有命令信号路由到电缆,该电缆能够代替 MSO 电缆而直接连接到混合信号示波器(MSO)的输入端。访问数据选通信号(DQS)和输出数据(DQ)时,探头前端可以焊接到插槽内插器上并连接到模拟通道(图 4)。这样就可以查看 SODIMM 的 16 个数字通道以及通过模拟通道传输的 DQS 和 DQ 信号。

 

format,png

图 4. 使用焊入式探头前端可以访问路由到示波器模拟通道的 DQS 和 DQ 信号。在本例中,我们使用的探头前端是 E2677A。

另一种选择是 DDR4 BGA 探测,它适用于测试嵌入式系统(或 DIMM 配置)。对 DDR4 而言,BGA 内插器的设计目的是提供访问所有信号的途径,以便在表征所有信号(数据、地址、控制、命令、选通和时钟)时实现最大的灵活性。使用这种探测方法时,需要将 BGA 内插器焊接在 DRAM 和电路板之间。连接示波器的焊点位于 BGA 顶部(图 5)。

 

format,png

图 5. Keysight DDR BGA 内插器。通过内插器周围的示波器焊点访问信号。

如果空间特别狭小(特别是在 DIMM 配置中),可能需要转接器将内插器从电路板上架高,这样它就不会干扰任何相邻的元器件(图 6)。在这种情况下,转接器将焊接在内插器的底部。

 

format,png

图 6. DDR BGA 内插器配有一个转接器,用于在表面积较小的区域内架高内插器。

定制内插器
如果您需要一款内插器,而我们现有的设计无法满足您的需求,那么我们的设计团队能够与您合作创建定制解决方案。请与是德科技合作以启动这一流程,或访问:

 


2. 选择能够执行适当应用分析的示波器

确定探测协议之后,下一个关键的考虑因素是选择测试设备。尽管存储器技术的 BER 规范才刚制定,但这种测试已然成熟运用于高速设计,并得到相应测量工具(如示波器)的支持。使用具有先进测量分析功能的示波器非常重要,这些功能包括去嵌入、实时眼图测量、混合模拟和数字信号;以及交叉参照仿真设计等。

MSO 示波器是一种能够同时显示和分析数字和模拟信号的仪器。MSO 的一个优势是能够分离读写数据。用户可以将命令总线、行地址选通(RAS)、列地址选通(CAS)、写入激活(WE)、片选(CS)和时钟信号连接到数字通道,使示波器根据这些信号中的任意信号或信号组合触发读命令或写命令。它可以分离相应的数据并执行电子和时序测试。MSO 还允许测试人员查看命令协议的流程,检测协议是否违规。

选择示波器时,必须要了解它与其他设计和测试工具如何整合。是德科技利用其作为世界知名电子测量公司的独特地位,精心构建先进的 EDA(软件仿真)工具和示波器。当在 DDR4 设计的最后阶段运行传统的电子和时序规范时,是德科技的工具套件提供了独特的优势,能够对候选版本中的仿真波形和物理原型的波形测量结果执行完全相同的一致性测试。换句话说,仿真波形可以导入示波器中,与从物理原型获得的波形进行比较。

仿真过程可以显著减少设计的迭代次数和成本。每次执行探测时,都会给系统增加额外负载。仿真该负载可确保内插器不会破坏总线或产生任何未知负载。Keysight W2351 DDR4 一致性测试台可用于仿真负载效应并生成去嵌入文件,从而消除探测效应并使用示波器进行测量(关于去嵌入的详细信息,请参阅下一页的步骤 3),这样就可以真实地将您仿真的设计与原型进行比较。

 

format,png

Infiniium V 系列示波器

 

Keysight Infiniium V 系列示波器针对高速 DDR 存储器测量进行了优化。V 系列提供业界较低的本底噪声和抖动测量本底以及较高的有效位数(ENOB),因而成为发射机信号完整性测量的理想工具。提供从 8 GHz 至 33 GHz 的各种型号,并可升级其带宽以满足您未来的需求。它与 InfiniiMax III 和 III+ 探测系统结合使用,可以提供更精确的测量,满足更苛刻的设计裕量要求。另外,它还提供 16 个数字通道,时间分辨率高达 50 ps。

 

此外,借助是德科技先进设计系统(ADS)和 DDR4 软件,您可以直接将仿真结果与示波器软件测得的实际特征相关联。需要询问示波器供应商的问题:

  • 我可以交叉触发和测量数字和模拟通道吗?
  • 示波器是否具有去嵌入功能?
  • 它是否具有实时眼图测量功能?
  • 我可以将它交叉引用到我的仿真设计中吗?

3.使用符合 JEDEC 标准的自动一致性测试应用程序

测试解决方案的最后一个组成部分是示波器软件。利用 DDR4 一致性测试应用软件,您可以使用日常用于调试的示波器,按照 JEDEC 规范执行自动存储器测试和裕量分析。每次测试时,该应用软件都会自动配置示波器,使其可以提供有效结果。它还包括裕量分析,指示您的器件距离各项规范的合格标准有多远。

一致性应用软件还应具有某种“自定义”模式,可以涵盖包括眼图分析、模板测试和振铃在内的关键测量。这些测量对表征 DDR4 器件至关重要。

Keysight DDR4 一致性测试应用软件可测试 JEDEC SDRAM 规范中规定的时钟、电气和时序参数。该应用软件可以帮助您使用Keysight Infiniium V 系列示波器测试所有 DDR4 和 LPDDR4(低功耗)器件的一致性。
是德科技的应用软件还可以提供详细的报告,包括用屏幕快照显示的最差情况值,以及根据规范确定的测量结果的合格/不合格状态。它还可以计算距离规范合格线的裕量。用户可以增加运行次数,收集更多数据进行统计分析。统计报告将显示测试的最小值、最大值和标准差。这些数据在比较 DRAM 供应商或不同客户的测试结果时特别有用。

Keysight DDR4 电气一致性测试软件报告包括:
1. 利用屏幕快照显示的最差情况值
2. 合格/不合格状态以及距离该标准的裕量
3. 多次试运行结果
4. 包括最小值、最大值和标准差的统计报告

技术洞察:InfiniiSim
Keysight InfiniiSim 波形转换工具套件提供更灵活、更准确的方法,来显示数字串行数据链路中任意处的波形。高度可配置的系统建模能够简单快速地帮你消除多余通道元素的有害影响,仿真插入了通道模型的波形,查看物理上无法探测位置的波形,补偿探头和其他电路元件的负载效应。最终目标是在根据规范进行测试或执行表征工作时获得更多裕量。

Keysight DDR4 电气一致性测试软件的优势

  1. 是德科技积极参与 JEDEC 组织的各项工作 — 在 DDR4/LPDDR4 BER 测试方法上做出了关键贡献
  2. 比竞争对手更多的测试覆盖率
  3. DDR4 一致性测试解决方案的一站式商店(软件+ BGA 内插器)
  4. 通过 W2351 一致性测试台软件交叉引用并仿真运行
  5. Infiniisim 波形转换工具套件

 

format,png

总结
DDR4 的速度要求以新的方式定义和测量关键的 AC 时序参数(例如数据输入有效窗口的时序和电压)。示波器配备的探测分析工具与自动一致性测试相结合,可以确保测试结果的可重复性和可靠性。

设计人员若想缩短学习时间,尽快掌握新一代测试与测量协议的知识,那么最好考虑与积极参与 JEDEC 标准委员会工作的测试工具厂商合作。通过密切的协作和沟通,设计人员可以找到更新、更好的一致性测试解决方案。这对于新发布的技术尤其重要,因为其规范和测量方法仍然处于讨论过程中。

Keysight DDR4 眼图轮廓测试方法目前得到 JEDEC 的采纳,用于 DDR4 标准化工作。是德科技还是一家在 DDR 芯片开发所有阶段均提供硬件和软件解决方案的测试与测量公司。从仿真到调试,从验证到一致性测试,是德科技的解决方案都发挥了重要作用。

任何从 DDR 存储器设计的技术人员都面临着在不断缩小的封装中实现更快存取速度和更低功耗的持续压力。在产品设计阶段尽早洞察您的设计,可以快速采取纠正措施,确保您的产品达到质量、互操作性和上市时间等目标。成功的设计取决于效率以及缩短设计周期,控制设计成本。幸运的是,今天有许多工具可以帮助您实现这一目标。

对于 DDR 源同步操作,必然要求DQS 选通信号与 DQ 数据信号有一定建立时间 tDS 和保持时间 tDH 要求,否则会导致接收锁存信号错误,DDR4 信号速率达到了3.2GT/s,单一比特位宽仅为 312.5ps,时序裕度也变得越来越小,传统的测量时序的方式在短时间内的采集并找到 tDS/tDH 最差值,无法大概率体现由于 ISI 等确定性抖动带来的对时序恶化的贡献,也很难准确反映随机抖动 Rj 的影响。在 DDR4 的眼图分析中就要考虑这些抖动因素,基于双狄拉克模型分解抖动和噪声的随机性和确定性成分,外推出基于一定误码率下的眼图张度。JEDEC 协会在规范中明确了在 DDR4 中测试误码率为 1e-16 的眼图轮廓,确保满足在 Vcent 周围Tdivw 时间窗口和 Vdivw 幅度窗口范围内模板内禁入的要求。

 

format,png

是德科技 ADS 仿真软件的 DDR4 总线仿真器,提供了统计眼图分析的功能,能够在短时间内统计计算在极低误码率(1e-16)下的 DQ 眼图,根据规范判断模板是否违规。另外基于总线的仿真,也很易于仿真基于串扰因素下的眼图质量。

 

23ee904c73d4b6e1517c8b4e34ac1b17.png

基于示波器的 DDR4 信号实测,可以利用大家熟悉的 InfiniiScan 区域触发功能,很容易分离出“写”信号,再通过 Gating 功能对Burst 写信号做时钟恢复和眼图重建,再进行 Eye Contour 测量,并验证 1e-16 误码率下的眼图模板是否违规。如果是使用一致性测试软件,就不用手动操作,软件会自动跟踪和分离波形并实现眼图测试(如下图所示)

 

format,png

在早期设计阶段,如何完整评价 DDR 信号质量和时序等参数呢,这里为大家介绍一个设计到验证的流程。ADS 提供了W2351EP DDR4 一致性分析工具,在ADS 仿真后,生成波形可以直接导入到运行于电脑里的示波器离线分析软件 Infiniium 和N6462A DDR4/LPDDR4 一致性测试套件,这个软件可以分析前面所说的 JEDEC 对DDR4 信号要求的电气和时序等参数,判断是否符合规范要求,以测试报告形式呈现,这种方式可以在设计阶段发现违规问题,及时改进设计,缩短研发周期,降低硬件开发成本。另一方面,在硬件已经打板回来,可以通过 V 系列等示波器测试信号,通过实际的信号检查存在的问题,将仿真的结果和实际测试的结果做相关对比,进一步迭代优化仿真模型和测量方法,使仿真和测试结果逐渐逼近。

 

format,png

DDR4 做测试时,由于 BGA 信号难以探测,是德科技提供了 N2114A/N2115A 等DDR4 Interposer,将 BGA 下方的信号引到 Interposer 外围,方便探头焊接,为了减少 Interposer 对信号带来影响,在 interposer 内专门有埋阻设计,减少由于分支和走线带来的阻抗不连续和对信号的负载效应;但为了精确测量,我们需要对 BGA Interposer 带来的误差进行修正。可以通过 InfiniiSim 或在 DDR4 一致性测试软件N6462A 内进行去嵌,在软件内使用多端口拓扑模型,载入 Interposer 的S 参数,生成从探头测试点到 BGA 焊球位置的去嵌传递函数,在示波器中测得去嵌后的波形,下图可以看到去嵌后信号眼图的改善。

 

format,png

最后,对于物理层无论是仿真还是一致性测试软件得到的数据,都可以通过数据分析工具 N8844A 导入到云端,通过可视化工具,生成统计分析表格,对比性分析高低温、高低电压等极端情况下不同的测试结果,比较不同被测件异同。为开发测试部门提供灵活和有效的大数据分析平台。

 

b5c0006367bce2b6efa78736939255fd.png

除了在物理层信号质量和基本时序参数之外,DDR 总线的状态机复杂时序特性,以及总线的命令操作解析需要通过逻辑分析仪辅助分析。是德科技的U4164A 逻辑分析

仪,同步分析速率可以达到 4Gbps,采样窗口可以低至 100mv x 100ps,单路采集样本高达 400M,对于 DDR4 的测试是非常合适的,另外配合 B4661A memory 分析软件,可以解析 DDR4 会话操作,实现 DDR4 总线的命令解码,解析 MRS,命令,行列地址,并可以直接触发物理地址捕获特定信号,利用深存储的大量样本,可以对DDR 总线的性能进行分析,包括统计内存总线有效吞吐速率,统计各种命令操作以及总线利用率,分析对不同内存地址空间的访问效率。另外利用是德科技独有的逻辑分析仪内部眼图扫描功能,可以同时分析扫描总线各个比特位的眼图质量。

 

format,png

JEDEC 的规范中,定义了如下这些参数要求,B4661A 软件可以支持这些参数的实时和后分析功能,分析判断测试结果是否符合规范的范围要求,并且可以跟踪测量结果,对于违规的测量参数可以跟踪到波形界面,从而定位命令和操作的根源问题。

 

50950f785141e8d20afe19aef036a36b.png

 

format,png

以上,我们介绍了 DDR4 总线物理层仿真测试和协议层的测试方案,借助仿真软件、示波器和逻辑分析仪对DDR4 总线分析调试的主要方法。对于 DDR 系统中存在的复杂问题,还可以使用逻辑分析仪和示波器进行联合调试,逻辑分析仪优势在解析 DDR 总线会话和操作性能分析,示波器的强大在于信号波形的观测,也可以测量电源纹波和噪声。是德科技的逻辑分析仪自带的 View Scope 功能,可以通过网线和触发线, 同步捕获示波器内的波形,时基相关的查看逻辑操作和物理波形的关系,下面的实测场景就是使用逻辑分析仪捕获LPDDR4信号,使用 10 比特的 S 示波器配合电源完整性测试探头 N7020A,精确观测供电电压 1.1V 的实例,可以看到在逻辑分析仪界面, 电源电压轨迹展开出现尖峰和跌落。

 

format,png

再通过逻辑分析仪的内存软件解析 DDR 总线的操作和分析性能,可以分析出由于系统中集中的读操作,以及LPDDR4的速率切换导致了电源电压的波动,以及特定命令操作导致的电压跌落现象,下图我们展示了逻辑分析仪界面内总线会话解码、总线利用率时域统计和电压波形的同步显示,展开命令后可以发现在电压出现尖峰的周边是Clock 重新打开、Self Refresh Exit 操作,再看总线利用率的时域变化,突发的读操 作总线利用率提升了 12%,由于突发的连续读操作形成电源负载瞬间变化,导致 1.1 V

上出现了瞬间的 38 mV 的尖峰。这个电压波动可能导致系统工作可靠性下降,所以需要进一步改善 DDR 供电电源网络的设计。

 

1fce4a3d63fa60187f306799674073d1.png

 

format,png

 

先进设计系统(ADS)软件套件提供针对特定设计流程预先配置的软件组合。这些 ADS 软件套件提供了多达三种不同的仿真技术:系统仿真、电路仿真和电磁(EM)仿真。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1034812.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【算法练习Day4】 两两交换链表节点删除链表倒数第 N 个结点环形链表 II

​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 两两交换链表中的节点一…

毫米波雷达 TI IWR1443 在 ROS 中进行 octomap 建图

个人实验记录 /mmwave_ti_ros/ros_driver/src/ti_mmwave_rospkg/launch/1443_multi_3d_0.launch <launch><!-- Input arguments --><arg name"device" value"1443" doc"TI mmWave sensor device type [1443, 1642]"/><arg…

一例“msvc编译器O2优化导致的崩溃”的分析

1. 初步分析 某进程崩溃必现。 打开崩溃dmp&#xff0c;结合c源代码&#xff0c;崩溃大致发生在某dll代码里的这句&#xff1a;SAFE_DELETE(pContentData); En_HP_HandleResult CTcpOperation::OnClintReceive(HP_Client pSender, HP_CONNID dwConnID, const BYTE * pdata, i…

组队竞赛(int溢出问题)

目录 一、题目 二、代码 &#xff08;一&#xff09;没有注意int溢出 &#xff08;二&#xff09;正确代码 1. long long sum0 2. #define int long long 3. 使用现成的sort函数 一、题目 二、代码 &#xff08;一&#xff09;没有注意int溢出 #include <iostream&g…

机器学习的主要内容

分类任务 回归任务 有一些算法只能解决回归问题有一些算法只能解决分类问题有一些算法的思路既能解决回归问题&#xff0c;又能解决分类问题 一些情况下&#xff0c; 回归任务可以转化为分类任务&#xff0c; 比如我们预测学生的成绩&#xff0c;然后根据学生的成绩划分为A类、…

js制作柱状图的x轴时间, 分别展示 月/周/日 的数据

背景 有个需求是要做一个柱状图, x 轴是时间, y 轴是数量. 其中 x 轴的时间有三种查看方式: 月份/周/日, 也就是分别查看从当前日期开始倒推的最近每月/每周/每日的数量. 本篇文章主要是用来制作三种不同的 x 轴 从当前月开始倒推月份 注意 getMonth() 函数可以获取当前月份…

【【萌新的FPGA学习之实战流水灯】】

萌新的FPGA学习之实战流水灯 实验任务 本节的实验任务是使用领航者底板上的两个 PL LED 灯顺序点亮并熄灭&#xff0c;循环往复产生流水灯的效 果&#xff0c;流水间隔时间为 0.5s。 1MHz&#xff1d;1000000Hz 10的6次方 1ns&#xff1d;10的-9次方秒 开发板晶振50Mhz 计算得…

如何看待Unity新的收费模式?

文章目录 背景Unity的论点开发者的担忧如何看待Unity新的收费模式&#xff1f;1. 理解Unity的立场2. 考虑小型开发者3. 探索替代方案4. 对市场变化保持敏感5. 提高游戏质量 结论 &#x1f389; 如何看待Unity新的收费模式&#xff1f; ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1…

R语言柱状图直方图 histogram

柱状图简介 柱状图也叫直方图&#xff0c;是展示连续性数值的分布状况。在x轴上将连续型数值分为一定数量的组&#xff0c;y轴显示对应值的频数。 R基本的柱状图 hist 我们用R自带的Orange数据来画图。 > head(Orange)Tree age circumference(圆周长) 1 1 118 …

Docker搭建DNS服务器--nouse

前言 DNS服务器是(Domain Name System或者Domain Name Service)域名系统或者域名服务,域名系统为Internet上的主机分配域名地址和IP地址。 安装 2.1 实验环境 IP 系统版本 角色 192.168.40.121 Ubuntu 22.10 DNS服务器 192.168.40.122 Ubuntu 22.10 测试机器 2.2 …

数据库选型参考

嵌入式数据库 SQLite、Berkeley DB、Derby、H2、HSQL DB SQLite&#xff1a; SQLite是一种非常流行的文件型数据库&#xff0c;它是一款轻量级、高性能、开源的嵌入式数据库引擎。SQLite采用C语言编写&#xff0c;可以在各种操作系统上运行&#xff0c;并且支持大多数标准SQL语…

csa从初阶到大牛(训练题1)

使用普通账户新建如下结构的2个目录&#xff1a; ~/t1/t2/t3/t4&#xff0c;~/m1/m2/m3/m4,并显示t1目录的详细信息&#xff0c;将/etc/passwd文件拷贝到~/t1/t2/t3目录下面&#xff0c;将~/t1/下面的内容拷贝到~/m1/m2/m/3/m4目录下面,最后删除~/t1/t2/t3下面的目录 # 创建目…

前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(四)

开始吧&#xff0c;做时间的主人&#xff01; 把时间分给睡眠&#xff0c;分给书籍&#xff0c;分给运动&#xff0c; 分给花鸟树木和山川湖海&#xff0c; 分给你对这个世界的热爱&#xff0c; 而不是将自己浪费在无聊的人和事上。 思维导图 函数 为什么需要函数 <!DO…

pytest框架运行时的参数,以及多线程分布式运行用例、运行指定模块用例

一、运行时的参数 在上一篇博客中写了pytest最为核心的运行时前后置如何设置&#xff0c;细心的朋友可能也会发现其实我们当时就加过运行时的参数-vs。 pytest.main([‘-s’])&#xff1a;能打印出调试信息&#xff0c;print()或者日志都可以直接打印在控制台上。 pytest.ma…

栈和队列1——栈的实现及其oj(括号匹配问题)

一&#xff0c;栈的概念 栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out&#xff09;的原则。 压栈&#xf…

【100天精通Python】Day68:Python可视化_Matplotlib 绘制热力图,示例+代码

目录 1 值热力图&#xff08;Value Heatmap&#xff09;: 2 密度热力图&#xff08;Density Heatmap&#xff09; 3 时间热力图&#xff08;Time Heatmap&#xff09;: 4 空间热力图&#xff08;Spatial Heatmap&#xff09; 5 渐变热力图&#xff08;Gradient Heatmap&am…

C语言实现获取文件大小(字节数)

首先使用如下命令在当前文件夹&#xff0c;创建一个大小为1234578字节的空白文件&#xff1a; fsutil file createnew ./test.bin 12345678关于fsutil命令的介绍&#xff1a;Windows快速创建任意大小的空白文件 使用十六进制编辑器打开&#xff0c;可以看到内容全是0&#xf…

滴滴一面:线程池任务,如何设置优先级?

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业如滴滴、极兔、有赞、希音、百度、网易的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 如何设计线程池&#xff1f;请手写一个简单线程池&#xff1f; 就在昨天&…

肖sir__mysql之综合题练习__013

数据库题&#xff08;10*5&#xff09; 下面是一个学生与课程的数据库&#xff0c;三个关系表为&#xff1a; 学生表S&#xff08;Sid&#xff0c;SNAME,AGE,SEX&#xff09; 成绩表SC&#xff08;Sid&#xff0c;Cid&#xff0c;GRADE&#xff09; 课程表C&#xff08;Cid&…

linux进程杀不死

项目场景&#xff1a; 虚拟机 问题描述 linux进程杀不死 无反应 原因分析&#xff1a; 进程僵死zombie 解决方案&#xff1a; 进proc或者find命令找到进程所在地址 cat status查看进程杀死子进程