Задача
Собрать очередь FIFO на 8 слов по 8 бит с признаками пустоты и заполненности.
Тип схемы и среда
Последовательная схема: массив ячеек + два кольцевых указателя с разрядом-переносом.
Алгоритм работы
Указатели wp и rp по 4 бита (3 адресных + 1 бит оборота). Пусто — указатели равны; полно — адреса равны, а биты оборота различны.
Код на AHDL
% Проект 23: FIFO 8 x 8 на кольцевых указателях % SUBDESIGN ahdl_23_fifo ( clk, clrn : INPUT; wr, rd : INPUT; din[7..0] : INPUT; dout[7..0]: OUTPUT; full : OUTPUT; empty : OUTPUT; ) VARIABLE mem[7..0][7..0] : DFF; wp[3..0] : DFF; rp[3..0] : DFF; BEGIN mem[][].clk = clk; wp[].clk = clk; wp[].clrn = clrn; rp[].clk = clk; rp[].clrn = clrn; empty = (wp[].q == rp[].q); full = (wp[2..0].q == rp[2..0].q) & (wp[3].q != rp[3].q); IF wr & !full THEN mem[wp[2..0].q][].d = din[]; wp[].d = wp[].q + 1; ELSE wp[].d = wp[].q; END IF; IF rd & !empty THEN rp[].d = rp[].q + 1; ELSE rp[].d = rp[].q; END IF; dout[] = mem[rp[2..0].q][].q; END;
Пояснения
Дополнительный старший бит указателя различает состояния «пусто» и «полно» при равных адресах — стандартный приём для кольцевого FIFO.
Инструменты и справочники по теме
📦 help-user.ru — скупка и ремонт компьютерной техники. Продать ноутбук, ПК, комплектующие — help-user.ru.
Что дальше
Скачайте ahdl_23_fifo.tdf, создайте проект в MAX+PLUS II или Quartus,
назначьте выводы под свою плату и скомпилируйте. Остальные 49 разработок — в
разделе проектов на AHDL.