您能在systemverilog文件中导入vhdl包吗?
假设我有一个VHDL包:
library ieee;
use ieee.std_logic_1164.all;
-- FILE: my_pkg.vhd
package my_pkg is
type type1 is record
sig2 : std_logic;
vec1 : std_logic_vector(7 downto 0);
end record;
end package;我可以在这样的系统Verilog文件中使用它:
// FILE: testbench.sv
import my_pkg::*;
module testbench;
type1 sigtype1;
initial begin
sigtype1.sig2 = 1'b1;
sigtype1.vec1 = 8'hA;
$finish(2);
end
endmodule这是否会产生语法错误,还是意味着等效的systemverilog包:
// FILE: my_pkg.sv
package my_pkg;
typedef struct packed {
bit sig2;
bit [7:0] vec1;
};
endpackage;这是我的模拟器输出:
C:\questasim64_2020.4\win64\vcom.exe -2002 -l simout.vhdl.log
-work work ./hdl/my_pkg.vhd
QuestaSim-64 vcom 2020.4 Compiler 2020.10 Oct 13 2020
Start time: 11:39:52 on Jan 19,2022
vcom -2002 -l simout.vhdl.log -work work ./hdl/my_pkg.vhd
-- Loading package STANDARD
-- Loading package TEXTIO
-- Loading package std_logic_1164
-- Compiling package my_pkg
End time: 11:39:52 on Jan 19,2022, Elapsed time: 0:00:00
Errors: 0, Warnings: 0
ok
C:\questasim64_2020.4\win64\vlog.exe -work work -l simout.vlog.log
./hdl/testbench.sv
QuestaSim-64 vlog 2020.4 Compiler 2020.10 Oct 13 2020
Start time: 11:39:52 on Jan 19,2022
vlog -work work -l simout.vlog.log ./hdl/testbench.sv
** Error:
C:/Users/wpmoore/Desktop/collins/sandbox/sandbox.try1/hdl/testbench.sv(
2): (vlog-13006) Could not find the package (my_pkg). Design read will
continue, but expect a cascade of errors after this failure.
Furthermore if you experience a vopt-7 error immediately before this
error then please check the package names or the library search paths
on the command line.
End time: 11:39:52 on Jan 19,2022, Elapsed time: 0:00:00
Errors: 1, Warnings: 0发布于 2022-01-19 17:48:32
我只知道一个工具,Modelsim/Questa,它允许在SystemVerilog和VHDL之间共享包,并且只允许在这些语言之间共享数据类型/类型。最有用的用途是将混合语言实例之间的端口与共享数据类型连接起来。
在Questa用户手册中查找-mixedsvvh开关。
发布于 2022-01-19 17:11:33
简短地回答“不”。
如果您可以让模拟器编译VHDL模块,那么您很可能能够在Verilog / SV模块中实例化它,反之亦然。虽然您在这里混合语言,但是模拟器应该如何连接这些语言是相当明确的。但是,由于它们是不同的语言,所以没有定义用这两种语言编写的代码应该如何相互交互。当然,我不希望任何VHDL包可以在Verilog/SV中使用。你能把内容迁移到SV吗?或者创建一个工具来生成两个等价的VHDL和SV文件?
https://stackoverflow.com/questions/70774270
复制相似问题