Я поискал в Интернете, и кажется, что обсуждения / примеры относятся к традиционной разработке программного обеспечения. Поскольку Verilog и VHDL (используемые для проектирования микросхем, например, FPGA и ASIC) похожи на разработку программного обеспечения на C и C ++, это кажется логичным. Однако у них есть некоторые отличия, заключающиеся в том, что они фундаментально параллельны и требуют аппаратного обеспечения для полного тестирования.
Какой опыт, хороший и плохой, у вас был? Какие ссылки вы можете предложить по этому конкретному приложению?
Правки / уточнения: 28.10.09: Я особенно спрашиваю о TDD. Я знаю, как делать испытательные стенды, в том числе самопроверяющиеся. Я также знаю, что SystemVerilog имеет некоторые особенности для тестовых стендов.
28.10.09: Подразумеваемые вопросы включают: 1) написание теста для какой-либо функциональности, никогда не используя формы сигналов для моделирования, и 2) сначала написание тестов / тестовых стендов.
29.11.09: Эмпирические исследования показывают, что разработка, основанная на тестировании, улучшает качество они сообщают для (программного обеспечения) TDD «Плотность дефектов до выпуска четырех продуктов, измеренная как количество дефектов на тысячу строк кода, снизилась на 40-90% по сравнению с проектами, в которых TDD не использовался. Команды» руководство субъективно сообщило об увеличении времени начальной разработки для команд, использующих TDD, на 15–35%, хотя команды согласились, что это компенсируется снижением затрат на обслуживание ». Уменьшение количества ошибок снижает риск потери ленты за счет умеренного воздействия на график. Здесь также есть некоторые данные.
29.11.09: Я в основном занимаюсь управляющим кодом и кодом канала данных, а не кодом DSP. Для DSP типичное решение включает симуляцию Matlab с точностью до бита.
02.03.10: Преимущество TDD в том, что вы сначала убедитесь, что тест не прошел. Полагаю, это можно сделать и с утверждениями.