The multiplier seems to have some problems computing signed numbers... Also, the linking of the multiplier's register addresses does not work when using TI's MSP430-GCC (uses default MSP430MAC addresses instead of the modified NEO430 ones). However, the implementation of the MAC16 unit is deactivated by default now, so a SW function is used (for now ;) ).
There is a mismatch in the address for the HI/LO MAC result registers in the two files:
neo430.h: #define RESLO ((REG16 0xFF8A)) #define RESHI ((REG16 0xFF8C))
and sys_package.vhd: constant mac16_reshi_addr_c : std_ulogic_vector(15 downto 0) := std_ulogic_vector(unsigned(mac16_base_c) + x"000A"); constant mac16_reshlo_addr_c : std_ulogic_vector(15 downto 0) := std_ulogic_vector(unsigned(mac16_base_c) + x"000C");
One of the files has the HI/LO register addressed swapped.
-Brian
Sorry, I have not noticed this :( But this issue is fixed now! ;)