Есть ограничения по программному обеспечению. В программном обеспечении вы работаете с тактовой частотой процессора, что позволяет вам выполнять только одну инструкцию за такт. В программном обеспечении все на высоком уровне, вы не контролируете детали, которые происходят на низком уровне. Вы всегда будете ограничены операционной системой или платой разработки, которую программируете. Это верно для популярных плат разработчиков, таких как Arduinos и Raspberry Pi.
В аппаратных средствах ПЛИС вы можете точно программировать и контролировать то, что происходит между каждым тактовым циклом, обеспечивая ваши вычисления скоростью на уровне электронов (примечание: скорость электронов определяет скорость передачи электрического сигнала между аппаратными средствами)
Теперь мы знаем, что FPGA подразумевает аппаратное обеспечение, скорость электронов, которая намного лучше, чем
Процессор, который подразумевает программное обеспечение, 1 инструкция за такт.
Так зачем использовать FPGA, когда мы можем проектировать наши собственные платы с использованием печатных плат, уровень транзистора?
Это потому, что ПЛИС являются программируемым оборудованием! Он построен таким образом, что вы можете запрограммировать соединения платы, а не подключать ее для конкретного применения. Это объясняет, почему ПЛИС стоят дорого! Это своего рода «общее оборудование» или программируемое оборудование.
Чтобы спорить, почему вы должны выбирать ПЛИС, несмотря на их стоимость, программируемый аппаратный компонент позволяет:
Более длительный цикл продукта (вы можете обновить программируемое оборудование на продуктах заказчика, которые содержат вашу ПЛИС, просто позволив им запрограммировать ваш обновленный код HDL в свою ПЛИС)
Восстановление для аппаратной ошибки. Вы просто позволяете им загружать исправленную программу на свои FPGA. (примечание: вы не можете сделать это с определенным дизайном оборудования, поскольку вам придется потратить миллионы, чтобы собрать свои продукты, создать новые и отправить их клиентам)
Примеры интересных возможностей FPGA можно найти в печально известном курсе Стэнфорда ECE5760.
http://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/
Надеюсь, это поможет!
Вскоре Чи Лунг,
Университет Торонто