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

 
 
> Использование Coregen fifo_generator_v4_3
D-Luxe
сообщение Feb 25 2011, 18:01
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Использую коргеновское фифо версии 4.3 в котором запись и чтение выполняется по разным частотам.

Цитата
ENTITY fifo_generator_v4_3 IS
port (
din: IN std_logic_VECTOR(31 downto 0);
rd_clk: IN std_logic;
rd_en: IN std_logic;
rst: IN std_logic;
wr_clk: IN std_logic;
wr_en: IN std_logic;
dout: OUT std_logic_VECTOR(31 downto 0);
empty: OUT std_logic;
full: OUT std_logic;
valid: OUT std_logic;
rd_data_count: OUT std_logic_VECTOR(9 downto 0);
wr_ack: OUT std_logic;
wr_data_count: OUT std_logic_VECTOR(9 downto 0));
END fifo_generator_v4_3;


Не понимаю назначение выводов rd_data_count, wr_data_count. В документации сказано, что rd_data_count - количество двордов, доступных для чтения, а wr_data_count - количество записанных двордов.

Как это фифо подключить к Aldec'у?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
RobFPGA
сообщение Feb 26 2011, 17:11
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Приветствую!

rd_data_count - число слов которые ДОСТУПНЫ для чтения из фифо в данный момент (Rd clk)

wr_data_count -число слов которые ЗАПИСАНЫ в фифо в данный момент (Wr clk)

Используются для того чтобы знать сколько можно еще записать (FIFOLEN-wr_data_count) или еще прочитать (rd_data_count ) так как при записи статус со стороны Rd обновляется с задержкой так же как и при чтении статус со стороны Wr.

Успехов! Rob.


Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 26 2011, 17:18
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Цитата(RobFPGA @ Feb 26 2011, 20:11) *
Приветствую!

rd_data_count - число слов которые ДОСТУПНЫ для чтения из фифо в данный момент (Rd clk)

wr_data_count -число слов которые ЗАПИСАНЫ в фифо в данный момент (Wr clk)

Используются для того чтобы знать сколько можно еще записать (FIFOLEN-wr_data_count) или еще прочитать (rd_data_count ) так как при записи статус со стороны Rd обновляется с задержкой так же как и при чтении статус со стороны Wr.

Успехов! Rob.

wr_data_count - rd_data_count = задержке или
rd_data_count - wr_data_count = задержке ?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post
RobFPGA
сообщение Feb 26 2011, 18:02
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 214
Регистрация: 23-12-04
Пользователь №: 1 643



Цитата(D-Luxe @ Feb 26 2011, 19:18) *
wr_data_count - rd_data_count = задержке или
rd_data_count - wr_data_count = задержке ?


А зачем Вам это? Так делать нехорошо! Такой результат нельзя даже в удавах мерить sm.gif

Величина задержки вещь непостоянная, относительно среднего уровня зависящего от реализации автомата в fifo, и меняется от соотношения частот Rd/Wr и временных соотношений фронтов Rd Clk/Wr Clk.

Рассматривайте каждую сторону fifo как черный ящик -
сторона Wr ни чего не знает о Rd (пишем данный на деревню к дедушке). Ей известно только что нельзя/можно записать и сколько если можно.

Тоже и со стороны Rd (черт его знает откуда посылка пришла) - есть/нет что читать и сколько, если есть что.

Ну а fifo в этом случае работает как почтальон Печкин sm.gif

Успехов! Rob.
Go to the top of the page
 
+Quote Post
D-Luxe
сообщение Feb 26 2011, 18:50
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 347
Регистрация: 24-02-10
Из: Пенза
Пользователь №: 55 642



Цитата(RobFPGA @ Feb 26 2011, 21:02) *
А зачем Вам это? Так делать нехорошо! Такой результат нельзя даже в удавах мерить sm.gif

Величина задержки вещь непостоянная, относительно среднего уровня зависящего от реализации автомата в fifo, и меняется от соотношения частот Rd/Wr и временных соотношений фронтов Rd Clk/Wr Clk.

Рассматривайте каждую сторону fifo как черный ящик -
сторона Wr ни чего не знает о Rd (пишем данный на деревню к дедушке). Ей известно только что нельзя/можно записать и сколько если можно.

Тоже и со стороны Rd (черт его знает откуда посылка пришла) - есть/нет что читать и сколько, если есть что.

Ну а fifo в этом случае работает как почтальон Печкин sm.gif

Успехов! Rob.

Спасибо, догнал!

Тогда вопрос такой.

Допустим я пишу в ФИФО езернет пакеты по частоте 125 МГц, а читаю по 100 МГц. Возможна ли такая ситуация, что на чтении существует задержка между байтами? (по простому говоря идет 10 байт пакета потом задержка в несколько тактов и дальше идет 11 байт пакета)

И возможна ли такая ситуация если пакеты пишутся на 100 МГц, а читаются на 125 МГц?


--------------------
Нелегко оказаться на верном пути, но куда труднее его пройти.
(с) Уилл Роджерс
Go to the top of the page
 
+Quote Post



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

 


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


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