我们正试图在verilog中执行以下操作:
`define MY_SUFFIX suffix
wire prefix_`MY_SUFFIX;
assign prefix_`MY_SUFFIX = 1'b0;
但是,预处理器似乎没有做正确的替换。 assign
行上存在语法错误(“后缀'附近的语法错误),但如果assign ...
行被注释掉但wire ...
行不是',则没有语法错误t。
在注释掉assign...
行的情况下模拟这个(为了避免语法错误),会给出编译错误“prefix_是一个未知类型”。
显然我们缺少一些东西,但这种行为没有意义!
答案 0 :(得分:1)
在edaplayground上使用各种模拟器运行它会产生混合结果: http://www.edaplayground.com/x/A84
从根本上说,我不相信Verilog需要尊重宏观周围的空间(或缺乏空间)。它不工作的地方可能会扩展为:
wire prefix_ suffix; // space in middle, syntax error
答案 1 :(得分:0)
只是偶然发现了这个帖子,因为我有同样的问题。我的解决方案是创建一个也接受前缀作为输入的宏。 看起来不太好,但是可以用:
apiVersion: extensions/v1beta1
kind: Ingress
...
spec:
backend:
serviceName: [service-name]
servicePort: 80
或者为了提高可读性:
`define MY_SUFFIX(name) ``name``suffix
wire `MY_SUFFIX(prefix_);
assign `MY_SUFFIX(prefix_) = 1'b0;