Изучаем САПР Altera Quartus II / Intel Quartus Prime, язык описания аппаратуры Verilog HDL и кое-что про VHDL. Программируем FPGA Altera / Intel Cyclone III, Cyclone IV, MAX II, MAX10. Экспериментируем с платами разработчика FPGA серии Марсоход, Марсоход2, Марсоход3. А еще разбираемся с FPGA Gowin.
Как мы знаем, коды Грея (Gray codes) – это специальная система счисления, в которой два соседних значения отличаются только в одном разряде. Они часто используются для повышения надежности аппаратуры. Одно из применений кодов Грея – передача значений указателей головы/хвоста очереди из одного клокового домена в другой при проектировании асинхронного FIFO.
Рассмотрим способы преобразования кодов Грея в двоичное число.
Очередь FIFO (First In, First Out) представляет собой циклический буфер, где будут храниться помещаемые в очередь данные. Есть два указателя: указатель на «голову» очереди (head) и указатель на «хвост» очереди (tail).
Новый записываемый элемент помещается в ячейку, на которую указывает head, затем этот указатель перемещается на следующую ячейку памяти буфера.
Выбираются элементы из очереди по указателю tail, после того, как элемент выбран из очереди, указатель tail так же передвигается вперед к следующей ячейке.
В той статье я писал о передаче группы сигналов в другой клоковый домен. Но зачем это вообще может понадобиться, ведь, как мы видим, несколько клоковых доменов - это дополнительная головная боль для разработчика?
Хочу рассказать об одном проекте, в котором я принимал участие – разработка PCI видеоадаптера. Вот тут используется несколько тактовых частот в одном проекте.
Подробнее...