Как да използвам Блок RAM в моя spartanII основава дизайн?

V

Vonn

Guest
Имам нужда да се използва Блок RAM в моя spartan II основава дизайн, това е първият път да се използва логиката ядрото генератор в ISE5.1.
Имам следвани всички стъпки в ядрото генератор и е завършена successfuly, но след като добавя създадената VHD файла на моята дизайн Аз забелязах, че е под файл в прозореца източници, наречен wrapped_filename?
И когато аз се опитах да се съберат образуваните овен файл Имам ли съобщение за грешка
"ERROR: HDLParsers: 164 - C: / Fndtn / хамбар / делач / myram.vhd линия 111. Разбор грешка, неочаквано $"
Всъщност линия 111 е краят на генерирания код и няма всяко $???
Ако някое тяло беше използван ядрото генератор преди моля да ми помогнете

 
Алтернативата е начин да се използва чист VHDL код.XST може автоматично примери BlockRAM директно от HDL код.Няма нужда да се използва CoreGen.

Виж глава 2 на Xilinx Синтез технологии (XST) Ръководство за потребителя.

- Ето един пример за едно-единствено пристанище BlockRam ---------
Библиотеката IEEE;
използване IEEE.std_logic_1164.all;
използване IEEE.std_logic_unsigned.all;

образувание sync_ram_singleport е
родови (data_width: природни: = 8;
addr_width: природни: =

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Охлаждам" border="0" />

;
порт (
clk: в std_logic;
ние: в std_logic;
адр: в std_logic_vector (addr_width - 1 downto 0);
data_in: в std_logic_vector (data_width - 1 downto 0);
data_out: изложени std_logic_vector (data_width - 1 downto 0)
);
края sync_ram_singleport;

RTL архитектура на sync_ram_singleport е

Тип mem_type е Array (2 ** addr_width-1 downto 0) от std_logic_vector (data_width - 1 downto 0);
сигнал Памет: mem_type;

сигнал addr_reg: std_logic_vector (addr_width - 1 downto 0);

започвам

Singleport:
процес (clk)
започвам
ако (clk'event и clk = "1"), тогава
ако (ние = "1"), тогава
Памет (conv_integer (адр)) <= data_in;
край, ако;
addr_reg <= адр;
край, ако;
край процеса singleport;

data_out <= Памет (conv_integer (addr_reg));

края RTL;
-------------------------------------------------- ---------------------------

 
Благодаря ти, elektrom ... Той работи след това да се поберат модифицирани с моите нужди, но и се сблъскват друг проблем, който
е. ..
Имам нужда да се свържат данните автобус на овена на изхода свят (от FPGA) към общите данни автобус.Така че определено данните в организацията, както inout ...но това не е работа .. Искам да кажа Ако искате да ръководят synthizer да го RAM, вие трябва да DIN и dout и ако не направите това inout на synthizer никога няма да я тури като RAM.
Ако съм грешен Plz правилно моето разбиране

 
XST не е толкова умен.Вие трябва да напишете кода в своя собствен стил.Разтворът е покритието е овен модул от друг модул.Подобно на това ...

-------------------------------------------------- ---------------------------
БИБЛИОТЕКА IEEE;
ИЗПОЛЗВАНЕ IEEE.std_logic_1164.all;

ЛИЦЕ RAM512x16 СЕ
Порт (
CLK: В std_logic;
Адр: В std_logic_vector (9 DOWNTO 0); - Адрес
WE: В std_logic; - Напишете позволи
OE: В std_logic;
Данни: INOUT std_logic_vector (15 DOWNTO 0) - Данни вход / изход
);

END RAM512x16;

АРХИТЕКТУРА НА RAM512x16 RTL СЕ

компонент sync_ram_singleport
родови (data_width: природни: = 8;
addr_width: природни: =

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="Охлаждам" border="0" />

;
порт (
clk: в std_logic;
ние: в std_logic;
адр: в std_logic_vector (addr_width - 1 downto 0);
data_in: в std_logic_vector (data_width - 1 downto 0);
data_out: изложени std_logic_vector (data_width - 1 downto 0)
);
края компонент;

сигнал DIN: std_logic_vector (15 downto 0);
сигнал DOUT: std_logic_vector (15 downto 0);

BEGIN

U1: sync_ram_singleport
генерични карта (data_width => 9,
addr_width => 16)
порт карта (
clk => CLK,
ние => НИЕ
адр => адр,
data_in => DIN,
data_out => DOUT
);

- Tristate буфер
Данни <= DOUT когато OE ='1 'друго (други => "Z");
DIN <= данни;

END RTL;
-------------------------------------------------- ---------------------------

Успех!

 
Търсене LIB и XST xilinx документи те съдържа решение на проблемите си.

 
За да използвате coregen, вие не трябва да добавите в vhd файл.xst нуждите на. xco файл.

Вие може да се позове coregen от ise по: нов източник => ядрото GEN ПР.Тогава блок овен автоматично ще се добавят във вашия проект.Той трябва да работи според очакванията.

 
здрасти
, когато искате да използвате за оплождане компонент, който "съм, генерирани с CoreGen можете да намерите на компонента пристанище definitiion в vhd файл, който coregen е създаден.АЗ имам използван Dual Port Рам от coregen няколко пъти и аз не е имал проблем.

 
Аз бях използвал Core генератора да има един единствен Блок RAM; Първите линии в VHDL файл
съдържа announcment:

- Трябва да се съберат на обвивка файл ramcore.vhd при симулиране
- Ядрото, ramcore.При съставянето на обвивка файл, не забравяйте да
- Позоваване на XilinxCoreLib VHDL симулация библиотека.За по-подробна
- Инструкции,
обърнете се към "Coregen Ръководство на потребителя".

ramcore: е създаден vhd файл и можете да видите wrapper_ramcore като файл в подизвадка прозорец
"Източник в проект" като подизпълнител на ramcore!
Не мога да се справят с този файл!Това
е отбелязана с червено quesion марки
и когато щракнете върху него, се появява като нов прозорец, който създавате нов източник???
Също така Създаденото VHD файла не може да се компилира и дава грешка:
ERROR: HDLParsers: 164 - C: / Проекти / MyProjects / RAM / ramcore.vhd линия 112.Грешка при анализа, неочаквани $
Имам върне обратно в PDF "Coregen Потребители гид", но не можаха да намерят решение за този проблем
Може ли тялото ми дай ръка
Моля направете своя пост в стъпки:
След Имам ли vhd файлове, създадени от ядрото ген.Знаейки, че Iam използвайки ISE5.1
Какво трябва да направя?
1 --
2 --
3 --

 
здрасти
Аз създаден същото ядрото (Искам да кажа едно-единствено блок памет) и след като тези, коментира редове!Той съдържа следните пристанищни определение:
БИБЛИОТЕКА IEEE;
ИЗПОЛЗВАНЕ ieee.std_logic_1164.ALL;

Библиотека XilinxCoreLib;
ЛИЦЕ тест
порт (
адр: В std_logic_VECTOR (7 downto 0);
clk: В std_logic;
DIN: В std_logic_VECTOR (15 downto 0);
dout: OUT std_logic_VECTOR (15 downto 0);
ние: В std_logic);
END тест;

1.Вие трябва да поставите следния код във вашата най-високо ниво дизайн:
compnent тест
порт (
адр: В std_logic_VECTOR (7 downto 0);
clk: В std_logic;
DIN: В std_logic_VECTOR (15 downto 0);
dout: OUT std_logic_VECTOR (15 downto 0);
ние: В std_logic);
края компонент;
2.Тогава instanciate компонента и да го използвате!този на всички!

 

Welcome to EDABoard.com

Sponsor

Back
Top