本人是菜鸟,基本不会VHDL,希望用VHDL编一个ALU。 其功能能实现加,减,乘,与,或运算。输入数据的格式 为定点补码表示法,字长为8位,其中最高位(第七位)为符号位。 小数点位定在符号位后面,其格式如下 7 6 5 4 3 2 1 0 ----------------- | 符号 | 尾数| ------------------ 相对于十进制数表示范围为:-1<=X<=1-2-7 对于结果有进位的应该保存 对于一个8*8的无符号乘法VHDL程序应该为 -------------------------------------------------- library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_arith.all; entity vmul8x8i is port( X:in UNSIGNED (7 downto 0); Y:in UNSIGNED(7 downto 0); Put UNSIGNED(15 downto 0); ); end vmul8x8i; architecture vmul8*8i_arch of vmul8x8i is begin P<=X*Y; end vmul8x8i_arch; -------------------------------------------------------- 那么对于该数据格式的定点补码表示的数据乘法,这个应该怎么改呢? 另外还需要保存进位输出。 [em06] |