в любом случае уже ясно что ВМ1 и ВМ1Г это разные процессоры.
и никогда ВМ1 не будет выполнять MUL как ВМ1Г
Вид для печати
в любом случае уже ясно что ВМ1 и ВМ1Г это разные процессоры.
и никогда ВМ1 не будет выполнять MUL как ВМ1Г
Верилог это следующий уровень абстракции. Тут надо просто "просечь фишку" и дальше все пойдет. Далеко не все сложные проекты уже можно описать подробной блок-схемой, вернее, можно, но он будет очень большая, ее не то что нарисовать, ее просто прочитать и вникнуть будет сложно. Ну это примерно как написать Windows 7 целиком на ассемблере.
Вот ВМ1 уже к этой границе сложности подходит (не Windows 7, а описательности мелкой логикой). Посмотрите схему ВМ2 в ТО, там нарисована практически мелкая логика, но "въезжается" трудно. Простую блок-схему процессора из крупных блоков нарисовать-то не вопрос, но их и так в Сети полно. А вот подробную, хотя бы уровня элементов стандартной логики серии 74xxx - это уже может потребовать больше времени и работы чем составление по-транзисторной. Ну, посмотрим что там у HardWareMan со схемой ВМ80А выйдет, он больше сможет рассказать по результатам.
Так его иначе на первом этапе и не сделаешь, можно на транзисторах, но они тут так прекрасно и осмысленно упакованы в ячейки, что смысла их разваливать на отдельные части нет никакого.
Блок-схемы, которых в сети полно - никак не катят, т.к. они ПРИМЕРНЫЕ, а не ТОЧНЫЕ. ТО на ВМ2 я разумеется видел) Мелкую логику надо собирать в большую (регистры, счетчики и т.д.), таким образом, организуется ПОДРОБНАЯ, но логическая схема, по которой все видно, что на входе, что на выходе, и с чем взаимосвязано. И все это видно сразу же, тогда как в верилоге нет. Верилоги хороши для зашивки логики работы в ПЛИСЫ, но никак не для визуализирования всего образа вцелом.
ХМ2-001 (1000 ведер из 10000) в формате P-CAD 2004
Еще 9000 ведер воды, и золотой ключик у нас в кармане)
---------- Post added at 05:58 ---------- Previous post was at 05:18 ----------
Очень часто встречается вот такая конструкция:
http://s017.radikal.ru/i408/1412/11/bbd44a8e898a.png
Что является по сути управляемым инвертором сигнала выходящего с триггера.
Не знаю пока что зачем это используется, и почему так навороченно сделано, хотя можно было бы поставить обычный элемент XOR (исключающее или), или его проще не сделаешь?
---------- Post added at 07:01 ---------- Previous post was at 05:58 ----------
Вопрос по P-CAD - как сделать так, чтобы соединительные линии при перемещении прилепленных к ним компонентов не изменяли углы наклона?
Угу, вот точная "блок-схема" ВМ2 отлично мою мысль иллюстрирует - все точно, все подробности есть, а целой картины не видно абсолютно - превышены среднечеловеческие возможности по абстрагированию. Поэтому и появляются крупные "неточные" блок-схемы. Поэтому и появилось объектно-ориентированное программирование, и появился Верилог - сложные проекты потребовали развития соответствующих инструментов. Программу, написанную на C++, можно дизассемблировать, схему, синтезированную с Верилога, можно разобрать на транзисторы, но все равно по мере реверса придется прийти на самый верхний уровень абстракции проекта, собственно это и является целью реверса.
OK, пример. ПЛМ-ка от ВМ1. Вот у меня строчка:
Это означает что сигнал p[36] примет единичное значение если регистр инструкции будет содержать код 5 (опкод RESET), а регистр микроадреса 176 или 174. подрегистр прерывания -1, остальное в игноре. Изобразить такое схемно - понадобится несколько инверторов, два больших 15-ти и 16-ти-входовых И. Потом еще мучительно по схеме считать разряды - а куда же там цепь приходит. Если рисовать такое на обычных 2-входовых И - вообще макароны будут. И это только один терм, с номером 36, а таких там 250. А потом они еще в суммы складываются, слагаемых так по 50-100 штук. На один листик схема не поместится, придется скакать по кучке из нескольких. Очень "удобно" по сравнению с одной строчкой, ага.Код:assign p[36] = cmp({ir, mr}, {16'b0000000000000101, 15'b001xxxxx11111x0});
"И чего только люди не придумают, лишь быВерилог не учитьна картошку не ехать" (c) :biggrin:
Я как бы ничего не имею против схемного представления, но для сложных проектов оно очевидно не работает, это написание Windows 7 на ассемблере - можно, но на такой работе даже рабы долго не выдерживают :biggrin:
Увы, этого P-CAD не умеет, или, по-крайней мере, я об этом не знаю.
Посмотрел Вашу схему ХМ-ки, ох и сложный Вы путь выбрали. Получается ручное перерисовывание топологии в схему, а потом ее еще не меньше (а может быть и больше, у меня на ВП1 это занимает 80-90 процентов времени реверса) труда будет переводить в осмысленный вид :(
Вот посмотрите, моя текущая схемка для ВП1-119. Вот в таком виде автоматически получается после трансляции ECO (уже над ней немного помедитировал, часть "причесана" в "человеческий вид"). Все цепи поименованы и оторваны, завязаны на отдельные автоматически созданные порты. В этом случае очень легко взять и переместить компонент вместе с его связями. И даже при таком подходе "причесывание" и осмысление занимает основное время проекта. Для Вашей схемы это будет намного сложнее, придется делать много ненужных телодвижений по отвязыванию-перемещению-коррекции, трудоемкость растет в разы, не говоря уже о риске ошибок.
И еще момент - при использовании CAD-ов (разных, не только P-CAD и не только печатные платы) иногда бывает такое, что при неоптимально выбранном маршруте, проект заходит в тупик - для движения дальше нужно очень много, неподъемный объем, ручного труда, поэтому надо очень аккуратно к этому (выбору маршрута) подходить. Ваша схема у меня вызвала некоторую интуитивную тревогу - труд огромный и тяжелый, но есть шансы "зайти в тупик", будет обидно очень. Остается надеяться что в случае проблем вместе как-то победим.
На транзисторы можно разобрать и схему, синтезированную с программы на C++, просто результат такого синтеза будет ещё меньше похож на оригинальную микросхему.
В иерарахии уровней абстрагирования эмуляции электронных схем ( абстрактная - логическая - дискретная - аналоговая ) Верилог находится на логическом уровне. Задержка прохождения сигнала по конкретным соединительным линиям разводки и скорость срабатывания конкретных ключей микросхемы учитывается на дискретном уровне. А для учёта скорости нарастания фронтов, перекрёстных помех, наводок и шумов по питанию в конкретной разводке микросхемы - требуется аналоговая эмуляция.
А вот это как раз и не надо в виде блок схемы. Верхнее, на блок схеме должен быть квадрат со входами и выходами, а в отдельном файле таблица с микрокодом.
---------- Post added at 15:23 ---------- Previous post was at 15:21 ----------
Может он и сложный, но единственный для меня интересный. Я сразу вижу, где какой логический элемент, с каким другим он соединяется, мне интересно это рисовать. А если я сперва ВСЮ схему втупую обрисую слоями металлизации, диффузии и кремния, и при этом не видя, что из этого выходит - я потеряю к подобному медитативному процессу интерес еще до первого ведра)
Думаю, что в осмысленный вид будет переводить не так сложно, ибо куча логики сразу уберется во всякие многоразрядные регистры, счетчики, делители. И по ходу убирания будет все просторнее и веселее.
---------- Post added at 15:25 ---------- Previous post was at 15:23 ----------
Уж на сколько я педантичен к точности эмуляции, но аналоговая эмуляция для меня кажется совершенно бессмысленным перебором.
---------- Post added at 15:29 ---------- Previous post was at 15:25 ----------
Чего-то как-то в ВП1-119 заметно меньше элементов, чем планируемое в ХМ2-001.
Да, перемещать элементы удобнее, когда они не связаны проводами, а связаны шинами. Но вместе с тем и уменьшается наглядность этих взаимосвязей.
Что это там за странная толстая полоска вертикальная на элементах? И почему у элементов дублируются входы и выходы?
---------- Post added at 15:38 ---------- Previous post was at 15:29 ----------
А вот какая функция в P-CAD пригодилась бы, так это чтобы выбрал какое-то соединение, и бац, и оно исчезло и у всех элементов заменилось на площадки в формате NET00000.
---------- Post added at 16:33 ---------- Previous post was at 15:38 ----------
Почитал в википедии про 1515ХМ1/ХМ2.
Что за ерунда? В ХМ2-001, например, около 1000 ячеек (60 в столбце, всего столбцов 19, итого 1140. Если приплюсовать порты ввода вывода, то, допустим, 1200-1300 ячеек).Цитата:
Микросхема выполнена по КМОП-технологии. Содержит около 3200 ячеек, схема соединений которых задаётся при изготовлении. Каждая ячейка соответствует двухвходовому логическому элементу. Максимальная частота 10 МГц,
Далее, не только схема соединений задается при изготовлении, а все-все задается при изготовлении - выбор нужных ячеек из библиотеки, размещение их и соединение.
И еще бред, что каждая ячейка - двухвходовый логический элемент. Тоже нет. Произвольновходовый и произвольновыходовый.
Ну вот, как всегда - "тут играть, тут не играть, тут рыбу заворачивали", может прощена сольфеджио походить"читателем" верилога заделаться? :) Обогатить свой внутренний мир, так сказать :)
Зы - табличка тоже немалая выйдет. На 2 Гигаслова :). Сократить как-то можно, но у верилога она по читабельности все равно не выиграет.
Да все правильно, у нас тут форум энтузиастов, каждый сходит с ума по-своему :biggrin:, поэтому никаких дополнительных пояснений не нужно.
"Как, Вы не любите кошек? Да Вы их просто готовить не умеете!" (c)
Уверяю Вас, это тоже достаточно медитативно-психоделический процесс :biggrin:
Для наших с Вами БМК-ашек - да, вообще для топологий с нормами выше микрона и с частотами пару десятков МГц обычно особо моделировать нечего. А вот уже хотя бы скоростные печатные платы на Signal Integrity прогонять приходится.
Не-а, вот Вашу схему можно безнапряжно смотреть только в P-CAD, вот в той вертикальной кучке отметили проводник, он подсветился и видно куда он пошел. А напечатайте в pdf, да в мелком формате, да на листик A4 - вот там уже ползать по цепям будет не слишком легко. В отличие от прочтения имени цепи. Да Вы сами по мере черпания новых "ведер воды" это все увидите.
Чего нет - того нет, руками расставить порты, потом удалить цепь.
Можеть быть как-то через ECO-команды получится, но это руками скрипт писать надо.
Надо исправить, про ХМ2 там действительно откровенная ерунда написана, уж очень сильно оно от ХМ1 отличается. Для ХМ1 тоже неточности есть, но подождем их вскрытия.
Да какие там 2 гигаслова? Ваша текстовая описаловка микрокода очень компактная, на верилоге или на каком ином языке. Такую и оставить, и дать на нее ссылку в блок-схеме.
Кстати, в ТО на ВМ2 тоже вместо матриц с микрокодом прямоугольники. Жаль, доки с микрокодом мне не достались.
Ну 31 переменная на входе, полная таблица и будет 2 Гигаслова. Разумеется такое написать полностью нельзя и бессмысленно, поэтому будет та или иная форма сворачивания.
Вот-вот, схемно описывать ПЛМ не очень удобно, у нас появляется "текстовая описаловка" - это отход от стандарного подхода. А любой нестандарт - это дополнительные издержки. Инженер должен будет хотя бы знать русский язык (или суахили, на чем мы там напишем комментарии), чтобы прочесть его.
Очень хорошая иллюстрация. Было бы оно на верилоге - очень вероятно достался бы файл целиком, а так нетиповой (не нарисованный на схеме вместе со всеми) элемент проекта утерян.
Схемный подход это отличная штука, и он много где применим и замечательно работает. Но, по мере роста сложности проекта, начинает сбоить и проигрывать текстовому. Это как иероглифическое письмо в итоге сливает фонетическому.