首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >您能在systemverilog文件中导入vhdl包吗?

您能在systemverilog文件中导入vhdl包吗?
EN

Stack Overflow用户
提问于 2022-01-19 16:28:49
回答 2查看 582关注 0票数 -1

您能在systemverilog文件中导入vhdl包吗?

假设我有一个VHDL包:

代码语言:javascript
复制
    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文件中使用它:

代码语言:javascript
复制
// 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包:

代码语言:javascript
复制
    // FILE: my_pkg.sv
    package my_pkg;

      typedef struct packed {
        bit       sig2;
        bit [7:0] vec1;
      };

    endpackage;

这是我的模拟器输出:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2022-01-19 17:48:32

我只知道一个工具,Modelsim/Questa,它允许在SystemVerilog和VHDL之间共享包,并且只允许在这些语言之间共享数据类型/类型。最有用的用途是将混合语言实例之间的端口与共享数据类型连接起来。

在Questa用户手册中查找-mixedsvvh开关。

票数 2
EN

Stack Overflow用户

发布于 2022-01-19 17:11:33

简短地回答“不”。

如果您可以让模拟器编译VHDL模块,那么您很可能能够在Verilog / SV模块中实例化它,反之亦然。虽然您在这里混合语言,但是模拟器应该如何连接这些语言是相当明确的。但是,由于它们是不同的语言,所以没有定义用这两种语言编写的代码应该如何相互交互。当然,我不希望任何VHDL包可以在Verilog/SV中使用。你能把内容迁移到SV吗?或者创建一个工具来生成两个等价的VHDL和SV文件?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70774270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档