Código de RAM estática VHDL

Z

zilak

Guest
Olá ...Preciso do código VHDL de RAM 16 * 16 bits estática que funciona com ou sem buffer de leitura e com / sem particionamento ...

Thank you in advance,
Ziläk

 
Isso geralmente é tratada utilizando ferramentas específicas do fornecedor do FPGA.A razão é que é a aplicação específica quando mais compacta e eficiente.Se você estiver usando FPGAs Xilinx, use a ferramenta CoreGen para gerar um módulo VHDL que irá fazer esta função.Se você estiver usando outro fornecedor, o seu conjunto de ferramentas de busca por algo semelhante ou visite o website.

 
Oi Ziläk,
FYI.
------------- Pseudo Dual Port Exemplo VHDL
library IEEE;
use IEEE.std_logic_1164.all;
uso IEEE.STD_LOGIC_ARITH.ALL;
uso ieee.std_logic_unsigned.all;

daul_port_ram entidade é
genéricos (data_width: natural: = 8;
addr_width: natural: = 16);
porto (clk_in: in std_logic;
clk_out: in std_logic;
we: IN STD_LOGIC;
addr_in: in std_logic_vector (addr_width - 1 downto 0);
addr_out: in std_logic_vector (addr_width - 1 downto 0);
data_in: in std_logic_vector (data_width - 1 downto 0);
data_out: out std_logic_vector (data_width - 1 downto 0)
);
daul_port_ram final;

daul_port_ram_arch arquitetura de daul_port_ram é

mem_type tipo é array (2 ** addr_width downto 0) of std_logic_vector (data_width - 1 downto 0);
mem sinal: mem_type;

começo

mem_write: processo (clk_in)
começo
Se clk_in'event e clk_in = '1 'then
if (we = '1 ') then
mem conv_integer ((addr_in)) <= data_in;
END IF;
END IF;
processo final escrever;

mem_read: processo (clk_out)
começo
Se clk_out'event e clk_out = '1 'then
data_out <= mem (conv_integer (addr_out));
END IF;
processo final de leitura;

daul_port_ram_arch final;

 
anexada é a códigos VHDL e Verilog de cerca de 26 tipos diferentes de machos

Estes códigos são de userguide XST Xilinx

são eles:<img src="http://images.elektroda.net/99_1233617353_thumb.gif" border="0" alt="Static RAM VHDL code" title="RAM estática de código VHDL"/>
 
-------------------------------------------------- --------------------------------
-------------------------------------------------- ------------------------------
- Titre: ram synthétisable
- Projet:
-------------------------------------------------- -----------------------------
- Fichier: ram_simple.vhd

-------------------------------------------------- -----------------------------
- Descrição: RAM avec une seule adresse horloges mais deux
- Descrição conforme a la doc página leo_tech.pdf 292
- Occupee superfície: 16 geradores de função

-------------------------------------------------- -----------------------------
LIBRARY ieee;
Use IEEE.std_logic_1164.all;
USO ieee.numeric_std.ALL;

Ram_simple ENTITY IS
PORT (
Sinal de dados: IN std_logic_vector (7 DOWNTO 0);
SINAL endereço: IN std_logic_vector (4 DOWNTO 0);
Sinal que, inclock, outclock: IN std_logic;
SINAL Q: OUT std_logic_vector (7 DOWNTO 0));Ram_simple END;Fe2 ARQUITETURA DE ram_simple IS

Mem_type TIPO IS ARRAY (31 DOWNTO 0) DE std_logic_vector (7 DOWNTO 0);
SINAL Mem: mem_type;
SINAL address_int: unsigned (4 DOWNTO 0);

BEGIN - ex2
l0: PROCESS (inclock, outclock, nós, address)

BEGIN - PROCESSO
IF (inclock = '1 'AND inclock'event) THEN
address_int <= unsigned (endereço);
IF we = '1 'THEN
MEM (To_integer (unsigned endereço ())) <= dados;
END IF;
END IF;
IF (outclock = '1 'AND outclock'event) THEN
q <= mem (to_integer (address_int));
END IF;

END PROCESS;

END Fe2;

 

Welcome to EDABoard.com

Sponsor

Back
Top