CN103955571A - 一种针对抗辐照芯片的软错误注入和验证方法 - Google Patents
一种针对抗辐照芯片的软错误注入和验证方法 Download PDFInfo
- Publication number
- CN103955571A CN103955571A CN201410163317.7A CN201410163317A CN103955571A CN 103955571 A CN103955571 A CN 103955571A CN 201410163317 A CN201410163317 A CN 201410163317A CN 103955571 A CN103955571 A CN 103955571A
- Authority
- CN
- China
- Prior art keywords
- chip
- verification
- soft error
- fault
- injected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及一种针对抗辐照芯片的软错误注入和验证方法,属于抗辐照芯片的验证技术领域,特别适用于宇航等有抗辐照要求的芯片的软错误注入和验证。该方法通过将错误注入模型与从网表中提取的寄存器列表来生成UCLI命令集,并将这些命令集与常规的验证平台并行运行,这种方法一方面不影响正常的验证流程从而节省了整个验证流程的时间使得传统验证平台开发与错误注入模型建立可以并行进行,另一方面,通过错误注入模型的参数设定灵活配置错误注入的方式从而减少了传统方法中分析代码单独设计测试用例的时间开销。本发明采用将传统的验证平台与UCLI命令集并行执行的方式,不需要对验证平台进行二次开发,有利于芯片已有验证平台的复用,减少时间开销。
Description
技术领域
本发明涉及一种针对抗辐照芯片的软错误注入和验证方法,属于抗辐照芯片的验证技术领域,特别适用于宇航等有抗辐照要求的芯片的软错误注入和验证。
背景技术
抗辐照芯片是航天电子产品的重要组成部分,由于太空中各种单粒子效应的影响,与地面芯片相比宇航级芯片对抗辐照有很高的要求,如果不能满足抗辐照指标,将会很容易在太空中发生单粒子翻转,导致存储的数据出现错误,会更航天器的正常工作产生很大影响,甚至使得航天器陷入瘫痪。
为满足航天电子芯片对抗辐照的要求,在芯片设计时通常用过时间或空间冗余等技术来构建具备一定抗单粒子翻转能力的芯片结构,通过这些冗余,保证当单个粒子注入时,会通过多路备份的互相比对来判定出正确的数据输出,从而提高整体抗单粒子翻转的能力。
针对这类芯片设计,需要在验证时对各种单粒子注入的情形进行模拟,以分析抗单粒子结构的设计的合理性,而传统的验证方式是通过测试用例来制造出对应的单粒子故障出现的情形,而构建方式需要对芯片底层结构有很深入的理解,花费大量的时间分析RTL代码,严重影响了常规验证的效率,尤其对于超大规模集成电路而言,验证的时间开销更大,增大了芯片开发周期,对于时间节点要求严格的航天产品,这种验证方式很难满足实际需求。
发明内容
本发明的目的在于克服现有技术的上述不足,提供一种针对抗辐照芯片的软错误注入和验证方法,该方法通过将错误注入模型与从网表中提取的寄存器列表来生成UCLI命令集,并将这些命令集与常规的验证平台并行运行,这种方法一方面不影响正常的验证流程从而节省了整个验证流程的时间使得传统验证平台开发与错误注入模型建立可以并行进行,另一方面,通过错误注入模型的参数设定灵活配置错误注入的方式从而减少了传统方法中分析代码单独设计测试用例的时间开销。
本发明的上述目的是通过如下技术方案予以实现的:
本发明的一种针对抗辐照芯片的软错误注入和验证方法,包括如下步骤:
1)基于工艺库文件将芯片设计的RTL代码综合成门级网表,即根据芯片流片的工艺配置相应的工艺库文件,将RTL代码通过综合工具生成用于后端设计的门级网表;
2)基于工艺库所对应的数据手册得到该工艺库中的各种触发器的类型和对应的端口定义,从步骤1)得到的门级网表中提取这些触发器汇总成为触发器列表;
3)配置注入错误模型,是指以文本的方式指定故障注入的触发器的时间顺序和注入的故障打翻每个触发器持续的时间;其中,故障注入的触发器的时间顺序可以按照一个自定义的时间点依次注入,也可以随机选择注入故障的时间点;而注入的故障打翻触发器持续的时间可以参考所步骤1)中芯片流片的工艺下的实测数据;
4)根据步骤3)得到的注入错误模型和步骤2)得到的触发器列表生成相应的UCLI命令集,即根据步骤3)得到的注入错误模型来设定步骤2)得到的触发器列表中每个触发器打翻的次序和每次打翻所持续的时间,根据不同的触发器的端口定义将其中的数据输出端打翻,根据上述两方面的配置形成UCLI命令集,可供验证时直接执行;
5)根据芯片功能基于步骤1)得到的门级网表构建仿真验证平台,即基于步骤1)得到的门级网表,并根据芯片的具体功能,构建仿真验证平台,该平台支持UCLI命令集的运行,支持对仿真结果正确与否的判断,并能覆盖芯片的功能需求;
6)将步骤5)得到的仿真验证平台的执行与步骤4)得到的UCLI命令集运行并行进行,即在步骤5)设计的验证平台运行测试用例时加入步骤4)中产生的UCLI命令集,两者并行执行,从而使得在实际仿真过程中对单粒子翻转进行模拟;
7)根据步骤6)得到的运行结果分析芯片在错误注入下的运行情况,由于步骤5)中的验证平台支持对结果正确与否的判断,通过分析这些判断结果得到在单粒子故障注入时的实际运行结果。
步骤4)中的UCLI命令集通过对特定触发器的内容进行强制赋值来模拟软错误所造成的结果,并根据软错误的持续时间来设定解除这种强制赋值的具体时刻。
步骤5)中的仿真验证平台设计时不需要考虑软错误注入的情形,只需按照芯片的功能需求搭建验证环境。
本发明相比现有技术具有如下优点:
本发明采用将传统的验证平台与UCLI命令集并行执行的方式,不需要对验证平台进行二次开发,有利于芯片已有验证平台的复用,减少时间开销;
本发明采用将传统的验证平台与UCLI命令集并行执行的方式,将传统的验证工作与故障模型设定和验证分开,提升了整个验证平台的搭建速度;
本发明方法简单,易于在目前主流的Linux服务器上搭建,不需要额外的配置脚本等开销;
本方面配置注入故障的方式灵活,可以自定义各种注入故障的模式,提高抗辐照验证的效率。
具体实施方式
下面结合实施例对本发明作进一步详细的描述。
实施例
1)基于SMIC0.13um工艺库文件将四串口芯片设计的RTL代码综合成门级网表,可用于后端布局布线使用;
2)基于工艺库所对应的数据手册得到SMIC0.13um工艺库中的各种触发器的类型和对应的端口定义,以SMIC0.13um工艺库为例,其中的触发器类型和端口定义如下:
从步骤1)得到的门级网表中提取这些类型的触发器汇总成为触发器列表,由于本实例采用的触发器类型均为DFFRHQX8,形成的触发器列表如下(每行一个触发器,具体到对应的模块,由于触发器比较多,简单列举了其中的3个);
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p0_S0
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p1_S0
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p2_S0
3)配置注入错误模型,是指以文本的方式指定故障注入的触发器的时间顺序和注入的故障打翻每个触发器持续的时间;其中,故障注入的触发器的时间顺序可以按照一个自定义的时间点依次注入,也可以随机选择注入故障的时间点;而注入的故障打翻触发器持续的时间可以参考所步骤1)中芯片流片的工艺下的实测数据,由于采用的SMIC0.13um工艺下的单粒子翻转的持续时间约为200ps,所以,以步骤2中的三个触发器为例,文本如下;
@100ns
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p0_S0=1
@200ps
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p0_S0=0
@200ps
释放寄存器m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p0_S0
@100ns
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p1_S0=1
@200ps
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p1_S0=0
@200ps
释放寄存器m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p1_S0
@100ns
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p2_S0=1
@200ps
m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p2_S0=0
@200ps
释放寄存器m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p2_S0
4)根据步骤3)得到的注入错误模型和步骤2)得到的触发器列表生成相应的UCLI命令集,即根据步骤3)得到的注入错误模型来设定步骤2)得到的触发器列表中每个触发器打翻的次序和每次打翻所持续的时间,根据不同的触发器的端口定义将其中的数据输出端打翻,根据上述两方面的配置形成UCLI命令集,可供验证时直接执行,以针对上述三个触发器注入错误为例,其数据输出端为Q,所生成的UCLI命令集如下:
run100ns
force soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p0_SO.Q"1"
run200ps
force soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p0_SO.Q"0"
run200ps
release soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p0_SO.Q
;#
run100ns
force soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p1_SO.Q"1"
run200ps
force soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p1_SO.Q"0"
run200ps
release soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p1_SO.Q
;#
run100ns
force soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p2_SO.Q"1"
run200ps
force soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p2_SO.Q"0"
run200ps
release soc_top.DUT.m16x54_core_inst_m16x50_inst_3_U8_IP_A_reg_1_.tmr_dff_p2_SO.Q
;#
run
5)根据芯片功能基于步骤1)得到的四串口芯片的门级网表构建仿真验证平台,即基于步骤1)得到的四串口芯片的门级网表,根据芯片的具体功能,构建仿真验证平台,该平台支持UCLI命令集的运行,支持对仿真结果正确与否的判断,并能覆盖芯片的功能需求。本实例中,采用Synopsys的验证软件VCSCompiler构建该仿真验证平台,该平台操作过程如下;
首先,定义测试的场景,根据四串口支持的各种类型的数据收发需求设定测试场景和正确的输出结果;
其次,通过调用验证用的CPU模型和串口的VIP模型来实现测试场景,然后,输出相应的给被测芯片的测试激励;
再次,将测试激励输出给被测的四路串口芯片,将芯片的输出结果与测试场景中定义的正确结果进行对比,将对比的结果输出给打分板;
最后,汇总打分板信息,分析验证的功能覆盖率;
6)将步骤5)得到的仿真验证平台的执行与步骤4)得到的UCLI命令集运行并行进行,即在步骤5)设计的验证平台运行测试用例时加入步骤4)中产生的UCLI命令集,两者并行执行,并行执行的方式为在Makefile中加入调用UCLI命令集的语句,在原来的Makefile中的vcs调用命令后面加上如下语句:-debug_pp-ucli-i xxx.trig,其中xxx.trig为并行执行的UCLI命令集,从而使得在实际仿真过程中对单粒子翻转进行模拟;
7)根据步骤6)得到的运行结果分析芯片在错误注入下的运行情况,由于步骤5)中的验证平台支持对结果正确与否的判断,通过分析这些判断结果得到在单粒子故障注入时的实际运行结果。本实例的实际运行结果统计如下:
这里显示前两个用例的结果,最终输出为所有用例均PASSED,表示在错误注入情况下所有功能均正确。
以上所述,仅为本发明最佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
本发明说明书中未作详细描述的内容属于本领域专业技术人员的公知技术。
Claims (6)
1.一种针对抗辐照芯片的软错误注入和验证方法,其特征在于步骤为:
1)基于工艺库文件将芯片设计的RTL代码综合成门级网表;
2)基于工艺库所对应的数据手册得到该工艺库中的各种触发器的类型和对应的端口定义,从步骤1)得到的门级网表中提取这些触发器汇总成为触发器列表;
3)配置注入错误模型:是指以文本的方式指定故障注入的触发器的时间顺序和注入的故障打翻每个触发器持续的时间;
4)根据步骤3)得到的注入错误模型和步骤2)得到的触发器列表生成相应的UCLI命令集;
5)根据芯片功能基于步骤1)得到的门级网表构建仿真验证平台;
6)将步骤5)得到的仿真验证平台的执行与步骤4)得到的UCLI命令集运行并行进行;
7)根据步骤6)得到的运行结果分析芯片在错误注入下的运行情况,通过分析这些运行情况得到在单粒子故障注入时的实际运行结果。
2.根据权利要求1所述的一种针对抗辐照芯片的软错误注入和验证方法,其特征在于:步骤3)中,故障注入的触发器的时间顺序按照一个自定义的时间点依次注入。
3.根据权利要求1所述的一种针对抗辐照芯片的软错误注入和验证方法,其特征在于:步骤3)中,故障注入的触发器的时间顺序随机选择注入故障的时间点。
4.根据权利要求1所述的一种针对抗辐照芯片的软错误注入和验证方法,其特征在于:步骤3)中,注入的故障打翻触发器持续的时间参考所步骤1)中芯片流片的工艺下的实测数据。
5.根据权利要求1所述的一种针对抗辐照芯片的软错误注入和验证方法,其特征在于:步骤5)中构建的仿真验证平台,支持UCLI命令集的运行,支持对仿真结果正确与否的判断,并能覆盖芯片的功能需求。
6.根据权利要求1所述的一种针对抗辐照芯片的软错误注入和验证方法,其特征在于:步骤4)中的UCLI命令集通过对特定触发器的内容进行强制赋值来模拟软错误所造成的结果,并根据软错误的持续时间来设定解除这种强制赋值的具体时刻。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410163317.7A CN103955571B (zh) | 2014-04-22 | 2014-04-22 | 一种针对抗辐照芯片的软错误注入和验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410163317.7A CN103955571B (zh) | 2014-04-22 | 2014-04-22 | 一种针对抗辐照芯片的软错误注入和验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103955571A true CN103955571A (zh) | 2014-07-30 |
CN103955571B CN103955571B (zh) | 2017-07-28 |
Family
ID=51332846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410163317.7A Active CN103955571B (zh) | 2014-04-22 | 2014-04-22 | 一种针对抗辐照芯片的软错误注入和验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103955571B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484255A (zh) * | 2014-12-02 | 2015-04-01 | 北京空间飞行器总体设计部 | 一种验证系统级单粒子软错误防护能力的故障注入装置 |
CN104660466A (zh) * | 2015-02-06 | 2015-05-27 | 深圳先进技术研究院 | 一种安全测试方法及系统 |
CN105956302A (zh) * | 2016-05-10 | 2016-09-21 | 北京控制工程研究所 | 一种可配置的抗辐射芯片前端网表自动生成方法 |
CN106650457A (zh) * | 2015-11-02 | 2017-05-10 | 华邦电子股份有限公司 | 用于对具有拦截器的布局进行漏洞评估的计算机化机构 |
CN108134598A (zh) * | 2018-01-16 | 2018-06-08 | 安徽理工大学 | 高频电路中对称的抗辐射锁存器 |
CN108363894A (zh) * | 2018-05-04 | 2018-08-03 | 西安电子科技大学 | 一种电路级单粒子效应仿真平台 |
CN109558649A (zh) * | 2018-11-08 | 2019-04-02 | 北京控制工程研究所 | 一种面向宇航芯片的寄存器单粒子效应模拟仿真方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080215925A1 (en) * | 2007-03-02 | 2008-09-04 | International Business Machines Corporation | Distributed fault injection mechanism |
CN101919162A (zh) * | 2008-01-17 | 2010-12-15 | 坚固芯片公司 | 用于抗软错误的电子设备的布局方法以及抗辐射的逻辑单元 |
CN102540062A (zh) * | 2011-12-29 | 2012-07-04 | 北京航空航天大学 | 一种针对sram型fpga的随机翻转故障注入方法 |
-
2014
- 2014-04-22 CN CN201410163317.7A patent/CN103955571B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080215925A1 (en) * | 2007-03-02 | 2008-09-04 | International Business Machines Corporation | Distributed fault injection mechanism |
CN101919162A (zh) * | 2008-01-17 | 2010-12-15 | 坚固芯片公司 | 用于抗软错误的电子设备的布局方法以及抗辐射的逻辑单元 |
CN102540062A (zh) * | 2011-12-29 | 2012-07-04 | 北京航空航天大学 | 一种针对sram型fpga的随机翻转故障注入方法 |
Non-Patent Citations (4)
Title |
---|
LU.HOGNBO: "《VCS学习总》", 《HTTP://WENKU.BAIDU.COM/LINK?URL=8Z1ORET3UYD-HCRULXKV-QHGYUKWJAZ5PRFXOZDS_CWIWIVXUVGAMPU96HBBXJZ7AWW_CZ0MQ3FOIGXAZ7DGMKDYMAG38G7TZ09FGQPZGLS&FROM_MOD=DOWNLOAD》 * |
刘智斌 等: "《基于动态局部重配置的FPGA抗辐射模拟》", 《计算机工程》 * |
江丽君: "《数字集成电路故障模型研究及故障注入平台设计》", 《中国优秀硕士论文全文数据库》 * |
谷振宇 等: "《软件故障注入方法及其仿真应用》", 《福建师范大学学报(自然科学版)》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104484255A (zh) * | 2014-12-02 | 2015-04-01 | 北京空间飞行器总体设计部 | 一种验证系统级单粒子软错误防护能力的故障注入装置 |
CN104660466B (zh) * | 2015-02-06 | 2018-02-09 | 深圳先进技术研究院 | 一种安全测试方法及系统 |
CN104660466A (zh) * | 2015-02-06 | 2015-05-27 | 深圳先进技术研究院 | 一种安全测试方法及系统 |
CN106650457B (zh) * | 2015-11-02 | 2019-08-27 | 华邦电子股份有限公司 | 用于对具有拦截器的布局进行漏洞评估的计算机化机构 |
CN106650457A (zh) * | 2015-11-02 | 2017-05-10 | 华邦电子股份有限公司 | 用于对具有拦截器的布局进行漏洞评估的计算机化机构 |
CN105956302B (zh) * | 2016-05-10 | 2019-07-12 | 北京控制工程研究所 | 一种可配置的抗辐射芯片前端网表自动生成方法 |
CN105956302A (zh) * | 2016-05-10 | 2016-09-21 | 北京控制工程研究所 | 一种可配置的抗辐射芯片前端网表自动生成方法 |
CN108134598A (zh) * | 2018-01-16 | 2018-06-08 | 安徽理工大学 | 高频电路中对称的抗辐射锁存器 |
CN108134598B (zh) * | 2018-01-16 | 2021-02-09 | 安徽理工大学 | 高频电路中对称的抗辐射锁存器 |
CN108363894A (zh) * | 2018-05-04 | 2018-08-03 | 西安电子科技大学 | 一种电路级单粒子效应仿真平台 |
CN108363894B (zh) * | 2018-05-04 | 2021-05-11 | 西安电子科技大学 | 一种电路级单粒子效应仿真平台 |
CN109558649A (zh) * | 2018-11-08 | 2019-04-02 | 北京控制工程研究所 | 一种面向宇航芯片的寄存器单粒子效应模拟仿真方法 |
CN109558649B (zh) * | 2018-11-08 | 2023-06-09 | 北京控制工程研究所 | 一种面向宇航芯片的寄存器单粒子效应模拟仿真方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103955571B (zh) | 2017-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103955571A (zh) | 一种针对抗辐照芯片的软错误注入和验证方法 | |
Lopez-Ongil et al. | Autonomous fault emulation: A new FPGA-based acceleration system for hardness evaluation | |
CN104536303B (zh) | 一种故障注入方法 | |
CN105425201B (zh) | 用于智能电能表软件可靠性检测的计量芯片模拟测试方法 | |
CN104461810A (zh) | 一种提高嵌入式处理器功能验证效率的方法 | |
CN105069256B (zh) | 一种基于tmr的实现和故障注入仿真平台及仿真方法 | |
CN105956302B (zh) | 一种可配置的抗辐射芯片前端网表自动生成方法 | |
US8265918B1 (en) | Simulation and emulation of a circuit design | |
CN105005015A (zh) | 一种基于硬件电路故障注入的电路故障仿真系统 | |
CN109558649A (zh) | 一种面向宇航芯片的寄存器单粒子效应模拟仿真方法 | |
CN108038283A (zh) | 一种虚拟时钟同步的高效高覆盖率SoC验证平台 | |
CN114325333A (zh) | 一种高效率规范化的soc系统级验证方法及装置 | |
CN103049374B (zh) | 一种自动化测试的方法及装置 | |
CN106598799A (zh) | 一种故障注入模拟系统及故障管理系统 | |
CN103455672A (zh) | 一种fpga仿真测试用例自动化回归方法 | |
CN103617307B (zh) | 一种宇航用器件总剂量辐照试验板的可靠性设计方法 | |
CN106528364B (zh) | 基于存储器访问驱动的自动化协同验证平台的搭建方法 | |
CN106844126B (zh) | 一种航天器用数字硬ip核功能及性能评测方法 | |
CN102957553A (zh) | 一种激励代码自动生成方法和装置 | |
CN102495778A (zh) | 一种测试单包正则匹配逻辑的系统和方法 | |
CN106200353B (zh) | 一种用于测试双芯电能表的时钟的方法 | |
US11669666B1 (en) | Methods relating to circuit verification | |
US9183334B1 (en) | Verification of connectivity of signals in a circuit design | |
CN115270674A (zh) | 一种基于自动化的带时序裕量的lib提取方法和装置 | |
CN105306265A (zh) | 一种针对交换机系统仿真验证的数据包追踪方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |