FIFO с 2 часами в VHDL

У меня проблема с назначением VHDL. Мне нужно создать буфер FIFO между шиной 500 МГц и другой шиной 30 МГц.

Я разработал базовый буфер FIFO с

входные данные: Data_in, Write_EN, CLK_500, Read_EN, CLK_30, FlushFIFO.

выходы: Data_out, FULL, EMPTY.

Этот буфер был разработан с использованием 2D-массива:

type fifo_arr is array (0 to 63) of std_logic_vector(39 downto 0);
signal FIFO : fifo_arr := (others => (others => '0'));

Проблема заключается в следующем: как я должен записывать процессы и поддерживать указатель между ними для синхронизации? С методом, который я попробовал, код не будет синтезировать (ОШИБКА:XST:827 Сигнал ptr не может быть синтезирован)

Есть идеи?

спасибо и всего наилучшего

4 ответа

Это может быть идея показать нам код, на который он действительно жаловался!

FIFO через часовые домены довольно сложны, их не следует пытаться слегка

Сказав это - поскольку это похоже на домашнее задание, хорошее чтение может быть найдено здесь:

http://eda.ee.nctu.edu.tw/jdhuang/courses/ipcd04/paper/alfke_final.pdf

(один из авторов - покойный, великий Питер Альфке - он разработал первый чип FIFO в 1969 году и широко считается гуру FIFO).

Вы можете взглянуть на эти ядра FIFO, доступные в opencores, особенно в версии с двумя часами fifo. Это даст вам правильное представление о синхронизации указателей.

http://opencores.org/project,generic_fifos

Я думаю, что вам понадобится указатель чтения и записи, оба по модулю 64, так что fifo - это в основном кольцевой буфер. Используйте серое кодирование для адресации, поскольку числа с серым кодом изменяются только на 1 бит между соседними значениями. Это может быть использовано для проверки ошибок. Указатель чтения находится в домене чтения, указатель записи находится в домене записи. Возможно, пересечь каждый указатель на противоположный домен для полной и пустой проверки?

Здесь вы можете найти pdf-файл проекта GitHub, а эту ссылку можно использовать для всего проекта.

Еще один хороший проект можно найти по этой ссылке .

Другие вопросы по тегам