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

 
 
> Асинхронное FIFO Spartan3, Странное поведение
0xFF
сообщение Feb 15 2006, 18:26
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 131
Регистрация: 9-01-06
Пользователь №: 12 984



Доброго времени суток.

Необходимо в проекте использовать асинхронное фифо. Чтобы не тратить время на построение модуля, попросил CoreGenerator (fifo_generator_v2_2) об оказании услуги. Установочки были следующими

FIFO_GENERATOR_V2_2 #(
0, // c_common_clock
0, // c_count_type
2, // c_data_count_width
"BlankString", // c_default_value
32, // c_din_width
"0", // c_dout_rst_val
32, // c_dout_width
0, // c_enable_rlocs
"spartan3", // c_family
0, // c_has_almost_empty
0, // c_has_almost_full
0, // c_has_backup
0, // c_has_data_count
0, // c_has_meminit_file
0, // c_has_overflow
0, // c_has_rd_data_count
0, // c_has_rd_rst
1, // c_has_rst
0, // c_has_underflow
0, // c_has_valid
0, // c_has_wr_ack
0, // c_has_wr_data_count
0, // c_has_wr_rst
2, // c_implementation_type
0, // c_init_wr_pntr_val
1, // c_memory_type
"BlankString", // c_mif_file_name
0, // c_optimization_mode
0, // c_overflow_low
1, // c_preload_latency
0, // c_preload_regs
512, // c_prim_fifo_type
64, // c_prog_empty_thresh_assert_val
64, // c_prog_empty_thresh_negate_val
0, // c_prog_empty_type
192, // c_prog_full_thresh_assert_val
192, // c_prog_full_thresh_negate_val
0, // c_prog_full_type
2, // c_rd_data_count_width
256, // c_rd_depth
8, // c_rd_pntr_width
0, // c_underflow_low
0, // c_use_fifo16_flags
0, // c_valid_low
0, // c_wr_ack_low
2, // c_wr_data_count_width
256, // c_wr_depth
8, // c_wr_pntr_width
1) // c_wr_response_latency
inst (
.DIN(din),
.RD_CLK(rd_clk),
.RD_EN(rd_en),
.RST(rst),
.WR_CLK(wr_clk),
.WR_EN(wr_en),
.DOUT(dout),
.EMPTY(empty),
.FULL(full),
.CLK(),
.BACKUP(),
.BACKUP_MARKER(),
.PROG_EMPTY_THRESH(),
.PROG_EMPTY_THRESH_ASSERT(),
.PROG_EMPTY_THRESH_NEGATE(),
.PROG_FULL_THRESH(),
.PROG_FULL_THRESH_ASSERT(),
.PROG_FULL_THRESH_NEGATE(),
.RD_RST(),
.WR_RST(),
.ALMOST_EMPTY(),
.ALMOST_FULL(),
.DATA_COUNT(),
.OVERFLOW(),
.PROG_EMPTY(),
.PROG_FULL(),
.VALID(),
.RD_DATA_COUNT(),
.UNDERFLOW(),
.WR_ACK(),
.WR_DATA_COUNT());
И вот получил я долгожданное фифо, но вот негаразд после первой записи только после нескольких сотен тактов стороны чтения получаю долгожданные данные. Глубину вроде задавал 256, но неужели нужно ждать чтоб получать данные.

ПОдскажите пожалуста, может я где то в установках чего напутал

Заранее благодарен.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Azazella
сообщение Feb 16 2006, 10:01
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 58
Регистрация: 1-02-06
Из: Украина
Пользователь №: 13 850



Данные на выходе асинхронного фифо появляются при проведении оперции чтения из фифо, которое можно проводить сразу же после записи (через один или два такта точно не помню) и совсем не должно зависит от глубины фифо (это принцип фифо).
При условии, что присутствуют клоки, сняты сигналы сброса глюков быть не должно.

А еще в глаза бросились следующие настройки, может я не прав, но проверте
1, // c_preload_latency
1) // c_wr_response_latency
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 05:22
Рейтинг@Mail.ru


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