Вычислительные заготовки
В крупных фирмах, долгие годы занимающихся разработкой СБИС, а теперь и СНК, наработаны большие библиотеки стандартных модулей, как-то: ОЗУ, АЛУ, периферийные устройства. В новых проектах СНК некоторые блоки приходится разрабатывать заново, а остальные - берутся из библиотеки. При этом если модуль неясно описан, не имеет хорошего интерфейса, документации, комментариев, испытательного стенда с надежными тестами, то он повторно применяться не будет. Если такой модуль изначально оформлен в виде вычислительной заготовки, то он будет без лишних проблем вставляться в любой новый проект. Более того, лицензию на него можно предлагать другим фирмам - разработчикам СНК. Рисунок иллюстрируют суть вычислительной заготовки (IP core).
Вычислительные заготовки различаются по степени гибкости своей настройки под условия потребителя как:
- гибкие (описанные языком описания аппаратуры, таком как VHDL, на уровне регистровых передач),
- жесткие (логическая схема, EDIF - файл) и
- твердые (маски под определенную технологию, прошивки ПЛИС).
Гибкие заготовки обычно подстраиваются к условиям нового проекта в широких пределах и независимы от его технологии (серия ПЛИС, технология СБИС). Минимизация аппаратурных затрат вычислительных заготовок обеспечивает не только уменьшение стоимости СНК, но и уменьшение его энергопотребления, что является важным фактором для портативных и энергонезависимых приложений.
Чтобы проект ВУ был принят как гибкая вычислительная заготовка, он должен иметь:
- исчерпывающую и ясную документацию;
- текст описания на VHDL или Verilog в хорошем стиле для синтеза, заготовка должна быть настраиваемой под технические условия потребителя;
- хорошие средства верификации в виде испытательных стендов, исчерпывающих тестов, возможно, опытных макетов;
- четкую методику того, как ВУ вставлять в СНК, включающую надежные скрипты (программы на макроязыке САПР, автоматизирующие тестирование и создание жесткой или твердой заготовки) [1].
В сегодняшних условиях, чтоб быстрее перейти от идеи к "железу", эффективнее провести проектирование новой СНК, необходимо эту СНК "собрать" из имеющихся вычислительных заготовок , а отсутствующие - приобрести на рынке IP cores, который бурно развивается в последние годы. Если приобрести не удастся или если проект - исследовательский, то необходимую заготовку можно поискать, например, в банке бесплатных IP cores, что на сайте www.opencores.org. Этот банк создан по инициативе организаций, содействующих развитию технологии СНК, а также инженеров, желающих поделиться своими результатами. Если оба этих пути не устраивают, то прийдется ВУ проектировать самостоятельно и данная книга может этому помочь.