Page 1 of 1

Domanda banale

PostPosted: 25 Sep 2013, 09:59
by giuseppe01051984
Scusate la domanda banale, ma come si fa a scrivere 1 di dimensione size????
Ad esempio vorrei che venisse trattatto come 00000001 perchè size=8.

Re: Domanda banale

PostPosted: 25 Sep 2013, 10:28
by deluca
se ho capito quello che chiedi:

1 di dimensione size (come tu dici)= "0000001" se binario (std_logic_vector)

oppure in hex x"01"

Re: Domanda banale

PostPosted: 25 Sep 2013, 10:49
by giuseppe01051984
Chiedo scusa per essermi spiegato male.
Posto il codice così si capisce quello che voglio:
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
component mymux
    port(
        a : in signed (size-1 downto 0);
        b : in signed (size-1 downto 0);
        s : in std_logic;
        out_mux : out signed (size-1 downto 0)
        );
end component;
component select_mux
    port(
        msb_in: in signed (size-1 downto 0);
        msb_out : out std_logic
        );
end component;

signal m_full,m_round,one : signed (2*size-1 downto 0);
signal aux1 : std_logic;
signal msb,lsb : signed (size-1 downto 0);
begin
m_full<=m1*m2;
m_round<=m_full + "000000000000100000000000";
msb<= m_round(2*size-1 downto size);
lsb<= m_round(size-1 downto 0);
blocco1 : mymux
port map(msb,lsb,aux1,out_parity);
blocco2:select_mux
port map(msb,aux1);


end moltiplicatore; 


Praticamente vorrei realizzare un moltiplicatore rounding (NxN=N) in cui mi serve sommare ad m_round
un 1 shiftato a sinistra di 2*size-1 posizioni.
Il problema è che non so come scrivere 1 formato da size elementi per poi shiftarlo.
Per cui al momento ho scritto "000000000000100000000000"...