2016-03-28 291 views
-1

我正在写一个程序,需要为签名和无符号数字工作。你需要一个32位输入,前24位是一个整数,后8位是一个分数。取决于你是什么分数是你上下舍入。非常简单,但是如何编写一个无论输入是带符号还是无符号的程序?你是否仅仅根据数字是否是无符号来执行两个独立的代码块?如何处理VHDL中的有符号和无符号数字?

+0

你真正的意思是什么_signed_数字?有签名的号码可以有符号,但不需要。要区分有符号和无符号数字,您需要一个单独的控制信号。 –

+0

这听起来像是固定点,而不是有符号或无符号。我会看这个VHDL-2008定点包。 –

+0

当你说“有符号或无符号”时,你的意思是“正面还是负面”(不是分别)? – fru1tbat

回答

0

如果数据以及来自该信息的数据是否被签名,则您的程序需要知道源。否则,你的程序如何知道一个位矢量是否(未)被签名?标牌是人类用来构造数据的惯例。你实现的硬件只看到一个位矢量。

0

具有8个小数位的32位无符号数可以表示0到((2^32)-1)/ 256范围内的数字。

带8个小数位的32位有符号数可以表示范围 - (2^31)/ 256到((2^31)-1)/ 256中的数字。那么,如何将32位输入(有符号或无符号)转换为33位有符号,这将能够表示范围 - (2^32)/ 256到((2^32))范围内的数字。 -1)/ 256,这将涵盖您的整个输入范围。 (你没有给出任何代码,除了你的32位输入外,还必须有其他输入来表明这些32位代表的是一个无符号数还是有符号数,你需要测试这个输入和根据其状态进行适当的转换。)

相关问题