我有两个包(pkg1和pkg2),其中一个包含一组常量。
根据配置的不同,我想使用pkg1或pkg2,但不能同时使用。
那么,我怎样才能在VHDL中做到这一点?如何定义包的配置?
答案 0 :(得分:0)
vhdl没有一些预处理器可以像verilog那样操作代码
你不能在不同的情况下定义使用包语句。
但是你可以为每种情况使用具有不同名称的常量 if - 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;
编译器/合成器将终止不可用的常量。
希望可以帮到你
答案 1 :(得分:0)
我有完全相同的需求。我有一个大型内核,可以完成很多工作,并且根据要构建的机器的不同,值会不断变化(ADC,DAC和其他各种硬件)。我解决问题的方法是在项目的顶层文件夹(所有通用文件)和每台计算机的子文件夹。在每个子文件夹中,都有每个计算机专用的VHDL文件(软件包,实体,体系结构)。特定于计算机的文件在“计算机”库中而不是在“工作”库中编译。然后,我告诉编译器(模拟器或合成器)“计算机”库源(子文件夹)位于何处。