我有以下问题: 我需要乘,并添加各种std_logic_vectors并获得结果,可以是否定的或积极的。然后我必须检查结果:1.如果它是负值,我应该给它一个零值; 2.如果它大于255我应该给它一个值255; 3.如果它在0到255之间,它应该保持不变。 我正在使用8位std_logic向量。结果存储在16位std_logic_vector中(因为我有乘法和加法,所以这个值可以大于2^8(255)。所以,如果你有任何想法,请帮助。我不知道如何使用有符号的,无符号的值,因为在我的情况下,我必须使用两者,例如,我乘以-1,4等等 例如,我有:结果< = op1 *( - 1)+ op2 * 4 + op3 *( - 2)...我已经写出了负数作为整数,所以你知道它们是负数(-1 = x“ff”)。我应该使用哪些库?以及如何构造if ...那么... elsif ... then ... else ... end if; construction? 先谢谢了!我真的需要帮助!我想乘以有符号和无符号vhdl
0
A
回答
0
如果您使用numeric_std库,那么您需要将您的信号向量无论是有符号还是无符号。整数常量sho也不错。
如果信号可以是有符号的或无符号的(取决于另一个控制信号),并且您打算只推断出一个乘法器模块,那么一个简单的技巧可能会有所帮助:密钥是将总是有符号的乘法运算,但多用一个位操作数。附加位是由签名扩展(复制符号位)或零扩展(无符号操作数)生成的。所以新的一点,它是一个简单的“is_signed”控制信号和MSB位。我在一个用于FPGA的通用ALU中使用了它。
对于正8位数值的限制,我认为最好在签名结果上这样做。
相关问题
- 1. 无符号VHDL
- 2. 如何处理VHDL中的有符号和无符号数字?
- 3. VHDL std_logic_vector转换为带符号和无符号numeric_std
- 4. 为VHDL定义溢出numeric_std有符号/无符号
- 5. strcmp()和有符号/无符号字符
- 6. 无符号乘法和求和算法
- 7. 有符号和无符号整数?
- 8. Integer.parseInt() - 有符号和无符号数
- 9. 我想在C#中乘以符号L单位矩阵
- 10. 乘以R中的数字和符号
- 11. 有符号乘数Verilog
- 12. 为什么x86(-64)上的有符号和无符号乘法不同指令?
- 13. VHDL中的无符号文字
- 14. 我想字符串和整数转换成无符号字节
- 15. 有无符号和unsigned int
- 16. 无符号和符号比较
- 17. 无符号和符号整数
- 18. 符号和无符号不工作
- 19. C中有符号和无符号字符需要什么?
- 20. RAND_MAX宏:有符号还是无符号?
- 21. C++有符号/无符号不匹配
- 22. C89:有符号/无符号不匹配
- 23. C++ 11类型(有符号+无符号)?
- 24. 符号 - 无符号转换
- 25. 我可以将无符号字符*转换为无符号整型*吗?
- 26. HTML符号以下符号
- 27. 乘除法除无符号整数
- 28. 无符号长整数乘法
- 29. 无负号乘以不带星号
- 30. ANTLR:乘法省略'*'符号
我解决了!谢谢! – fanciulla
安娜,你为什么不告诉我们? – Fabrizio