Цитата(Mirabella @ Jan 18 2007, 13:58)

Между программированием и схемотехникой есть "одна большая разница" - уровень неопределенности исходных данных и способов достижения цели.
Тут я с Вами не согласен. Может быть в частных случаях это и так, а в большинстве случаев (опять же моих, т.е. с которыми я непосредственно сталкивался) програмиирование, схемотехника и описание RTL на HDL это теснейшим образом связанные задачи. И я сам решаю, что мне будет выгоднее - решить данную подзадачу методами аналоговой схемотехники, или программно с помощью цифровой обработки сигналов, или смешанно, а если ЦОС - то куда его, в ПЛИС или в процессор. И какова будет ориентировочная стоимость того или иного решения при серийном производстве изделия. Итого уже на этапе разработки схемы я определяю ориентировочную загрузку процессора, пишу все мат-модели работающих в схеме программных модулей, пишу RTL, и смотрю куда это все и как укладывается. И только потом выбираю подходящие компоненты.
Даже текущая моя задача - разработка SOC, состоящего из микропроцессора и кучи периферии, включая аналоговые модули. Я уже прикидываю алгоритмы, которые будут работать в этом SOC, и анализируя потребление, площадь и быстродействие разных подходов к их реализации, выбираю что сделать чисто программно, а для чего может быть добавить какую-то полезную инструкцию в ядро МП, а что-то может быть выгоднее сделать аналогом. Да, я сам не пишу эти программы, времени на все не хватит. Я разрабатываю математику, программу пишет программист (время оно не бесконечно, и я нуждаюсь в помощи при решении задачи), и потом мы вместе ищем пути оптимизации, и что и как можно решить железно, чтобы выиграть либо копейку площади, либо микроватт энергии, либо бит ОЗУ... Кстати - разработка СБИС это простая задача на Ваш взгляд? Или сложная?
Т.е. Исходные данные одни - это ТЗ. Далее надо произвести оптимизацию, согласно какому-то критерию оптимальности разложив большую задачу в связанные мелкие, решаемые каждая отдельно либо программно, либо схемотехнически, либо как-то еще (например в ПЛИС, я не уверен, что это больше - схемотехника или программирование).
ЗЫ. Я отлично понимаю, что есть другие виды проектов, где например нужна ОС, отдельные приложения, там железо может стоять совершенно обособленно от софта. Но это я по своей специфике отношу к совсем другому классу устройств.