WGL波形生成语言—新手入门学习(三)
WGL波形生成语言—新手入门学习一WGL波形生成语言—新手入门学习二WGL波形生成语言—新手快速入门—导航目录2.4.3.2扫描单元2.4.3.3 扫描状态2.4.3.4 扫描链2.4.3.5 时序模板2.4.3.2扫描单元扫描单元块用于表示器件的内部存储寄存器这些寄存器可通过串行移位扫描电路进行加载或观测。单个WGL输入文件中允许的扫描单元总数限制为32767个。 区分扫描单元与信号至关重要。WDB波形数据库存储信号的连续波形信息而扫描单元仅能表示特定时刻的逻辑状态瞬时。扫描单元无方向属性且与自动测试设备ATE或被测设备DUT的引脚无直接关联也不能在时间板TimePlates或模式参数列表中被引用。 WGL扫描单元块的语法如下scancell ScanCellDecl end扫描单元块的完整BNF语法表示如下ScanCells :: “scanCell” { ScanCellDecl } “end” ScanCellDecl :: cellName [ ScanGroup ] [ “:” Radix ] “;” ScanGroup :: “[” [ ScanRange | ScanGroupMembers ] “]” ScanRange :: bitNumber “..” bitNumber ScanGroupMembers :: CellReference { “,” CellReference } CellReference :: ( cellName [ Range ] ) Range :: “[” bitNumber [ “..” bitNumber ] “]” Radix :: “radix” ( “binary” | “octal” | “decimal” | “hex” | “hexadecimal” | “symbolic” )扫描组ScanGroup语句允许你指定扫描单元的逻辑分组。一个组中的扫描单元可来自多个扫描链。每个扫描组成员ScanGroupMember必须是先前已定义的除非该成员是另一个扫描组的名称。 扫描组和寄存器的可选基数Radix说明用于扫描状态向量中。支持的基数通过WGL保留字实现binary二进制、hex十六进制、octal八进制、decimal十进制和symbolic符号型。 扫描单元ScanCells块的示例如下scancell latchA; latchB; datareg[0..7]: radix hexadecimal; group_1[latchA, latchB, datareg[7]]: radix octal; end该扫描单元块示例定义了器件内的可扫描单元。单元可以是单比特锁存器如latchA也可以是多比特寄存器如datareg。此外还可指定扫描单元的逻辑分组如group_1。2.4.3.3扫描状态扫描状态块Scan State block中的每个状态声明定义了所有扫描单元集合在某个时刻的完整状态。输入扫描的目标是达成该状态输出扫描的目标是观测该状态。一个扫描状态向量可被零个或多个扫描模式行引用。加载或观测一个状态中的所有单元可能需要多个扫描链。 支持扫描向量的二进制格式。有关详细信息请参阅本章第2-102页的“二进制WGLBinary WGL”。此功能允许你将CAE计算机辅助工程仿真产生的二进制数据用作TDS测试数据系统的输入。WGL扫描状态块Scan State block的语法如下scanstate ScanStateDecl end扫描状态块Scan State block的完整BNF语法表示如下ScanState :: “scanState” { ScanStateDecl } “end” ScanStateDecl :: stateName “:” { StateVectorElement } “;” StateVectorElement :: chainName “(“ { stateString } “)”扫描状态声明ScanStateDecl指定扫描状态的名称以及该状态下所有扫描单元的值。stateName为标识符如果stateName用双引号 括起则可使用部分特殊字符。stateName拥有独立的命名空间但在所有其他状态中必须唯一。状态向量元素StateVectorElements的赋值方式为指定单元、寄存器、单元组或扫描链的名称并在括号中附加stateString值。stateString的解释基于关联单元引用的基数与模式状态的使用方式类似。WGL输出转换器WGL Out Converter始终生成状态向量且仅使用ALLSCAN作为唯一的单元引用。chainName为标识符在所有其他扫描链名称中必须唯一。扫描状态声明中未指定的任何单元的值均隐含为XTDS状态字符代表比较未知状态。测试设备用于驱动X的实际值依赖于具体技术并在TDS测试控制语言TCL中进行编程配置。若该部分状态被扫描输出相关比较操作将被屏蔽。状态字符串stateString的合法字符如下二进制基数支持0、1、Z、X十六进制基数支持0-9、A-F、Z、X八进制基数支持0-7、Z、X十进制基数支持0-9。以下是扫描状态块Scan State block的示例。ALLSCAN扫描组的比特顺序与WGL文件中扫描单元块Scan Cell block定义扫描单元及扫描寄存器的顺序一致。如果选择使用ALLSCAN组指定扫描状态向量则必须为扫描单元块中列出的每个扫描单元元素指定一个比特位。scanState state1 : latchA(1) latchB(0) datareg(3F); state2 : latchA(0) latchB(1) datareg(01); state3 : ALLSCAN(XX00000000); stateX : ; end本示例中的stateX状态声明设置了一个所有值均为X比较未知状态的状态。2.4.3.4扫描链扫描链块Scan Chain block定义了连接边界信号与扫描单元及反相器的电路路径配置。每条扫描链均通过标识符或带引号的字符串命名且该名称在信号、扫描单元、总线、扫描寄存器、组及其他扫描链中必须唯一。 WGL扫描链块的语法如下scanchain ChainDecl end扫描链块Scan Chain block的完整BNF语法表示如下ScanChain :: “scanChain” { ChainDecl } “end” ChainDecl :: chainName “[” ChainMembers “]” [ “:” Radix ] “;” ChainMembers :: ( InEdgeSignal | ChainMemList | OutEdgeSignal ) InEdgeSignal :: SignalReference ”,” OutEdgeSignal :: “,” SignalReference ChainMemList :: ChainMemReference { “ , ” ChainMemReference } SignalReference :: signalName ChainMemReference :: ( CellReference | “!” ) CellReference :: ( cellName [ Range ] ) Range :: “[” bitNumber [ “..” bitNumber ] “]” Radix :: “radix” ( “binary” | “octal” | “decimal” | “hex” | “hexadecimal” | “symbolic” )chainName为标识符在所有其他扫描链名称中必须唯一。 链成员列表ChainMembers list表示扫描链元素的有序序列其隐含的移位方向为从左到右。链成员列表表示的是扫描链元素的序列。隐含的移位顺序从左到右)输入边界信号InEdgeSignal或输出边界信号OutEdgeSignal均可省略但如果该扫描链被扫描模式行直接引用则至少需指定其中一个。输入边界信号的信号引用SignalReference必须已预先声明为1比特宽的输入信号或双向信号输出边界信号的信号引用必须已预先定义为1比特宽的输出信号或双向信号。保留符号“!”表示状态反相。扫描链可作为其他扫描链的成员前提是声明不存在递归。若未指定基数Radix则默认使用二进制基数。扫描链块Scan Chain block的示例如下scanchain chain1 [ SC1_IN, datareg[0], latchA, datareg[2], SC1_OUT] : radix octal; chain2 [ SC2_IN, datareg[1], !, datareg[7], datareg[5], latchB, datareg[4], !, datareg[6]]; end该扫描链块Scan Chain block示例展示了两条物理扫描链上扫描单元的排列顺序。chain1的单元列表中第一个和最后一个元素是边界信号SC1_IN和SC1_OUT的名称这两个信号必须已在某个信号块Signals block中预先定义。chain2包含输入信号SC2_IN但无对应的输出信号因此该链可用于控制所列扫描单元的状态但无法观测这些单元的状态。chain2的单元列表中出现了两次保留符号“!”这表示当状态在datareg[1]与datareg[7]之间、以及datareg[4]与datareg[6]之间移位时会发生反相。支持并行扫描链但各扫描链不能完全相同。以下是并行扫描链的合法使用示例。waveform t1 scancell latch1; latch2; latch3; latch4; latch5; latch6; latch7; latch8; end scanstate state1 : latch1(0) latch2(0) latch3(0) latch4(0); state2 : latch1(0) latch2(0) latch3(0) latch4(1); state3 : latch1(0) latch2(0) latch3(1) latch4(1); state4 : latch1(0) latch2(1) latch3(0) latch4(0); state5 : latch1(0) latch2(1) latch3(0) latch4(1); estate1 : latch5(1) latch6(1) latch7(1) latch8(0); estate2 : latch5(1) latch6(1) latch7(0) latch8(1); estate3 : latch5(1) latch6(1) latch7(0) latch8(0); estate4 : latch5(1) latch6(0) latch7(1) latch8(1); estate5 : latch5(1) latch6(0) latch7(1) latch8(0); estateX : ; end signal clock : input; scanIO : bidir; scanOut : output; enable : input; end scanChain chain1 [scanIO, latch1, latch2, latch3, latch4]; chain3 [latch1, latch2, latch3, latch4, scanIO]; chain2 [latch5, latch6, latch7, latch8, scanOut]; end timeplate scanTiming period 200ns clock : input [0ps:D, 50ns:S, 100ns:D]; enable : input [0ps:S]; scanIO : input [0ps:S]; scanIO : output [0ps:X, 50ns:Q]; scanOut : output [0ps:X, 50ns:Q, 90ns:X]; end pattern pat1 (clock, enable, scanIO:I, scanIO:O, scanOut) vector(, scanTiming) : [1 1 1 - X]; scan(,scanTiming) : [1 1 - - -], input[chain1:state1], output[chain3:estate1]; vector(, scanTiming) : [1 1 1 - X]; scan(,scanTiming) : [1 1 - - -], input[chain1:state2], output[chain2:estate2]; vector(, scanTiming) : [1 1 1 - X]; scan(,scanTiming) : [1 1 - - -], input[chain1:state3], output[chain2:estate3]; vector(, scanTiming) : [1 1 1 - X]; scan(,scanTiming) : [1 1 - - -], input[chain1:state4], output[chain2:estate4]; vector(, scanTiming) : [1 1 1 - X]; scan(,scanTiming) : [1 1 - - -], input[chain1:state5], output[chain2:estate5]; end end2.4.3.5时序模板时序模板块TimePlates block用于定义波形的时序组件。时序模板TimePlates承载了整体波形中存在的各类独特时序信息。WGL时序模板块TimePlate block的语法如下timeplate timeplateName TimePlate end时序模板块TimePlates block的完整BNF语法表示如下Timeplates :: “timeplate” timeplateName TimePlate “end” TimePlate :: “period” TimeReference [ “timeset” tsNumber ] Channels TimeReference :: (Time | variableName ) Time :: timeValue Unit Unit :: ( “ps” | “ns” | “us” | “ms” | “sec” ) Channels :: { SignalReference { “,” SignalReference } “:” Track } SignalReference :: signalName [ Range ] Range :: “[” bitNumber [ “..” bitNumber ] “]” Track :: [ Direction ] [ “[” FirstEvent { “,” Event } “]” ] “;” Direction :: ( “input” | “output” | “bidir” ) [ ( “reference” | “timing” ) ] FirstEvent :: “0” Unit “:” TDSstate[“’”( “edge” | “window” ) ] Event :: TimeReference “:” TDSstate [ “’”( “edge” | “window” ) ]timeplateName是一个标识符用于在WGL程序的后续部分中引用该时序模板TimePlate。每个时序模板通过保留字period分配一个总时序周期。时序模板声明定义了该时序模板的组成部分。variableName是一个变量名该变量已在方程式集块EquationSheet block的表达式集子块ExprSet sub-block中预先定义。每个时序模板都有一个总时间周期紧跟在保留字period之后适用于该周期的长度。该周期可以是大于零的数值也可以是已在方程式集块EquationSheet block的表达式集子块ExprSet sub-block中预先定义的变量。注意用于时序模板块TimePlates block中的变量其值以时间单位表示时必须具有实际意义。时序模板TimePlate包含一个信号通道列表。从概念上讲通道是一个或多个信号名的容器每个信号名后均紧跟一条轨迹。每个通道可包含一个或多个信号、总线、组或多路复用组件multiplexed parts。这些实体必须已在信号块Signals block中预先声明。每个通道将信号与一条轨迹相关联轨迹本身包含波形的方向、形状和时序的实际信息。用于表示波形的TDS状态必须与该方向输入或输出对应的可用状态一致。有关TDS状态字符列表请参阅第2-73页的表2-7。共享同一通道的所有信号必须具有兼容的方向。track包含了波形的方向形状和时序信息注意虽然允许使用多路复用组件multiplexed parts但不允许使用多路复用信号或总线即那些在信号块Signals block中标记有多路复用属性mux attribute、且其时序参数来自多路复用组件的信号或总线。实际上时序是为多路复用组件定义的这些组件随后会为其在信号块中关联的多路复用信号或总线提供数据。轨迹中的第一个事件必须具有字面时间值 0不允许使用变量提供的时序。后续事件可使用字面时间值或变量指定其时序若使用变量该变量必须已在方程式集块EquationSheet block的表达式集子块ExprSet sub-block中预先定义。有关详细信息请参阅第 2-56 页的表达式集ExprSet。 保留字 timeset 可用于定义一个与该时序模板TimePlate中时序相关联的测试器专用时序集名称。该时序集在 WaveBridge 运行生成的 WDB波形数据库文件中定义。 以下是一个简单的时序模板块TimePlates block示例timeplate read period 250ns timeset 1 clock: input [0ps:D, 50ns:U, 100ns:D, 150ns:U, 200ns:D, 250ns:U]; in : input [0ps:D,170ns:U]; out : output [0ps:X,180ns:Q’edge, 220ns:X]; end双向信号若使用保留字bidir指定方向可占用一个通道若同时使用保留字input和output定义方向则占用两个通道。前者为通道进行周期内输入/输出切换后者为通道进行周期间输入/输出切换。这两种方式可组合使用单个信号最多可占用三个通道。每条轨迹内包含一个以逗号分隔的事件列表。每个事件由时间time定义的时间值和一个TDS状态组成。对于输入通道必须使用TDS强制逻辑状态字符对于输出通道必须使用TDS期望逻辑状态字符对于双向通道可同时使用TDS强制状态字符和期望状态字符。 TDS状态字符“S”表示实际状态字符将在该位置“替换”到波形中实际状态字符来自模式块pattern block对应列的数据位。换句话说当轨迹包含“S”状态字符时实际状态由模式数据推导得出。 TDS状态字符“P”表示该状态取自之前的状态来自之前相邻的模板。TDS状态字符“C”表示该状态是替换状态的补码。每一个事件由时间和状态信息组成时间模块中定义了信号值的替换规则对于输出通道必须使用比较逻辑状态。TDS状态字符“Q”表示该状态取自模式块pattern block对应列的数据位。TDS状态字符“R”表示该状态是替换状态的补码。 输出状态后可跟可选保留字edge边沿或window窗口默认值用于指定边沿选通或窗口选通。在WaveBridge运行过程中其资源分配功能会尝试分配该保留字所指定的选通类型。上述示例中使用了保留字edge。edge和window指示比较方式以下是一个典型的时序模板块TimePlates block示例包含信号块Signals block中的对应信号定义以及模式块Patterns block中定义的模式数据。注意多路复用总线multiplexed buses的使用。timeplate writeTP period 80ns edge0: input[0ps:D, 2ns:U, 8ns:D, 10ns:?]; # Clock for data bit bus1[0] edge1: input[0ps:?, 10ns:D, 12ns:U, 18ns:D, 20ns:?]; # Clock for data bit bus1[1] edge2: input[0ps:?, 20ns:D, 22ns:U, 28ns:D, 30ns:?]; # Clock for data bit bus1[2] edge3: input[0ps:?, 30ns:D, 32ns:U, 38ns:D, 40ns:?]; # Clock for data bit bus1[3] edge4: input[0ps:?, 40ns:D, 42ns:U, 48ns:D, 50ns:?]; # Clock for data bit bus2[0] edge5: input[0ps:?, 50ns:D, 52ns:U, 58ns:D, 60ns:?]; # Clock for data bit bus2[1] edge6: input[0ps:?, 60ns:D, 62ns:U, 68ns:D, 70ns:?]; # Clock for data bit bus2[2] edge7: input[0ps:?, 70ns:D, 72ns:U, 78ns:D, 80ns:?]; # Clock for data bit bus2[3] rd/_wr: input[0ps:?, 20ns:D, 80ns:?]; # Indicate write cycle bus1[0]: input[0ps:D, 5ns:S, 10ns:?]; # Data bit 0 bus1[1]: input[0ps:?, 10ns:D, 15ns:S, 20ns:?];# Data bit 1 bus1[2]: input[0ps:?, 20ns:D, 25ns:S, 30ns:?];# Data bit 2 bus1[3]: input[0ps:?, 30ns:D, 35ns:S, 40ns:?];# Data bit 3 bus2[0]: input[0ps:?, 40ns:D, 45ns:S, 50ns:?]; # Data bit 4 bus2[1]: input[0ps:?, 50ns:D, 55ns:S, 60ns:?]; # Data bit 5 bus2[2]: input[0ps:?, 60ns:D, 65ns:S, 70ns:?]; # Data bit 6 bus2[3]: input[0ps:?, 70ns:D, 75ns:S, 80ns:?]; # Data bit 7 end pattern load1( FastClock, rd/_wr, Databus) vector(, writeTP) : (11111111 1 10101010XXXXXXXX); end从示例中可以看出多路复用组件multiplexed parts无需定义为时序轨迹timing track的连续片段为满足特定测试器的需求多路复用组件的已定义时序中允许存在间隙。多路复用组件在时序模板块TimePlate block中可按任意顺序出现时序轨迹中定义的时序亦是如此。例如edge7 和 edge2 的时序可以合法定义为edge2: input[0ps:?, 70ns:D, 72ns:U, 78ns:D, 80ns:?]; . . . edge7: input[0ps:?, 20ns:D, 22ns:U, 28ns:D, 30ns:?];如你所见这些时序值的顺序与示例中所示的顺序相反。模式数据11111111 1 10101010XXXXXXXX会映射到相应的总线和信号。边沿选通edge strobe是向测试器比较器硬件发出的指令要求其对被测器件DUT的输出进行瞬时采样并将采样结果与期望数据expect data进行比较。窗口选通window strobe则指示测试器比较器硬件验证期望数据在整个时间段窗口内是否持续出现在被测器件DUT上。若未指定任何一个保留字所使用的WaveBridge工具会默认该事件为窗口选通。定义轨迹时需确保为后续每个事件分配递增的时间值无论使用常量时间值还是变量波形的第一个事件必须始终从0皮秒0pS开始不允许将第二个事件定义在20纳秒20nS、第三个事件定义在15纳秒15nS。请注意所有事件时间均相对于周期起始时刻。时间必须递增第一个时间的时间必须从0ps开始所有事件的时间都是相对于周期的起始时间。用于扫描模式行的时序模板TimePlates必须满足特定要求终止于同一模式行所引用扫描链的信号必须具有采样状态即出现在扫描链起始端的信号在其各自的波形中必须包含S状态字符而出现在扫描链末端的信号必须包含Q状态字符。 任何其他状态字符均违反上述限制运行TDS WGL输入转换器TDS WGL In Converter时会生成TDS WDB检查工具TDS WDB Checker Utility错误信息或在将包含该时序模板的WDB文件作为输入提供给TDS扫描桥模块TDS ScanBridge module时生成TDS测试器规则检查器TDS Tester Rules Checker错误信息。其他信号的模式值Pattern values可选填非必填项。如果时间模块中使用扫描pattern在扫描链的开始必须是S状态最后必须是Q状态对照状态表就明白了。以下是一个可用于扫描模式行的时序模板块TimePlates block示例timeplate runSC period 500ns SC1_IN : input[0pS:S, 250nS:D]; SC2_IN : input[0pS:S, 250nS:D]; SC1_OUT : output[0pS:X, 250nS:Q]; SC_CLOCK : input[0pS:U, 250nS:D]; SC_EN : input[0pS:U]; BUS_D : output[0pS:X]; ADDR_IN : input[0pS:P]; end注意在上述示例中只有包含未解析状态如S或Q对应的TDS状态字符的信号才是扫描信号即终止扫描链的信号。该时序模板块示例展示了如何编码一种协议以并行测试chain1和chain2。扫描链已在第2-29页的扫描链块示例中预先定义。两个链共享公共扫描时钟SC_CLOCK和使能引脚SC_EN。输入信号SC1_IN和SC2_IN在周期的前半段被驱动输出信号SC1_OUT在周期的后半段被采样。其他与扫描链无关的输入信号如ADDR_IN保持“之前”的值即扫描操作开始前的取值。非扫描输出信号如BUS_D被屏蔽。有关详细信息请参阅后续的模式块Patterns部分。你可以在时序模板块TimePlates block中使用变量替代字面时间值。这些变量必须预先在方程式集块EquationSheet block的默认表达式集子块ExprSet sub-block中定义。有关详细信息请参阅第2-56页的表达式集ExprSet部分。 变量可用于替代时序模板周期值TimePlate period value和任意事件时间。你可以混合使用字面时间值和变量但时序轨迹time track中的第一个事件必须始于0皮秒0pS且必须以字面时间值表示。以下示例展示了如何在时序模板块TimePlate block中使用已在方程式集块EquationSheet block中定义的变量。变量的使用以粗体突出显示timeplate ts1 period write_cycle clk : input[0pS:D, 20nS:U, tclk1:D, 90nS:U]; ale : input[0pS:D, t1:S, t2:D]; RE : input[0pS:D, 20nS:S, 50nS:D]; OE : input[0pS:P, 30nS:S]; strobe : output[0pS:X, t3:Q, 90nS:X]; end下一篇预告WGL波形生成语言—新手入门学习四

相关新闻

车身域自动化测试:从CAN/LIN总线到Python框架的工程实践

车身域自动化测试:从CAN/LIN总线到Python框架的工程实践

1. 从“手工作坊”到“自动化产线”:车身域测试的必然演进 如果你在新能源汽车的研发或测试部门待过,尤其是负责车身域控制器(BCM)、无钥匙进入启动系统(PEPS)这类功能,一定对下面这个场景不陌生…

2026/8/20 7:33:04 阅读更多 →
为什么你需要一个扑克机器人?三大平台自动玩牌的开源答案

为什么你需要一个扑克机器人?三大平台自动玩牌的开源答案

为什么你需要一个扑克机器人?三大平台自动玩牌的开源答案 【免费下载链接】Poker Fully functional Pokerbot that works on PartyPoker, PokerStars and GGPoker, scraping tables with Open-CV (adaptable via gui) or neural network and making decisions based…

2026/8/18 17:37:06 阅读更多 →
SCAIL-2 扩散模型入手指南:五个关键环节完成选型、部署与出图调优

SCAIL-2 扩散模型入手指南:五个关键环节完成选型、部署与出图调优

SCAIL-2 扩散模型入手指南:五个关键环节完成选型、部署与出图调优 【免费下载链接】SCAIL-2 项目地址: https://ai.gitcode.com/hf_mirrors/Comfy-Org/SCAIL-2 SCAIL-2 是一款专为 ComfyUI 环境重打包的 WAN 2.1 14B 扩散模型,仓库同时提供 fp16…

2026/8/21 0:15:57 阅读更多 →

最新新闻

多目标定位优化:粒子群与海洋捕食者算法在火箭残骸轨迹反演中的应用

多目标定位优化:粒子群与海洋捕食者算法在火箭残骸轨迹反演中的应用

1. 项目概述:从“找残骸”到“算残骸”的思维跃迁“多个火箭残骸的准确定位”,这个标题听起来像是航天测控部门的专业课题,离我们普通人的世界很远。但如果你把它抽象一下,本质上就是一个“在复杂约束条件下,利用有限且…

2026/8/21 4:16:37 阅读更多 →
C++数据结构第一章底层原理与实战调试指南

C++数据结构第一章底层原理与实战调试指南

1. 这不是“抄答案”,而是用C重写第一章的思维训练场你搜到这个标题时,大概率正坐在宿舍台灯下,手边摊着王立柱老师那本《数据结构与算法(C版)》,第一页习题还没动笔,心里已经冒出三个问号&…

2026/8/21 4:16:37 阅读更多 →
红米手表6三大核心功能深度解析:从快捷键到健康监测的实用指南

红米手表6三大核心功能深度解析:从快捷键到健康监测的实用指南

1. 先搞清楚红米手表6的核心价值,别只当个看时间的工具如果你刚拿到红米手表6,或者正在考虑入手,最该关心的不是它有多少种表盘,而是它到底能帮你解决哪些具体问题。很多人买回来新鲜两天就放抽屉吃灰,核心原因就是没搞…

2026/8/21 4:16:37 阅读更多 →
C++数据结构第一章:用工程化思维重读算法复杂度

C++数据结构第一章:用工程化思维重读算法复杂度

1. 这不是“抄答案”,而是用C重走数据结构奠基之路如果你在搜索引擎里输入“c数据结构与算法王立柱课后题第一章答案”,大概率会看到一堆零散的代码片段、百度文库的付费下载链接,或者某位同学手写的扫描件截图——但这些几乎都没法真正帮你把…

2026/8/21 4:16:37 阅读更多 →
终端智能体基准测试:TerminalWorld如何评估AI在真实环境下的可靠性

终端智能体基准测试:TerminalWorld如何评估AI在真实环境下的可靠性

1. 项目概述:为什么我们需要一个“终端世界”来评测智能体?如果你最近关注AI领域,尤其是围绕大语言模型(LLM)构建的智能体(Agents),可能会发现一个现象:演示视频里&#…

2026/8/21 4:16:37 阅读更多 →
从零转型AI大模型:学习路径与求职实战指南

从零转型AI大模型:学习路径与求职实战指南

1. 从传统行业到AI大模型的转型之路 去年这个时候,我还在某互联网公司做着与AI毫不相关的工作。每天面对重复性的业务需求,越来越感受到职业发展的瓶颈。直到偶然接触到大模型技术,那种"原来还能这样"的震撼感,彻底改变…

2026/8/21 4:15:36 阅读更多 →

日新闻

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

机场边检旅客定位系统国产化白皮书:算法、硬件、底座平台全程自主

前言随着国家数字基础设施信创替代、关键技术自主可控战略持续深化,口岸智慧安防、边检智能管控领域正全面进入国产化、自主化、安全可控升级周期。当前国内机场边检旅客识别与定位体系长期依赖国外商用视觉算法、进口成像硬件、闭源通用计算平台,存在核…

2026/8/21 0:00:42 阅读更多 →
别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱

别再把“数字孪生”当空间智能了!镜像视界揭开四维时空的真正面纱当下数字化建设浪潮中,很多项目将三维可视化、视频贴图叠加的数字孪生等同于空间智能。传统数字孪生更多停留在三维场景复刻,擅长把物理世界“画出来、展示出来”,…

2026/8/21 0:00:42 阅读更多 →
105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40°C到85°C的影像质量一致性——ISP参数温漂补偿与产线标定策略

105、车载温度范围-40C到85C的影像质量一致性——ISP参数温漂补偿与产线标定策略 去年冬天在北方某车厂做A样评审,凌晨四点的黑河试验场,零下三十三度。客户拿了一台冷启动的车,中控屏上倒车影像全是雪花噪点,暗部细节直接糊成一片。我第一反应是sensor温度没上来,暗电流…

2026/8/21 0:00:42 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/19 11:55:16 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/20 6:11:08 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →