A
analog_fever
Guest
Za velikost znak na 2 posadka konverzijo (in obratno) v Verilog delam naslednje: 32 bit binarni vhod -, MSB bit je znak tako za znak velikosti in dopolnjujejo 2 na številke. 32 bit rezultat - B if (A [31]) B = {[31], (~ [30:0] + "b1)} else B = enako funkcijo pa oba pretvorbe. Zdaj, če je A = 32'b1000000_00000000_00000000_00000000 (negativna nič, znak velikosti), sem pričakoval, da bi dobili 32'b10000000_00000000_00000000_00000000 v B. Za = 32'b10000000_00000000_00000000_00000000, bo izračun na desni strani enačbe 33'b11000000_00000000_00000000_00000000. Kateri je seveda napačen odgovor zaradi overflow. Vendar vidim 32'b0 v B, iz moje simulacijo. Ali lahko nekdo pomaga - 1. Sem kaj spregledal? 2. Sem uporabo pravilne metode za dopolnjujejo 2 je - pretvorba znak velikosti, in obratno?