Ajude-me a escrever um código para extração de RAM estática

P

PigiPigi

Guest
Eu quero escrever um código VHDL para um carneiro estática, que a cada ferramentas sintetizam FPGA extrai-lo e usa ram avilable em FPGA em vez disso. Qualquer pessoa pode fornecer informações úteis? PigiPigi,
 
1. Escolha o tipo de memória RAM que você quer. 2. Especifique o tamanho da memória RAM. 3. Substitua a RAM em seu projeto.
 
se vc quiser usar VHDL para descrever um carneiro estática de um FPGA, você pode explicitamente instanciar o FPGA de carneiro primitivo, como blockRAM em Xiline. se você quiser usar VHDL para descrever um carneiro estático para qualquer tipo de FPGA que utilizam seus primitves, eu acho que você tem problema fazê-lo em uma única descrição. Cada sintetizador inferir SRAM de uma forma pouco diferente. Se você não se importa para otimizar o uso da primitiva FPGA, você sempre pode escrever uma descrição SRAM em VHDL e deixar o sintetizador para implementá-lo usando LUTs, no entanto, não é recomendado para o tamanho SRAM grande quanto ele consome LUTs demais que deve ser usada para outras finalidades. ntxp
 
Basta escrever uma matriz comportamental e escrever processos para definir seu método rd / wr, 1/2 porta, etc o sintetizador em FPGA irá convertê-lo à sua própria memória RAM, é claro, por vezes, ter um desempenho degradar-se quando ela não se encaixa no original um.
 
Oi, Se você quiser usar o código VHDL para síntese de RAM, FPGA deve convertê-lo à sua própria memória RAM. E mesmo se não for convertida, seu resultado não é RAM, apenas uma matriz Flipflop.
 
escrever código VHDL que descibe carneiro é possível para alguns sintetizadores como (Leonardo), mas de experimentar que consomem grande área. A melhor maneira de economizar área e projeto rápido achive é instatiate RAM que o fornecimento vendore.
 
Oi, eu acho que o que quer que Al ferramenta de síntese que você usa, como Synopsys DC, etc âmbito cadência, você não pode obter resultado de RAM RTL. Se você quer uma memória RAM, você tem que ter suport da biblioteca vendedor ou fornecedor de fundição e utilizando ferramentas de silício compilador específicos para fornecedor.
 
Eu acho que eu não mencionar claramente no post anterior. Primeiro, você poderia escrever HDL para descrever sua memória RAM. Mas a melhor maneira é escrever de acordo com um estilo de RAM padrão. (Por exemplo, memória RAM de porta única ou duas portas RAM) Então, em FPGA, tentar encontrar a memória RAM que FPGA tinha fornecido para substituir a memória RAM que o seu projeto. Se você tem o "compilador de memória" (fornecido pelo Vendedor Fundry), você pode gerar o código HDL para a memória RAM diretamente do compilador.
 
O negócio provedor IP comum o carneiro instanciar com wraper. Isso faz você compilar seu IP tanto em ASIC e FPGA ambiente mais amigável.
 
Eu sintetizado este código VHDL para a memória RAM em um FPGA Xilinx
 
Não sei por que não acompanha o arquivo .. no entanto aqui está ele novamente
 
BIBLIOTECA ieee; ieee.std_logic_1164.all utilização, IEEE.Std_logic_arith.all; ram_nxm entidade é genérico (n: Positivo: = 3; m: Positivo: = 4); PORT (endereço: EM Unsigned (n-1 virou 0); - sem sinal é uma matriz bidimensional de valores de tipo std_logic ou seja, eles são efetivamente std_logic_vector Enable, RW: IN STD_LOGIC; dados: INOUT Unsigned (m-1 DOWNTO 0)); ram_nxm END; ARQUITETURA DE version1 ram_nxm é começar PROCESSO (endereço, Habilitar, RW, dados) ram_array TIPO IS ARRAY (0 a 2 ** n-1) de Unsigned (m-1 virou 0); - Este tipo é definido como sem sinal no índice variável numeric_std: INTEGER: = 0; ram_store VARIÁVEL : ram_array; BEGIN IF Ativar = '1 'então se RW = '0' então - escrevo carneiro sobre borda de subida do pulso gravação ram_store (conv_integer (endereço)): = dados; ELSIF RW = '1 'THEN dados
 

Welcome to EDABoard.com

Sponsor

Back
Top