【问题标题】:Multiplication of two different bit numbers in VHDLVHDL中两个不同位数的乘法
【发布时间】:2015-02-28 18:23:10
【问题描述】:

我有两个数字 A 和 B,大小都不同,我需要使用 VHDL 将它们相乘。我不知道将它们相乘的确切逻辑。

【问题讨论】:

  • 但是 * 运算符不起作用。
  • 这就是为什么我写你应该弄清楚使用哪些类型......

标签: vhdl


【解决方案1】:

如果您尝试将两个std_logic_vector 相乘,那么* 将失败, 因为std_logic_vector 只是std_logic 元素的数组,但不是 具有继承的数字表示。

所以看看 ieee.numeric_stdVHDL 包裹。这定义了假设典型的 unsignedsigned 类型 数组的数字表示,以及这些类型的运算符, 包括*。使用这个包你可以做到:

use ieee.numeric_std.all;
...
c <= std_logic_vector(unsigned(a) * unsigned(b));

请注意,对于 *c'lengtha'length + b'length

顺便说一句。欢迎来到 Stack Overflow,请花一些时间在 Stack Overflow Help Center,这样你可以得到更好的答案 未来,避免被否决或关闭答案。

【讨论】:

  • 谢谢..这对我有帮助..!!
猜你喜欢
  • 2017-08-25
  • 1970-01-01
  • 2012-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多