包的VHDL配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包的VHDL配置相关的知识,希望对你有一定的参考价值。

我有两个包(pkg1和pkg2),其中一个包含一组常量。

根据配置,我想使用pkg1或pkg2,但不能同时使用两者。

那么,我怎样才能在VHDL中做到这一点?如何定义包的配置?

答案

vhdl没有一些预处理器来操纵像verilog这样的代码

你不能在不同的情况下定义use package语句。

但你可以为每种情况使用不同名称的常量,如果 - generate - 语句如下:

    package pkg is
      constant case_1;
      constant case_2;
    end pkg;

然后在您的架构块中:

    if condition1 generate
      signal1 <= case_1;
    end generate;

    if condition2 generate
      signal1 <= case_2;
    end generate;

编译器/合成器将终止不可用的常量。

希望可以帮到你

另一答案

我有完全相同的需求。我有一个很大的核心,可以做很多事情,根据我想要构建的机器,有不断变化的值(ADC,DAC和其他不同的硬件)。我解决它的方法是为项目提供一个顶级文件夹(所有常用文件)和每台机器的子文件夹。在每个子文件夹中,我都有特定于每台机器的VHDL文件(包,实体,体系结构)。机器特定文件在“机器”库中编译,而不是“工作”。然后,我告诉编译器(模拟器或综合)“机器”库源所在的位置(子文件夹)。

以上是关于包的VHDL配置的主要内容,如果未能解决你的问题,请参考以下文章

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

用于键盘接口的 vhdl 代码

带有 VHDL 代码的 FPGA 上的声音发生器

在 VHDL 中保持动作

VHDL基础1

VHDL实现智能药盒