[an error occurred while processing this directive]
|
Надо добавить триггер, по состоянию которого вы сможете определить грубо говоря с какой стороны два указателя сходятся в одну точку, или другими словами, какая операция была произведена последней: если запись, то равенство указателей свидетельствует о полном FIFO, если чтение - то FIFO пустое. На одном триггере такой вариант можно реализовать для синхронного FIFO, которое тактируется по одному CLK. Для асинхронного FIFO можно испоьзовать схемку вот из этой статьи:
http://www.xilinx.com/xcell/xl37/xcell37_54.pdf
Только по-хорошему, смысл использовать все 2^n ячеек имеет только тогда, когда у вас FIFO очень маленькое, скажем 8 слов. Для обычных размеров FIFO это одно дополнительное слово не играет ни малейшего значения. В идеале FIFO должно быть практически всегда в состоянии "наполовину пусто", даже Xilinx в CoreGen использует для FIFO 2^n-1 слов ;-)
E-mail: info@telesys.ru