verilog系统中的通配符及其综合性

verilog系统中的通配符及其综合性,verilog,system-verilog,Verilog,System Verilog,什么是系统verilog中的通配符运算符?我在网上搜索过,但有一些模棱两可的地方 它们也是可合成的吗 下面的答案是什么 4'b1010 ==? 4'b10x0 4'b10x0 ==? 4'b1010 看起来你没有搜索这个网站。第11.4.6节通配符相等运算符定义了该运算符。搜索将给出许多其他示例,如 通配符相等运算符旨在可合成,只要X作为文字或常量表达式出现在RHS上。RHS上的X被视为不在乎火柴。LHS上的X不匹配,仅用于模拟。内部运算符和内部条件语句中的大小写都使用这种非对称通配符匹配,

什么是系统verilog中的通配符运算符?我在网上搜索过,但有一些模棱两可的地方

它们也是可合成的吗

下面的答案是什么

4'b1010 ==? 4'b10x0 
4'b10x0 ==? 4'b1010

看起来你没有搜索这个网站。第11.4.6节通配符相等运算符定义了该运算符。搜索将给出许多其他示例,如

通配符相等运算符旨在可合成,只要X作为文字或常量表达式出现在RHS上。RHS上的X被视为不在乎火柴。LHS上的X不匹配,仅用于模拟。
内部
运算符和内部条件语句中的
大小写都使用这种非对称通配符匹配,用于可合成的不在乎。

摘自“IEEE Verilog寄存器传输级合成标准”IEEE Std 1364.1-2002第5.5节(1364是IEEE-1800扩展的基本规范,1361.1定义了1364的可合成子集):

由于通配符运算符是casex表达式的一个明显扩展,人们有理由认为它是可合成的。我不知道有IEEE 1800标准定义了可合成子集;或者该信息是否包含在IEEE-1800标准本身中

已故的Stuart Sutherland在他的论文中提出了IEEE-1800的可综合结构列表,其中包括通配符等式:


实际上,检查此类问题的最终方法是使用此结构编写一个小示例,并将其提供给您实际计划使用的合成工具,看看您是否收到警告、错误或工作代码!

问题第一部分的答案可以在任何verilog教程或文档中找到。关于可合成性的第二部分很有趣,我投票赞成重新开始这个问题。
The value x may be used in case item expressions (may be mixed 
with other expressions, such as 4'b01x0) in a casex statement to 
imply a don't care value for synthesis.