Цитата(oleg_rudakov @ May 30 2005, 01:04)
Есть негласный стандарт при проектировании ASIC и FPGA: все, что касается памяти, делать на имеющихся на кристалле ресурсах (hardcore macroses). IBM ASIC Design Group проводила исследование по поводу эффективности применения регистровой памяти (а здесь именно этот тип и получится) при построении FIFO/LIFO. Так вот, до 256 байт - можно. Существенной деградации производительности и ресурсозатрат не проиходит. Все, что свыше этого - только с помощью ядер (аппаратаных примитивов типа BlockRAM у XILINX). Как-то очень давно, роясь в XILINX DataSheets, прочитал прямое указание использовать исключительно BlockRAM для генерации FIFO вместо HDL-inferred.
Нельзя ли уточнить, каковы причины использования Inferred RAM вместо применения готовых и оптимизированных ресурсов?
Причины как я уже указал, в том, что хочу научиться писать на хдл, без применения black box, там где это возможно, например с помощью констрейна RAM_STYLE можно уложить память описанную на хдл, туда куда нужно.
А насчет distributed ram если нужен фифо на 16 слов, зачем пользовать 2 килобайтный блок ? ?)
Цитата(andrew_b @ May 30 2005, 00:54)
Цитата(des00 @ May 30 2005, 08:41)
И я хочу понять принцип, все таки флаги должны быть регистровыми, или асинхронными.
http://forum.electronix.ru/index.php?showtopic=3197 ?
спасибо, знакомлюсь
Цитата(andrew_b @ May 30 2005, 00:54)
Цитата(des00 @ May 30 2005, 08:41)
И я хочу понять принцип, все таки флаги должны быть регистровыми, или асинхронными.
http://forum.electronix.ru/index.php?showtopic=3197 ?
Вопрос по пдф, xapp131, рисунок Figure 2: 511 x 8 Synchronous FIFO
у меня получаються точно такиеже осцилограммы, за одним исключением на рисунке 2 строб записи прерываеться одновременно с установлением сигнала full. У меня в в тест бенче процесс записи:
Код
process (clk) is
....
begin
.....
if (rising_edge(clk)) then
if (full /= '1') then
write_allow <= '1';
else
write_allow <= '0';
end if;
.............
и строб записи перекрывается с full на такт

(