module test; typedef struct packed { logic [9:-1][2:0] a; //REQ-EXT-10001, REQ-EXT-10004 } ST1; typedef struct { ST1 st1; logic [2:0] b; } ST2; typedef struct { logic [31:0] c; // ST3 definition missing } ST3; typedef struct { ST3 st3; ST2 st2_arr[3:0]; } ST4; initial begin ST2 st2; ST2 st2_1 = {3'b101, {ST1{10'b110}}, {ST1{20'b10101010101010}},{ST1{30'b1}}}; ST2 st2_2 = {3'b010, {ST1{10'b101}}, {ST1{20'b01010101010101}},{ST1{30'b0}}}; st2 = {2'b01, {3'b1, 3'b0, 12'b1}}; $display("%p",st2); //CHECK-001:'{a:'h1}, st2:'{'a:'h1}, '{a:'h0},'{a:h1}}} $display("st2_1:%p", st2_1); //CHECK-002 $display("st2_2:%p", st2_2); //CHECK-003 end endmodule 这段system verilog代码用vcs编译后会报35: token is '{'的错误,应该如何修改,才能使这段程序跑通呢?
时间: 2023-11-01 20:25:11 浏览: 36
这段代码中存在两个问题导致编译出错:
1. 在ST2结构体的定义中,缺少分号。应该在 } 后面加上分号,即 };。
2. 在initial块中,变量st2的初始化方式有误。应该使用与st2_1、st2_2相同的初始化方式,即 {3'b1, {ST1{10'b110}}, {ST1{20'b10101010101010}}, {ST1{30'b1}}}。
修改后的代码如下:
```
module test;
typedef struct packed {
logic [9:-1][2:0] a; //REQ-EXT-10001, REQ-EXT-10004
} ST1;
typedef struct {
ST1 st1;
logic [2:0] b;
} ST2;
typedef struct {
logic [31:0] c; // ST3 definition missing
} ST3;
typedef struct {
ST3 st3;
ST2 st2_arr[3:0];
} ST4;
initial begin
ST2 st2;
ST2 st2_1 = {3'b101, {ST1{10'b110}}, {ST1{20'b10101010101010}},{ST1{30'b1}}};
ST2 st2_2 = {3'b010, {ST1{10'b101}}, {ST1{20'b01010101010101}},{ST1{30'b0}}};
st2 = {3'b1, {ST1{10'b110}}, {ST1{20'b10101010101010}}, {ST1{30'b1}}};
$display("%p",st2); //CHECK-001:'{a:'h1}, st2:'{'a:'h1}, '{a:'h0},'{a:h1}}}
$display("st2_1:%p", st2_1); //CHECK-002
$display("st2_2:%p", st2_2); //CHECK-003
end
endmodule
```
相关推荐
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)