реклама на сайте
подробности

 
 
> Инициализация блочной памяти, FPGA фирмы Actel
Maverick
сообщение Jul 14 2010, 12:13
Сообщение #1


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Интересует как это сделать с помощью HDL языка (желательно VHDL).
И существует ли она вообще начальная инициализация памяти FPGA фирмы Actel с помощью HDL языка?
help.gif
PS Отладочная плата. Программное обеспечение последней версии.
PS PS Для FPGA фирмы Xilinx делалось просто.


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
YVA
сообщение Sep 15 2010, 05:25
Сообщение #2





Группа: Новичок
Сообщений: 9
Регистрация: 22-04-09
Пользователь №: 48 071



Цитата(Maverick @ Jul 14 2010, 19:13) *
Интересует как это сделать с помощью HDL языка (желательно VHDL).
И существует ли она вообще начальная инициализация памяти FPGA фирмы Actel с помощью HDL языка?
help.gif
PS Отладочная плата. Программное обеспечение последней версии.
PS PS Для FPGA фирмы Xilinx делалось просто.

Давно в версии Libero 6.2 я делал следующим образом:

-- Version: 6.2 6.2.50.1

library ieee;
use ieee.std_logic_1164.all;

library proasic3;

entity ROMD512X8 is
port(DATAA : in std_logic_vector(7 downto 0);
ADDRESSA : in std_logic_vector(8 downto 0);
RWA : in std_logic;
BLKA : in std_logic;

QA : out std_logic_vector(7 downto 0);

DATAB : in std_logic_vector(7 downto 0);
ADDRESSB : in std_logic_vector(8 downto 0);
RWB : in std_logic;
BLKB : in std_logic;

QB : out std_logic_vector(7 downto 0);

CLOCK : in std_logic);
end ROMD512X8;


architecture DEF_ARCH of ROMD512X8 is

component RAM4K9
generic (MEMORYFILE:string := "");

port(ADDRA11, ADDRA10, ADDRA9, ADDRA8, ADDRA7, ADDRA6,
ADDRA5, ADDRA4, ADDRA3, ADDRA2, ADDRA1, ADDRA0,
ADDRB11, ADDRB10, ADDRB9, ADDRB8, ADDRB7, ADDRB6,
ADDRB5, ADDRB4, ADDRB3, ADDRB2, ADDRB1, ADDRB0,
DINA8, DINA7, DINA6, DINA5, DINA4, DINA3, DINA2, DINA1, DINA0,
DINB8, DINB7, DINB6, DINB5, DINB4, DINB3, DINB2, DINB1, DINB0,
WIDTHA0, WIDTHA1, WIDTHB0, WIDTHB1, PIPEA, PIPEB, WMODEA, WMODEB,
BLKA, BLKB, WENA, WENB, CLKA, CLKB, RESET : in std_logic := 'U';

DOUTA8, DOUTA7, DOUTA6, DOUTA5, DOUTA4, DOUTA3, DOUTA2, DOUTA1, DOUTA0,
DOUTB8, DOUTB7, DOUTB6, DOUTB5, DOUTB4, DOUTB3, DOUTB2, DOUTB1, DOUTB0 : out std_logic);
end component;

component VCC
port( Y : out std_logic);
end component;

component GND
port( Y : out std_logic);
end component;

signal VCC_1_net, GND_1_net : std_logic ;
begin

VCC_2_net : VCC port map(Y => VCC_1_net);
GND_2_net : GND port map(Y => GND_1_net);

ROMD512X8_R0C0 : RAM4K9
generic map(MEMORYFILE => "ROMD512X8_R0C0.mem")

port map(ADDRA11 => GND_1_net,
ADDRA10 => GND_1_net,
ADDRA9 => GND_1_net,
ADDRA8 => ADDRESSA(8),
ADDRA7 => ADDRESSA(7),
ADDRA6 => ADDRESSA(6),
ADDRA5 => ADDRESSA(5),
ADDRA4 => ADDRESSA(4),
ADDRA3 => ADDRESSA(3),
ADDRA2 => ADDRESSA(2),
ADDRA1 => ADDRESSA(1),
ADDRA0 => ADDRESSA(0),
ADDRB11 => GND_1_net,
ADDRB10 => GND_1_net,
ADDRB9 => GND_1_net,
ADDRB8 => ADDRESSB(8),
ADDRB7 => ADDRESSB(7),
ADDRB6 => ADDRESSB(6),
ADDRB5 => ADDRESSB(5),
ADDRB4 => ADDRESSB(4),
ADDRB3 => ADDRESSB(3),
ADDRB2 => ADDRESSB(2),
ADDRB1 => ADDRESSB(1),
ADDRB0 => ADDRESSB(0),
DINA8 => GND_1_net,
DINA7 => DATAA(7),
DINA6 => DATAA(6),
DINA5 => DATAA(5),
DINA4 => DATAA(4),
DINA3 => DATAA(3),
DINA2 => DATAA(2),
DINA1 => DATAA(1),
DINA0 => DATAA(0),
DINB8 => GND_1_net,
DINB7 => DATAB(7),
DINB6 => DATAB(6),
DINB5 => DATAB(5),
DINB4 => DATAB(4),
DINB3 => DATAB(3),
DINB2 => DATAB(2),
DINB1 => DATAB(1),
DINB0 => DATAB(0),
WIDTHA0 => VCC_1_net,
WIDTHA1 => VCC_1_net,
WIDTHB0 => VCC_1_net,
WIDTHB1 => VCC_1_net,
PIPEA => GND_1_net,
PIPEB => GND_1_net,
WMODEA => GND_1_net,
WMODEB => GND_1_net,
BLKA => BLKA,
BLKB => BLKB,
WENA => RWA,
WENB => RWB,
CLKA => CLOCK,
CLKB => CLOCK,
RESET => VCC_1_net,
DOUTA8 => OPEN ,
DOUTA7 => QA(7),
DOUTA6 => QA(6),
DOUTA5 => QA(5),
DOUTA4 => QA(4),
DOUTA3 => QA(3),
DOUTA2 => QA(2),
DOUTA1 => QA(1),
DOUTA0 => QA(0),
DOUTB8 => OPEN ,
DOUTB7 => QB(7),
DOUTB6 => QB(6),
DOUTB5 => QB(5),
DOUTB4 => QB(4),
DOUTB3 => QB(3),
DOUTB2 => QB(2),
DOUTB1 => QB(1),
DOUTB0 => QB(0));
end DEF_ARCH;

Файл ROMD512X8_R0C0.mem

X00000000
X00000011
X00000110
X00001001
X00001101
X00010000
X00010011
X00010110
X00011001
и т.д. 512 раз


Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 03:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01373 секунд с 7
ELECTRONIX ©2004-2016