Domanda banale

Sezione dedicata al linguaggio di descrizione hardware per logiche programmabili

Domanda banale

Postby giuseppe01051984 » 25 Sep 2013, 09:59

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.
giuseppe01051984
 
Posts: 49
Joined: 06 Sep 2013, 13:16

Re: Domanda banale

Postby deluca » 25 Sep 2013, 10:28

se ho capito quello che chiedi:

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

oppure in hex x"01"
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)

Re: Domanda banale

Postby giuseppe01051984 » 25 Sep 2013, 10:49

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"...
giuseppe01051984
 
Posts: 49
Joined: 06 Sep 2013, 13:16


Return to VHDL x FPGA

Who is online

Users browsing this forum: No registered users and 21 guests

cron