理解链式蕴含在属性中的应用

需积分: 1 0 下载量 27 浏览量 更新于2024-08-02 收藏 384KB PDF 举报
"If Chained Implications in Properties Weren't So Hard, They'd Be Easy_pres.pdf" 这篇文档主要探讨了在属性表达式中链式蕴含(chained implications)的概念及其复杂性。作者Don Mills通过讲解来帮助读者理解这一主题。 1. 前提条件: 文档假设读者已经具备对断言(assertions)、属性(properties)和序列(sequences)的基本了解,并熟悉范围重复(range repetition)的概念。这些是理解链式蕴含的基础。 2. 蕴含的定义: 链式蕴含是属性表达式中的一个特殊操作符,用于创建条件序列测试。如果条件为真,那么序列将被评估;如果条件为假,则序列不会被执行。在Verilog中,`|->`表示重叠蕴含,序列评估立即开始,而`|=>`表示非重叠蕴含,序列评估在下一个时钟周期开始。例如,`property bus_req_prop6; @(posedge clk) req |->##[1:5] grant; endproperty:bus_req_prop6`表示如果`req`为真,则在1到5个时钟周期后检查`grant`的情况。 3. 蕴含术语: - 前件(Antecedent):蕴含操作符前的条件或表达式。 - 后件(Consequent):蕴含操作符后的表达式,即在满足前件条件时需要评估的部分。 - 空洞成功(Vacuous Success):当前件始终为假时,无论后件如何,蕴含总是为真,这种情况称为空洞成功。 4. 链式蕴含的挑战: 链式蕴含在多个条件之间建立复杂的依赖关系,这可能导致条件评估的复杂性和时序问题。在设计验证中,正确理解和使用链式蕴含对于确保硬件设计的正确行为至关重要。特别是在系统级验证中,链式蕴含可以用来描述信号之间的预期交互,例如在总线协议中。 5. 解决策略与最佳实践: 为了有效使用链式蕴含,开发者需要清楚地理解它们如何影响序列的评估时机,以及如何处理不同类型的蕴含(重叠与非重叠)。此外,使用适当的逻辑构造,如嵌套的蕴含、短路逻辑或选择性评估,可以帮助简化复杂性。 文档旨在提升读者对链式蕴含在属性表达式中的理解和应用能力,通过深入讨论其工作原理和常见术语,帮助解决在系统验证过程中可能出现的问题。通过学习这些概念,工程师能更好地编写精确、高效的验证代码,确保硬件设计的正确性和可靠性。

# proxychains.conf VER 3.1 # # HTTP, SOCKS4, SOCKS5 tunneling proxifier with DNS. # # The option below identifies how the ProxyList is treated. # only one option should be uncommented at time, # otherwise the last appearing option will be accepted # #dynamic_chain # # Dynamic - Each connection will be done via chained proxies # all proxies chained in the order as they appear in the list # at least one proxy must be online to play in chain # (dead proxies are skipped) # otherwise EINTR is returned to the app # strict_chain # # Strict - Each connection will be done via chained proxies # all proxies chained in the order as they appear in the list # all proxies must be online to play in chain # otherwise EINTR is returned to the app # #random_chain # # Random - Each connection will be done via random proxy # (or proxy chain, see chain_len) from the list. # this option is good to test your IDS :) # Make sense only if random_chain #chain_len = 2 # Quiet mode (no output from library) #quiet_mode # Proxy DNS requests - no leak for DNS data proxy_dns # Some timeouts in milliseconds tcp_read_time_out 15000 tcp_connect_time_out 8000 # ProxyList format # type host port [user pass] # (values separated by 'tab' or 'blank') # # # Examples: # # socks5 192.168.67.78 1080 lamer secret # http 192.168.89.3 8080 justu hidden # socks4 192.168.1.49 1080 # http 192.168.39.93 8080 # # # proxy types: http, socks4, socks5 # ( auth types supported: "basic"-http "user/pass"-socks ) # [ProxyList] # add proxy here ... # meanwile # defaults set to "tor" socks5 192.168.23.15 10808 dns_server = 8.8.8.8

2023-05-30 上传