【问题标题】:Reduce multiplexers number after VHDL synthesis减少 VHDL 综合后的多路复用器数量
【发布时间】:2017-03-03 12:19:08
【问题描述】:

我正在用 VHDL 编写设计,综合后我观察到使用的多路复用器(专用)的数量很高。我的代码有很多 if-else 语句,所以看起来合乎逻辑。

但我想知道是否有可能以另一种方式实现 if-else(或类似的语句)以减少使用的多路复用器资源的数量。

谢谢!

【问题讨论】:

  • 有时您可以将 if-else 语句重组为 case 语句。有时 case 语句可以实现为查找表。或者,有时您可以直接将查找表实现为常量数组,您可以使用您在 if 语句中测试的任何数量对其进行索引。这些是否适用于您的案例取决于您没有告诉我们的背景。
  • 当您说多路复用器时,您是指专用多路复用器资源,还是只是使用 LUT 实现的各种大小的多路复用器?您是否用完了特定资源?
  • @scary_jeff 专用资源
  • 这意味着你有很多宽多路复用器。既然如此,我看不出你能做些什么来减少多路复用器的使用。您可能需要重新考虑设计中创建大量多路复用器的部分,或者转向更大的部分。

标签: vhdl synthesis


【解决方案1】:

您可以尝试使用简单的逻辑元素,例如and 或or。例如:

if (a and b) = '1' then
   out_0 <= '1';
else
   out_0 <= '0';
end if;

if (c or d) = '1' then
   out_1 <= '1';
else
   out_1 <= '0';
end if;

这个结构可以替换为:

out_0 <= a and b;
out_1 <= c or d;

等等……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多