anthony писал(а):есть ли какой-то удобный способ использования команды show для шин? напр, у меня 128 бит шина памяти набранная как 8х16 бит, как мне подсветить линии с md0 по md31 или с md32 по 63 не перечисляя их все по одному? это я о разводке, а не о редакторе схемы
Спойлер
Заглянул в справку программы, все что смог с ее помощью сделать это выделить группу в диапазоне а0 - а9 с помощью образца:show a[0-10]
Подумал и сделал так:
show a[0-15]
и тут получился облом, программа выделила цепи а0, а1 и а5 (???), что вогнало меня в короткий ступор. Попробовал:
show a[10-15]
программа также выделила цепи а0, а1 и а5 (???), еще один маленький ступор.
Перебрав диапазон а0-а23, понял, что программа просто тупит и не корректно обрабатывает двузначные (и более) цифры в диапазоне. Она начинает воспринимать их как однозначные, т.е. 15 воспринимает как 1 и 5, а знак диапазона (-) перестает видеть.
Но пытливый мозг на это не остановился и я начал перебирать разные варианты с двоеточием (..), с троеточием (...) и так и эдак. И все таки победил эту проблему, хотя возможно немного через заднее место.
1. Диапазон а0 - а9 (однозначные цифры) выделяется по шаблону:
show a[0-9]
2. Диапазон а10 - а99 (двузначные цифры) выделяется по шаблону:
show a[0-9][0-9]
3. Диапазон а100 - а999 (трехзначные цифры) выделяется по шаблону:
show a[0-9][0-9][0-9]
Может показаться, что шаблоны 2 и 3 должны перекрывать диапазон от 0, но это не так. Каждая комбинация [0-9] это любая отдельная цифра из диапазона, но числа 00 или 000 (01 или 001) воспринимаются программой как самостоятельные числа, которые не равнозначны 0 или 1. Т.е. запись А0 и А00 (А1 и А01) будут восприниматься программой как разные. Еще проще программа числа в диапазоне воспринимает как текст.
Выделение части диапазона, например а15 - а36, шаблон:
show a[1-3][5-6]
Выделение нескольких частей диапазона одновременно, например а2 - а8, а15 - а32, а118 - а182, шаблон:
show a[2-8] a[1-3][2-5] a[1][1-8][2-8]
Эти шаблоны проверены не только на шинах, а также на цепях, у которых имена назначены последовательно (как в шинах) и на компонентах схемы. Т.е. работает со всем у чего есть атрибут NAME.
Для шин есть более простой метод (описан в справке), шаблон:
show префикс[число..число]
Например, есть шина а0 - а64, надо выделить цепи а8 - а32, шаблон:
show a[8..32]
Это сработает только если диапазон является числовым.
С примером из цитаты. Если правильно понял, то есть 8 шин по 16 цепей:
md0 - md15, md16 - md31, md32 - md47, md48 - md63, md64 - md79, md80 - md95, md96 - md111, md112 - md127
Необходимо выделить md0 - md31 или md32 - md63. Если сделать так как в справке, т.е.:
show md[0..31] или show md[32..63]
ничего не получиться, т.к. попытка охватить диапазон из двух разных шин. Правильно будет:
show md[0..15] md[16..31] или show md[32..47] md[48..53]
НО! Этот метод работает только в схеме, в плате он работать не будет! По какой-то причине (недосмотр разработчиков?) программа в плате числа воспринимает как текст, и двузначные и более числа воспринимаются как однозначные, т.е. из примера выше, в плате будут выделены только цепи:
md0, md1, md3, md5, md6 или md2, md3, md4, md5, md7, md8
Можно выделить нужные цепи в схеме и на плате они выделятся автоматически.
Проверялось на версии 7.5.0
Разобрался с плагином "change-via-by-stack.ulp". Он может заменить переходные отверстия: сверление, диаметр площадки, форму, перенести с одного стека на другой. Оригинал плагина изначально немного корявый, некорректно работает опция Shape. Размеры указываются в миллиметрах. Пришлось покопаться в плагине и исправить косяк, хотя в программировании не очень разбираюсь. Заодно добавил перевод на русский язык. Исправленный плагин в атаче, только поменяйте расширение на .ulp
В догонку еще один переведенный плагин, тоже поменяйте расширение на .ulp

