Перейти к содержанию
    

К вопросу о жгутах Harness.

Начал применять в своих схемах Harness - понравилась мне эта тема.

Но обнаружил одну особенность, с которой никак не разберусь, приведу пример:

 

 

Создан Harness Type, именуемый DDR3, с интерфейсом DDR3.

Есть процессор с двумя DDR3 каналами, к этим каналам подключены два Harness Connector типа DDR3. Создан Sheet Symbol из этого листа, его позиционное обозначение #1.

post-39538-1394598311_thumb.png

Аналогичная операция проведена с памятью: имеется два идентичных Sheet Symbol с поз. обозначением #4, #5.

post-39538-1394598319_thumb.png

Эти символы подключены к символу процессора.

post-39538-1394600315_thumb.png

Вроде бы всё здорово, однако компилятор сильно недоволен:

post-39538-1394598400_thumb.png

Это я привёл только один пример ошибки, ругается он на все сигналы.

 

Говорит, что у цепи аж 4 имени.

Как я понимаю компилятор присваивает цепи имя вида SheetSymbolDesignator-HarnessConnectorEntry (получается #4-A0, #5-A0). А я также присвоил этой цепи имя A_A0. Вот коллизия и возникла. То есть как бы мне необходимо убрать именование шины и оставить только именование подключённых к ней цепей вида A0, A1, ...

Если на листе с памятью это ещё и прокатит, то как быть на листе с процессором, там ведь по обе стороны проца получатся одноимённые цепи.

Идеально было бы настроить именование цепей так, чтобы при компиляции им присваивались имена вида SheetSymbolDesignator-SignalHarness-HarnessType-HarnessEntry

 

Проблема того же рода возникает и с одиночными сигналами...

Как-то я неправильно этим пользуюсь.

Изменено пользователем razob

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

К вопросу о жгутах Harness.

Начал применять в своих схемах Harness - понравилась мне эта тема.

Но обнаружил одну особенность, с которой никак не разберусь, приведу пример:

 

post-39538-1394598400_thumb.png

Это я привёл только один пример ошибки, ругается он на все сигналы.

 

Говорит, что у цепи аж 4 имени.

Как я понимаю компилятор присваивает цепи имя вида SheetSymbolDesignator-HarnessConnectorEntry (получается #4-A0, #5-A0). А я также присвоил этой цепи имя A_A0. Вот коллизия и возникла. То есть как бы мне необходимо убрать именование шины и оставить только именование подключённых к ней цепей вида A0, A1, ...

Если на листе с памятью это ещё и прокатит, то как быть на листе с процессором, там ведь по обе стороны проца получатся одноимённые цепи.

Идеально было бы настроить именование цепей так, чтобы при компиляции им присваивались имена вида SheetSymbolDesignator-SignalHarness-HarnessType-HarnessEntry

 

Проблема того же рода возникает и с одиночными сигналами...

Как-то я неправильно этим пользуюсь.

на листе верхнего уровня проекта явно присвойте жгутам имена

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на листе верхнего уровня проекта явно присвойте жгутам имена

Обозвал один жгут MEM_INT, второй канал памяти пока удалил.

Но теперь имён пять: добавилось MEM_INT.A0

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё-таки я никак не пойму. К жгуту с двух сторон подключаются цепи, цепи названы по-разному.

Компилятор разумно ругается, что цепь названа несколько раз, но при этом в навигаторе или в окошке design insight цепь подсвечивается с двух сторон жгута - то есть считается одной цепью.

Если назвать цепи с двух концов одинаково, то проблем нет. Но зачем тогда этот жгут вообще нужен...

Идея как раз в том, чтобы с помощью жгута логически развязывать отдельные узлы схем, возлагая логическое согласование этих узлов на жгут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё-таки я никак не пойму. К жгуту с двух сторон подключаются цепи, цепи названы по-разному.

Компилятор разумно ругается, что цепь названа несколько раз, но при этом в навигаторе или в окошке design insight цепь подсвечивается с двух сторон жгута - то есть считается одной цепью.

Если назвать цепи с двух концов одинаково, то проблем нет. Но зачем тогда этот жгут вообще нужен...

Идея как раз в том, чтобы с помощью жгута логически развязывать отдельные узлы схем, возлагая логическое согласование этих узлов на жгут.

добавилось MEM_INT.A0

Это правильное название

1 оставьте в настройках проекта присвоение имен только по NetLabel

2 NetLabel должен стоять только на одном листе ( у Вас на двух)

 

есть и иные настройки проекта

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это правильное название

1 оставьте в настройках проекта присвоение имен только по NetLabel

2 NetLabel должен стоять только на одном листе ( у Вас на двух)

 

есть и иные настройки проекта

Владимир, спасибо, что подсказываете))

Попробовал настроить, как вы подсказали:

post-39538-1394617659_thumb.png

также оставил netlable только на стороне памяти. В результате названия этих цепей дальше листа, на котором они объявлены, не ушли.

 

Вот когда я ставлю первую галочку, то все цепи и шины, подключенные к harness entry, после компиляции, автоматически именуются в формате PortName.HarnessEntyName.

Например, если к Harness Connector типа DDR3 подключён порт с именем CHA, то подключенные цепи и шины будут именоваться CHA.A[0..14] или CHA.CKE. Вроде всё как надо, но предупреждение компилятора не пропадает. Тут ещё проблема такая: например адресная шина получает название CHA.A[0..14], затем я руками именую каждый элемент этой шины CHA.A0, CHA.A1 и т.д. Компилятор почему-то игнорирует последнюю цифру и выдаёт ошибку, что цепи названы одинаково.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот когда я ставлю первую галочку, то все цепи и шины, подключенные к harness entry, после компиляции, автоматически именуются в формате PortName.HarnessEntyName.

Вам писали, поставьте Netlabel на Harness и будут именоваться Netlabel(который на Harness).Netlabel(который на цепи)

 

установкой галки вы разрешили использовать для наименования PortName и HarnessEntyName.

например адресная шина получает название CHA.A[0..14]

Здесь сложнее так как формально 2 имени стоит на разных листах

Но тоже выход есть.

 

Давно не использовал иерархию

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Владимир, ещё раз спасибо. Действительно сработало именование именно жгутов. Правда всё же немного иначе.

Приложу картинки для другого интерфейса:

post-39538-1394621688_thumb.png

post-39538-1394621694_thumb.png

post-39538-1394621706_thumb.png

В таком включении компилятор полностью доволен.

А вот если жгут на первом листе именовать, то этот netlable не передаётся почему-то по иерархии вниз.

 

Для случае ДДР, там где два символа памяти, не удаётся сделать одинаковые названия жгутов, это вызывает коллизию. Что собственно вы и написали. Буду думать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А вот если жгут на первом листе именовать, то этот netlable не передаётся почему-то по иерархии вниз.

По идее должен

Для случае ДДР, там где два символа памяти, не удаётся сделать одинаковые названия жгутов, это вызывает коллизию. Что собственно вы и написали. Буду думать.

там надо установить в настройках листа добавлять имя листа к netlabel

 

Но точно не помню

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возник у меня вопрос по этой теме. Сколько лет использовал в ирархии все было гладно, до следующего момента:

post-10882-1405945449_thumb.png

и, соотвественно,

Class Document Source Message Time Date No.

[Error] MCU.SchDoc Compiler Global Power-Object +VMCU at 730,690has been reduced to local level by presence of port at 640,730 18:24:14 21.07.2014 70

 

Как я понял, если порт питания имеет сооединение со жгутом, то область этого порта уменьшается до листа.

 

У меня разъемы находятся на другом листе, и, логично, соединяются на верхнем уровне жгутом.

В конкретнм случае, питание на карточку подается напрямую, но ведь может быть и через ключ. Так что логически ошибки не вижу.

Но Altium в этом случае упорно меняет область действия порта и создает несколько одноименных цепей.

 

Можно ли изменить эту ситуацию? В опциях проекта не увидел подходящих настроек.

Создать промежуточный компонент? Но как его сделать, чтобы в плате его не было, а связь через него была?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Возник у меня вопрос по этой теме. Сколько лет использовал в ирархии все было гладно, до следующего момента:

post-10882-1405945449_thumb.png

и, соотвественно,

 

 

Как я понял, если порт питания имеет сооединение со жгутом, то область этого порта уменьшается до листа.

 

У меня разъемы находятся на другом листе, и, логично, соединяются на верхнем уровне жгутом.

В конкретнм случае, питание на карточку подается напрямую, но ведь может быть и через ключ. Так что логически ошибки не вижу.

Но Altium в этом случае упорно меняет область действия порта и создает несколько одноименных цепей.

 

Можно ли изменить эту ситуацию? В опциях проекта не увидел подходящих настроек.

Создать промежуточный компонент? Но как его сделать, чтобы в плате его не было, а связь через него была?

Не используйте GlobalPort для передачи сигналов через Harness. GlobalPort и так передает связь на все листы.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не используйте GlobalPort для передачи сигналов через Harness. GlobalPort и так передает связь на все листы.

 

Спасибо, но как быть? :help: Ведь может быть как вариант а, так и б.

post-10882-1406005505_thumb.png

Иерархиечский проект и делается для того, чтобы не перерисовывать в случае чего всю схему.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, но как быть? :help: Ведь может быть как вариант а, так и б.

post-10882-1406005505_thumb.png

Иерархиечский проект и делается для того, чтобы не перерисовывать в случае чего всю схему.

Ещё вариант: не используйте GlobalPort, а ограничтесь локальным.

Либо поставьте перемычку (нулевой резистор), чтобы разделить цепи.

Варианты есть, если подумать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что собственно мешает подключить транзистор к питанию напрямую, к этому самому VDD.

Harness удобно использовать для сигнальных цепей, а не для подключения питания.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...