По поводу CPLD и FPGA: Классическое отличие этих двух типов программируемых asic сводится к различным концепциям внутренней реализации пользовательских логических функций. FPGA основана на том понятии, что любую логическую функцию можно представить в виде таблицы истинности. Т.е. на любое входное воздействие изначально известно и прописано в особой памяти выходное значение функции. Сам же логический процесс при этом совершенно не нужен. Такая особая память назывется LUT ячейкой (Look-up table). CPLD же основана на теореме, что любую логическую функцию можно представить в виде суперпозиции элементарных логических функций (and, or, not, xor и т.д.) и поэтому основной единицей топологии CPLD есть матрица этих самых логических функций, которую при программировании мы определенным образом коммутируем между собой. В данном случае нам не нужно знать все возможные выходные значения пользовательской логической функции в зависимости от входных воздействий, поскольку мы физически реализуем эту самую функцию. Каждая из этих концепций имеет свои плюсы и минусы и поэтому на современном этапе грань между FPGA и CPLD все больше стирается.
--------------------
Вам помочь или не мешать?
|