【发布时间】:2010-03-04 20:04:59
【问题描述】:
我的 vhdl 设计需要适应不同的变体。 能够从 makefile 生成配置会很好。用于生成一个项目的 makefile 已准备就绪并可以正常工作。
我想避免为不同的项目使用不同的非常相似的文件。 项目之间的唯一区别是某处的几行,其中一个包含一堆 vhdl 文件(和组件),另一个不需要。
例如,我想避免使用两个不同的顶级 vhd 文件。相反,我想在顶部文件中使用条件来包含(或不包含)其他 vhdl 文件和组件,具体取决于项目。
您对如何执行此操作有任何建议吗?
我尝试使用外部预编译器 (gcc) 但无法使其工作。此外,我真的不想强迫其他开发人员安装 gcc,或者在 Xilinx IDE 中无法使用 vhdl 文件。
编辑:添加示例
我有两个产品,A 和 B。我想为这两个产品使用相同的文件,并带有条件来排除产品 B 的某些部件,为不同的硬件部件生成配置,当然还有其他东西。
我想从命令行生成配置:
make product_A 和 make product_B。
如果我在我的 vhdl 中放入 generates 以根据目标包含/排除代码,那么 xst 需要知道正在构建什么目标。问题是如何将当前目标从 makefile 传递给 xst。
在使用 gcc 编译的 C 代码中,我会放入源代码:
#if defined(product_B)
...
#elsif defined(product_A)
...
#endif
,然后在makefile中设置define:
product_A: source.c
gcc -Dproduct_A source.c
product_B: source.c
gcc -Dproduct_B source.c
【问题讨论】:
标签: makefile conditional vhdl xilinx