- Code: Select all
library IEEE;
use IEEE.STD_LOGIC_1164.all;
--use ieee.numeric_std.all;
use ieee.std_logic_arith.all;
entity moltiplicatore is
generic (size : integer :=12);
port(
m1 : in signed(size-1 downto 0);
m2 : in signed(size-1 downto 0);
out_parity :out signed(size-1 downto 0)
);
end moltiplicatore;
architecture moltiplicatore of moltiplicatore is
signal m_full,m_round,one: signed (2*size-1 downto 0);
signal aux1 : std_logic;
begin
m_full<=m1*m2;
one<=conv_signed(1,24);
m_round<=m_full + shl(one,11);
out_parity<=m_round(2*size-1 downto size);
end moltiplicatore;
Come si vede dal codice ho dovuto togliere la libreria numeric_std per poter utilizzare la std_logich_arith perchè insieme
mi danno errore.Qualcuno sa dirmi perché????
Inoltre come faccio ad utilizzare lo shift shl??? provo a farlo come scritto nel codice ma mi da "Error (10517): VHDL type mismatch error at moltiplicatore.vhd(23): UNSIGNED type does not match integer literal".