在TMAX simulation里什么是 “unload 2“ ?

本文探讨了在DFT模拟过程中遇到的unload2现象,指出它表示在最后一个pattern中由于需要自我比较而调用了两次load_unload操作。通过分析log信息和报告命令,解释了unload2的含义和load_count的统计方式,并强调了report_patterns-all-type在理解这一过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录


什么是unload 2?其实做DFT的人,在sim的时候都会见到这个log信息,我之前就产生过疑惑了,只是在周围同事,也没人思考这种问题。

正如下图所示:
在最后一只pattern pattern 4的时候开始出现unload 2(T=5400ns V=55)
在这里插入图片描述
这是指的是这只pattern调用了多次 load_unload
我们可以看看如下图所示的pattern:
如下图所示,在最后一支pattern 4中,分为了两部分:
一部分是pattern 4 另一部分是 end 4 unload
可以看到end 4 unload 也调用了load_unload
在这里插入图片描述
因为在load_unload的时候,我们知道每次调用一次load_unload时候,同时进行比值和load,但是比值是上一只pattern的值,因此,对于最后一只patern来讲,当然会需要自己比值自己的这只pattern。因此需要调用两次load_load。

如下图所示,当你使用report_patterns -all -type的时候,其中load_count就是指的是你调用load_unload的次数。
但是需要注意的是,这个cmd并不会把end 4 unload计算到其中。所以,下面pattern 4显示的仍然是pattern 4为1.

在这里插入图片描述
使用report_pattern -all还可以查看整个pattern的过程

在这里插入图片描述

### 重放攻击的概念 重放攻击是指攻击者拦截合法用户的通信数据包,并将其重新发送给接收方以冒充该用户的行为。这种攻击方式可以应用于多种场景,比如网络登录认证过程中的身份验证信息、金融交易指令等。通过这种方式,即使不知道具体内容也可以重复利用捕获到的信息完成非法操作。 为了有效应对这一威胁,在设计系统时应考虑加入防重放机制[^2]。 ### 如何预防重放攻击的安全措施 #### 使用一次性令牌 每次会话建立之初分配唯一的一次性令牌给客户端,之后每一次请求都需要附带这个令牌作为附加参数提交上去。服务端接收到后立即作废此令牌并记录下来,当再次遇到相同编号的令牌则拒绝处理相应请求。 ```python import uuid def generate_token(): """生成随机UUID字符串""" return str(uuid.uuid4()) token = generate_token() print(f"One-time token generated: {token}") ``` #### 时间戳校验 在消息体嵌入当前时间的时间戳字段,同时设定允许的最大偏差范围Tmax。服务器在接受到来自客户端的消息时先对比其中携带的时间戳与本地实际时刻差值Δt是否超过预设阈值Tmax,一旦超出即视为异常而丢弃之。 ```python from datetime import datetime, timedelta current_time = datetime.now() # 假定最大容忍时间为5分钟 time_tolerance = timedelta(minutes=5) received_timestamp = "2023-10-08T14:48:32Z" message_time = datetime.fromisoformat(received_timestamp.replace('Z', '+00:00')) delta_t = abs((message_time - current_time).total_seconds()) if delta_t > time_tolerance.total_seconds(): print("Timestamp validation failed.") else: print("Timestamp is within acceptable range.") ``` #### 数字签名技术 采用公钥基础设施(PKI),对于每一条发出的数据都加上发送者的私钥进行加密形成数字签名一同传输过去;对方拿到以后再用对应的公开密钥解密恢复原文的同时也能确认来源的真实性及完整性不受篡改过。 ```python from cryptography.hazmat.primitives.asymmetric import rsa, padding from cryptography.hazmat.primitives import hashes private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048, ) data = b"Sensitive information that needs to be signed." signature = private_key.sign( data, padding.PSS( mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH ), hashes.SHA256() ) print(f"Data has been digitally signed with length of signature being {len(signature)} bytes.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值