Перейти к содержанию
    

массив STD_LOGIC_VECTOR vs FIFO

Кто может сказать преимущества FIFO перед массивом STD_LOGIC_VECTOR?

И в каких случаях лучше использовать массив STD_LOGIC_VECTOR?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто может сказать преимущества FIFO перед массивом STD_LOGIC_VECTOR?

И в каких случаях лучше использовать массив STD_LOGIC_VECTOR?

в чем конкретно вопрос?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Массив - доступ к любому члену в любой момент

фифо - доступ только к самому ране добавленному и ни к каким другим

 

Массив при добавлении элемента надо всегда знать какая ячейка не занята.

фифо - просто добавляете элементы и они добавляются на свободное место

 

Данные в массиве хранятся всегда

фифо вычитали данное, и нет больше данных

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще не забывайте об используемых ресурсах:

фифо - на ячейках памяти (даже минимальное фифо задействует целый блок памяти)

массив - на регистрах.

Бывает, что лишней памяти уже нет, а нужно добавить фифо, в этом случае приходится делать на регистрах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще не забывайте об используемых ресурсах:

фифо - на ячейках памяти (даже минимальное фифо задействует целый блок памяти)

массив - на регистрах.

Бывает, что лишней памяти уже нет, а нужно добавить фифо, в этом случае приходится делать на регистрах.

Это происходит из-за фундаментального различия массива регистров и фифошки : массив регистров подразумевает _одновременный_ доступ на запись и(в некоторых случаях или) чтение к каждому регистру.

В случае фифошки доступ на запись есть только к "голове", а на чтание - только к "хвосту". Если использовать обычную блочную память, то всё равно одновременный доступ есть только к одному элементу. В случае двухпортовки

элементы на запись и чтение могут быть разные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это происходит из-за фундаментального различия массива регистров и фифошки : массив регистров подразумевает _одновременный_ доступ на запись и(в некоторых случаях или) чтение к каждому регистру.

В случае фифошки доступ на запись есть только к "голове", а на чтание - только к "хвосту". Если использовать обычную блочную память, то всё равно одновременный доступ есть только к одному элементу. В случае двухпортовки

элементы на запись и чтение могут быть разные.

Я как-то склоняюсь к тому, что если необходим частый доступ к небольшому массиву информации, то лучше использовать массивы, а если объем информации большой, то лучше фифо. В том числе с учетом времени компиляции проекта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то мне эта беседа напоминает фундаментальный вопрос из древних времен: "Подскажите, а чем отличаются internet и ethernet?"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то мне эта беседа напоминает фундаментальный вопрос из древних времен: "Подскажите, а чем отличаются internet и ethernet?"

:biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я как-то склоняюсь к тому, что если необходим частый доступ к небольшому массиву информации, то лучше использовать массивы, а если объем информации большой, то лучше фифо. В том числе с учетом времени компиляции проекта.

 

 

а если мне надо случайный доступ к большому объему информации? Что мне вычитывать фифо до нужной ячейки, а все прочитанное в него загружать обратно каждый раз?

 

фифо - последовательный доступ

массив регистров - случайный

 

и нет вопроса в объеме данных, фифо может быть на 3-4 команды, да хоть на 2 команды...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и нет вопроса в объеме данных

Это точно. Человеку нужем буфер для последовательного порта. Фифо конечно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как фифо, так и массив данных можно реализовать и на блоках памяти и на регистрах.(в verilog задаётся атрибутами) По сути, отличие фифо от массива регистров отличается в обвязке. Вы можете реализовать фифо на массиве регистров и потратить время на его отладку. А можете использовать готовое, уже отлаженное и оптимизированное производителем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...