0

我在我的 VHDL 包中定义了一个常量。

constant USE_OSD : integer := 0;

这是我在我的包中合成之前更改的内容。我想在我的 VHDL 代码中使用这个常量作为我的 MUX 选择行。我怎样才能做到这一点?

例如,类似:

 s_out <=  path_a WHEN (USE_OSD = 0) else path_b;

谢谢,

——鲁迪

4

2 回答 2

1

这与 MUX 选择线无关。

根据此常量的值,这可以详细说明为:s_out <= path_a;s_out <= path_b;。永远不会有多路复用器。

作为一种学习方式,请考虑通过综合工具运行它并查看结果。

于 2014-03-14T11:17:48.147 回答
0

我想你正在寻找一个 if 生成。这就像 C 中的预处理器命令。

例子:

path_a: if USE_OSD = 0 generate
   s_out <= path_a;
end generate path_a;
path_b: if USE_OSD /= 0 generate
   s_out <= path_b;
end generate path_b;

我认为 VHDL 2008 还允许其他生成。

于 2014-03-14T12:00:54.580 回答