如何使用 Icarus Verilog 在 Verilog 中转换 VHDL 代码?

How to convert a VHDL code in Verilog using Icarus Verilog?

我在文档中找不到使用 icarus 将 VHDL 代码转换为 Verilog 的示例。我找到了如何对 VHDL 进行 verilog here。 我试图修改命令以在 this code 上进行 VHDL 转换:

$ iverilog -tvlog95 -o button_deb.v button_deb.vhdl 
button_deb.vhdl:3: syntax error
I give up.

但是我遇到了语法错误。我的 VHDL 代码是错误的吗?还是 iverilog 命令错误?

没有 Verilog 目标,因此您无法生成 Verilog 输出,而且 VHDL 编译仍然处于试验阶段。您可以在邮件列表中询问,以确保没有任何内容可以提供帮助。 VHDL 到 Verilog 的转换只能在相对简单的情况下进行(可合成代码应该可以),因此您可能不得不手动进行。

这期间似乎有一些支持(主要是使用 -g2005-sv-g2009-g2012 开关)。试试这个:

iverilog -g2012 -tvlog95 -o button_deb.v button_deb.vhd

如果您更仔细地注意输出,您会发现通过这种方式您将在实体接口处丢失两个 generic。直接使用 vhdlpp 可能会有用:

/path/to/vhdlpp button_deb.vhd > button_deb.v