gpt4 book ai didi

java - 使用 ANTLR 语法进行 Verilog 解析

转载 作者:太空宇宙 更新时间:2023-11-04 07:12:03 24 4
gpt4 key购买 nike

我正在尝试用 Java 创建一个解析器(使用 Netbeans),它可以接受任何任意 Verilog 文件作为输入,并生成包含门的网表作为输出。网表不必优化。

我有 ANTLR 语法文件 https://github.com/antlr/grammarsv4/blob/master/verilog/Verilog2001.g4

但是,我不太确定如何将它集成到我的 Java 程序中。

例如,如果我有以下 Verilog 文件作为输入,

module and3(output out, input in1, in2,in3);
reg r_out;
assign out = r_out;
always@(in1, in2, in3)
begin
case({in3,in2,in1})
000: out = 0;
001: out = 1;
010: out = 1;
011: out = 1;
100: out = 0;
101: out = 1;
110: out = 0;
111: out = 1;
default: out = 0;
endcase
end
endmodule

我想确定输入和输出端口的名称及其大小。我还想识别always block 以及case 语句 block 以及Case 语句中的每个赋值。

所以我的疑问是:

1) 如何将其集成到我的 java 程序中

2) 如何使用此 Verilog 语法文件并读取上面提到的 Verilog 代码来识别输入、输出、case 语句、赋值语句。

谢谢

最佳答案

我最近解决了一个类似的任务。我开始使用与 ANTLR 相同的语法文件为 Verilog 创建一个 IntelliJ 插件。目前,它可以成功解析Verilog文件并进行一些突出显示/完成等操作。

这是我的代码 https://github.com/MrTsepa/jetbrains-verilog-plugin

首先,我使用一些 ANTLR 工具生成 ANTLR AST 树(嵌入在 Idea 的 ANTLR 插件中),然后通过 ANTLR adapter 将此树调整为 IntelliJ 的 AST 格式(PSI 树)。

关于java - 使用 ANTLR 语法进行 Verilog 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20507920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com