我有以下問題: 我需要乘,並添加各種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