rom look_up_table

Sezione dedicata al linguaggio di descrizione hardware per logiche programmabili

rom look_up_table

Postby giuseppe01051984 » 01 Oct 2013, 14:39

Devo creare una rom look-up-table(14 bit in ingresso e 12 in uscita ) con valori del seno che provvederò a calcolare con matlab.Si potrebbe avere del codice per scriverla in vhdl?????
giuseppe01051984
 
Posts: 49
Joined: 06 Sep 2013, 13:16

Re: rom look_up_table

Postby deluca » 04 Oct 2013, 14:02

salve giuseppe,
in che formato d'uscita vuoi i dati?

Hex o Mif ? li devi caricare su una lpm_rom di Altera o vuoi realizzare una rom vhdl indipendent.

Devo creare una rom look-up-table(14 bit in ingresso e 12 in uscita ) con valori del seno che provvederò a calcolare con matlab.
Si potrebbe avere del codice per scriverla in vhdl?????


Quando dici 14bit ingresso e 12uscita cosa intendi?

di solito per Rom Sin si parla di address(locazioni per stabilire il numero di campioni SIN/COS) e Dati(risoluzione d'uscita -> DAC)

dimmi....
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: rom look_up_table

Postby Leonardo » 04 Oct 2013, 14:15

Ciao Giuseppe,
Puoi:

- utilizzare il MegaWizard di Quartus per istanziare una ROM http://www.cs.ucsb.edu/~betamaz/teaching/cs154s12/labs/ROM_tutorial.pdf

- scriverla tramite codice VHDL partendo magari dal template Single-Port ROM che trovi in Edit / Insert Template / VHDL / Full Designs / RAMs and ROMs che ti riporto:

Code: Select all
-- Quartus II VHDL Template
-- Single-Port ROM

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity single_port_rom is

   generic
   (
      DATA_WIDTH : natural := 12;
      ADDR_WIDTH : natural := 14
   );

   port
   (
      clk      : in std_logic;
      addr   : in natural range 0 to 2**ADDR_WIDTH - 1;
      q      : out std_logic_vector((DATA_WIDTH -1) downto 0)
   );

end entity;

architecture rtl of single_port_rom is

   -- Build a 2-D array type for the RoM
   subtype word_t is std_logic_vector((DATA_WIDTH-1) downto 0);
   type memory_t is array(2**ADDR_WIDTH-1 downto 0) of word_t;

   function init_rom
      return memory_t is
      variable tmp : memory_t := (others => (others => '0'));
   begin
      for addr_pos in 0 to 2**ADDR_WIDTH - 1 loop
         -- Initialize each address with the address itself
         tmp(addr_pos) := std_logic_vector(to_unsigned(addr_pos, DATA_WIDTH));
      end loop;
      return tmp;
   end init_rom;   

   -- Declare the ROM signal and specify a default value.   Quartus II
   -- will create a memory initialization file (.mif) based on the
   -- default value.
   signal rom : memory_t := init_rom;

begin

   process(clk)
   begin
   if(rising_edge(clk)) then
      q <= rom(addr);
   end if;
   end process;

end rtl;

Resta però da chiarire come ha detto Giovanni cosa intendi per bit di ingresso e di uscita e da personalizzare il codice per caricare i dati da un file.

Ciao
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: rom look_up_table

Postby giuseppe01051984 » 04 Oct 2013, 18:01

Sto cercando di realizzare lo schema di fig 6 in cui la look-up-table viene descritta in fig 7.
Attachments
look-up-table.png
look-up-table.png (31.83 KiB) Viewed 7431 times
giuseppe01051984
 
Posts: 49
Joined: 06 Sep 2013, 13:16

Re: rom look_up_table

Postby giuseppe01051984 » 09 Oct 2013, 14:55

Salve,
ho scritto un programma matlab che mi calcola 2^14 (valori) del seno in decimale ognuno codificato a 14 bit.
Ora vorrei convertirli in binario, riportarmeli in quartus ed associarli al mio ingresso lineare in uscita dall'accumulatore.
Come posso fare????Se non riesco a spiegarmi bene si può avere un tutorial che mi chiarisca le idee????
giuseppe01051984
 
Posts: 49
Joined: 06 Sep 2013, 13:16

Re: rom look_up_table

Postby giuseppe01051984 » 09 Oct 2013, 18:31

Ho generato un file .mif con matlab che contiene i valori binari che dovrei caricare nella ROM.
Provo ad aprirlo con quartus e mi da errore!!!in cosa sbaglio???
Vi allego il file...
Attachments
sine_samples.rar
(24.16 KiB) Downloaded 366 times
giuseppe01051984
 
Posts: 49
Joined: 06 Sep 2013, 13:16

Re: rom look_up_table

Postby deluca » 09 Oct 2013, 18:57

Non può funzionare poichè la struttura del file non è compatibile al formato mif.

La struttura del file mif è questa:

Code: Select all
WIDTH=8;
DEPTH=8;

ADDRESS_RADIX=UNS;
DATA_RADIX=UNS;

CONTENT BEGIN
   0  :   23;
   1  :   34;
   2  :   0;
   3  :   255;
   4  :   0;
   5  :   123;
   6  :   255;
   7  :   0;
END;

a sinistra ci stanno gli indirizzi, a destra il valore ...
se il file contiene valori binari cambia la radice:
Code: Select all
WIDTH=8;
DEPTH=8;

ADDRESS_RADIX=HEX;
DATA_RADIX=BIN;

CONTENT BEGIN
   0  :   00010111;
   1  :   00100010;
   2  :   00000000;
   3  :   11111111;
   [4..5] :  00000000;
   6  :   11111111;
   7  :   00000000;
END;

come vedi basta cambiare la radice di Address e di Data il gioco è fatto.
Ovviamente devi formattare l'uscita dei dati matilab secondo la struttura che ti ho mostrato.
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: rom look_up_table

Postby giuseppe01051984 » 09 Oct 2013, 23:17

La ringrazio.....scusi se non riesco a farmi capire ma per me a volte e difficile entrare bene nell'argomento!!!!
giuseppe01051984
 
Posts: 49
Joined: 06 Sep 2013, 13:16

Re: rom look_up_table

Postby deluca » 10 Oct 2013, 11:01

no problem.... alla prox
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: rom look_up_table

Postby giuseppe01051984 » 10 Oct 2013, 14:16

Salve .
Eccomi di nuovo qua,ho scritto la rom in allegato con valori del seno che ricavo da matlab.
Il problema che la simulazione si ferma al 10% e non va piu avanti(non da ne errori ne warning).
Cosa puo essere,spero di non dover cambiare simulatore
Attachments
rom.rar
(60.79 KiB) Downloaded 340 times
giuseppe01051984
 
Posts: 49
Joined: 06 Sep 2013, 13:16

Re: rom look_up_table

Postby deluca » 10 Oct 2013, 16:37

hai provato con una lpm_rom?

immagino che il progetto deve essere realizzato in vhdl nativo, ma intanto è meglio indagare passo passo, così da assicurarti che il resto dell'hardware sia ok!
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)


Return to VHDL x FPGA

Who is online

Users browsing this forum: No registered users and 11 guests

cron