假设'a‘和'y’是具有std_logic_vector (7向下到0)数据类型的8位信号。如果信号被解释为无符号数字,则下面的赋值语句执行/8.EXPLAIN。Y <=“000”& a(7降到3);这个问题在RTL硬件设计第三章问题3.6中。我有这个问题的答案,那就是通过向右移三次,任何二进制值都可以被8整除,但我不知道如何被整除。有人能解释这个吗?
发布于 2015-02-02 04:06:11
看一下更简单的计算a/2的例子,向右移位意味着它们移动到一个位置,该位置的值是前一个值的一半。
示例:
110 (binary) = 6 (decimal) shifted to 011 (binary) = 3 (decimal)
101 (binary) = 5 010 = 2 (decimal).最后一个示例显示5/2=2.5自动截断为2,因为最低有效位被移出。
要得到a/8,只需重复a/2三次(向下移动三个位置)。在硬件中,这通常是通过“移动导线”来完成的,在这种情况下,通过将位(7向下至3)连接到位置(4向下至0),并用零填充高三位。
https://stackoverflow.com/questions/27448074
复制相似问题