【发布时间】:2020-12-06 16:30:17
【问题描述】:
我正在为 4 位 4:1 多路复用器设计结构模型。 我的verilog代码如下所示。Eda Playground在执行代码时抛出了分段错误。但是使用其他模拟器执行时没有问题。日志如下所示。
design.sv: L1: error: 语法错误,意外输入
design.sv: L7: error: 'a' not declared
design.sv: L7: error: 'b' not declared
design.sv: L7: error: 'c' not declared
design.sv: L7: 错误:'d' 未声明
design.sv: L7: 错误: 'sel' 未声明
design.sv: L8: 错误:'sel' 未声明
design.sv:L9:错误:未声明“out”
design.sv: L9: 错误:'a' 未声明
design.sv: L10: error: 'out' not declared
design.sv: L10: error: 'b' not declared
design.sv:L11:错误:未声明“out”
design.sv: L11: error: 'c' not declared
design.sv: L12: error: 'out' not declared
design.sv: L12: error: 'd' not declared
./run.sh:第 4 行:14 分段错误(核心转储)veriwell design.sv testbench.sv
module mux_4to1_case ( input [3:0] a,
input [3:0] b,
input [3:0] c,
input [3:0] d,
input [1:0] sel,
output reg [3:0] out);
always @ (a or b or c or d or sel) begin
case (sel)
2'b00 : out <= a;
2'b01 : out <= b;
2'b10 : out <= c;
2'b11 : out <= d;
endcase
end
endmodule
Verilog 测试台
module tb_4to1_mux;
reg [3:0] a;
reg [3:0] b;
reg [3:0] c;
reg [3:0] d;
wire [3:0] out;
reg [1:0] sel;
integer i;
mux_4to1_case mux0 ( .a (a),
.b (b),
.c (c),
.d (d),
.sel (sel),
.out (out));
initial begin
$monitor ("[%0t] sel=0x%0h a=0x%0h b=0x%0h c=0x%0h d=0x%0h out=0x%0h", $time, sel, a, b, c, d, out);
sel <= 0;
a <= $random;
b <= $random;
c <= $random;
d <= $random;
for (i = 1; i < 4; i=i+1) begin
#5 sel <= i;
end
#5 $finish;
end
initial begin
$dumpvars;
$dumpfile("sth.vcd");
end
endmodule
执行代码时出现以下分段错误 Logs.png
【问题讨论】:
-
如果是 Verilog,为什么您的文件是
.sv?它是作为 SystemVerilog 运行的吗?