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

 
 
> Использование 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, 21:01
Сообщение #2


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

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



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

Вообще нужно предусматривать любые варианты - главное условие как в задачке о бассейнах - в среднем скорость записи данных должна быть меньше или равна скорости чтения (а то вода зальет нижние этажи :-( ).

Размер fifo определяется в первом приближении наибольшей мгновенной разницей скоростей.

Например пишем пакеты на 125 читаем на 100
Судя по скорости это 1Gbit Ethernet. За время записи в fifo пакета в 1500 байт на 125 MHz успеем вычитать из него на 100 MHz всего 1200 байт
и еще 300 оставшихся можем вычитать за 3 mks во время стандартной паузы между пакетами которая не меньше чем 9.6 mks. То есть для этого случая можно fifo делать в 512 байт. Но это если мы не хотим обрабатывать jumbo пакеты которые могут быть аж 9600 байт. При этом естественно начинать читать нужно как только появится первые данные на чтение в fifo.
В приведенном случае сигнал наличия данных не пропадет пока вы не вычитаете последний байт.

Если же наоборот - пишем на 100MHz в fifo, а на приемной стороне ждем когда наберется нужное количество в fifo то запускаем чтение на 125 MHz и заданное количество байт - отправляем пакет. Тут fifo должно быть как минимум на размер пакета.

Но это частные примеры. В общем случае надо рассматривать конкретную логику работы устройства.

Успехов! Rob.





Go to the top of the page
 
+Quote Post
Boris_TS
сообщение Feb 27 2011, 17:29
Сообщение #3


Злополезный
****

Группа: Свой
Сообщений: 608
Регистрация: 19-06-06
Из: Russia Taganrog
Пользователь №: 18 188



Цитата(RobFPGA @ Feb 27 2011, 00:01) *
...время стандартной паузы между пакетами которая не меньше чем 9.6 mks...

Вроде же минимальная стандартная (по IEEE 802.3) пауза между пакетами 12 тактов по 8нс (125МГц) каждый. Или я что-то не правильно понял ?
Go to the top of the page
 
+Quote Post



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

 


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


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