2 的补码 std_logic_vector 到无符号数
2's complement std_logic_vector to unsigned number
我有一个 4 位 std_logic_vector,其值以 2 的补码表示。我想提取它的无符号值
signal FOURbits_2scomplement : std_logic_vector(3 downto 0);
signal THREEbits_number : unsigned(2 downto 0);
THREEbits_number <= what_to_do(FOURbits_2scomplement); -- here !
我们如何将 2 的补码中 encoded/represent 的给定 4 位转换为 3 位二进制编码的二进制值?
我被宽度卡住了...
我建议您使用 numeric_std-package。它带有 signed
和 unsigned
类型。您现在可以将 std_logic_vector
转换为其中一种类型(我仍然不知道您要做什么,但这个解释对您来说应该足够了),然后比较该值是更大还是更小比 2.
要了解我刚刚写的内容,请查看 this site 上的 table。
如果我理解错了,你想将数字从 2 的补码转换为二进制,请参阅 this question 的已接受答案。简而言之,就是取反,加1,去掉符号位。
我有一个 4 位 std_logic_vector,其值以 2 的补码表示。我想提取它的无符号值
signal FOURbits_2scomplement : std_logic_vector(3 downto 0);
signal THREEbits_number : unsigned(2 downto 0);
THREEbits_number <= what_to_do(FOURbits_2scomplement); -- here !
我们如何将 2 的补码中 encoded/represent 的给定 4 位转换为 3 位二进制编码的二进制值?
我被宽度卡住了...
我建议您使用 numeric_std-package。它带有 signed
和 unsigned
类型。您现在可以将 std_logic_vector
转换为其中一种类型(我仍然不知道您要做什么,但这个解释对您来说应该足够了),然后比较该值是更大还是更小比 2.
要了解我刚刚写的内容,请查看 this site 上的 table。
如果我理解错了,你想将数字从 2 的补码转换为二进制,请参阅 this question 的已接受答案。简而言之,就是取反,加1,去掉符号位。