是否可以在加密模块内的未加密模块实例中访问信号?

问题描述 投票:2回答:2

加密的DUT RTL实例化非加密模块的几个实例。我完全可以看到未加密的模块。

在testbench中,我想监视未加密模块中的特定信号并进行运行时检查。它应该是这样的:

// in top level tb
assign wire_a = encrypted_DUT.<...>.non_encrypted_inst.wire_a; // but we don't know exact path
// ... and then do some check on wire_a

以上这条线是不可能的,因为我从来不知道确切的路径。

还有其他方法吗?或者它可能吗?

verilog system-verilog
2个回答
1
投票

如果加密较弱,将$display("%m")放在未加密的子模块中将显示模拟中的路径。

如果这不起作用,则有一种解决方法。您可以将子模块分配给顶级信号,而不是将顶级探针放入子模块中。

// un-encrypted sub-module
assign $root.top_tb.wire_a = wire_a; //Note: $root is SysteVerilog only
//assign top_tb.wire_a = wire_a; //Universal but follows 'upwards name referencing'

IEEE1364-2001(Verilog)§12.5向上名称引用 IEEE1800-2012(SysteVerilog)§23.8向上名称引用


1
投票

这不可能。了解未加密的低级模块是一个安全漏洞。想象一下由未加密的库单元组成的简单加密网表。如果您可以看到所有单元格的路径,则可以轻松推断出网表。

加密DUT的提供者必须将RTL打开到他们愿意允许访问的实例。

© www.soinside.com 2019 - 2024. All rights reserved.