overflow - VHDL modulo 2^32 addition -
i working on vhdl implementation of sha-256 hash function. have 32-bit unsigned
signals defined such:
signal a, b : unsigned (31 downto 0);
within specifications of sha-256 algorithm, says addition must performed modulo 2^32 in order retain 32-bit size in case of overflow. now, according answer this question, sounds overflow handled modular addition in vhdl:
there no overflow handling, overflow carry lost. result integer result of operation modulo 2^max.
i have 2 questions:
- in case,
max = 31
mean addition operation perform ona
,b
modded 2^31? - i need perform addition modulo 2^32 doesn't make sense since working 32-bit numbers , 2^32 1 bit large. somehow implied should modding 2^31?
you fine unsigned(31 downto 0)
. 2^max
in post reference error , should read 2^length
. length of 31 downto 0
32.
think it, 31 downto 0
can represent numbers 0 2^32-1, wouldn't make sense if addition of range modulo 2^31 if can represent larger numbers!
i'm not sure understand second question, addition modulo 2^32 yields results in range of 0 2^32-1. 2^32 illegal, it's quite fine can't represent unsigned.
Comments
Post a Comment