|
Harness, Проекты с наличием жгутов |
|
|
|
Mar 12 2014, 04:56
|
Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 11-08-08
Из: Россия
Пользователь №: 39 538

|
К вопросу о жгутах Harness. Начал применять в своих схемах Harness - понравилась мне эта тема. Но обнаружил одну особенность, с которой никак не разберусь, приведу пример: Создан Harness Type, именуемый DDR3, с интерфейсом DDR3. Есть процессор с двумя DDR3 каналами, к этим каналам подключены два Harness Connector типа DDR3. Создан Sheet Symbol из этого листа, его позиционное обозначение #1.
Аналогичная операция проведена с памятью: имеется два идентичных Sheet Symbol с поз. обозначением #4, #5.
Эти символы подключены к символу процессора.
Вроде бы всё здорово, однако компилятор сильно недоволен:
Это я привёл только один пример ошибки, ругается он на все сигналы. Говорит, что у цепи аж 4 имени. Как я понимаю компилятор присваивает цепи имя вида SheetSymbolDesignator-HarnessConnectorEntry (получается #4-A0, #5-A0). А я также присвоил этой цепи имя A_A0. Вот коллизия и возникла. То есть как бы мне необходимо убрать именование шины и оставить только именование подключённых к ней цепей вида A0, A1, ... Если на листе с памятью это ещё и прокатит, то как быть на листе с процессором, там ведь по обе стороны проца получатся одноимённые цепи. Идеально было бы настроить именование цепей так, чтобы при компиляции им присваивались имена вида SheetSymbolDesignator-SignalHarness-HarnessType-HarnessEntry Проблема того же рода возникает и с одиночными сигналами... Как-то я неправильно этим пользуюсь.
Сообщение отредактировал razob - Mar 12 2014, 04:58
|
|
|
|
|
 |
Ответов
(1 - 14)
|
Mar 12 2014, 05:50
|
Мыслящий
    
Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270

|
Цитата(razob @ Mar 12 2014, 08:56)  К вопросу о жгутах Harness. Начал применять в своих схемах Harness - понравилась мне эта тема. Но обнаружил одну особенность, с которой никак не разберусь, приведу пример:
Это я привёл только один пример ошибки, ругается он на все сигналы. Говорит, что у цепи аж 4 имени. Как я понимаю компилятор присваивает цепи имя вида SheetSymbolDesignator-HarnessConnectorEntry (получается #4-A0, #5-A0). А я также присвоил этой цепи имя A_A0. Вот коллизия и возникла. То есть как бы мне необходимо убрать именование шины и оставить только именование подключённых к ней цепей вида A0, A1, ... Если на листе с памятью это ещё и прокатит, то как быть на листе с процессором, там ведь по обе стороны проца получатся одноимённые цепи. Идеально было бы настроить именование цепей так, чтобы при компиляции им присваивались имена вида SheetSymbolDesignator-SignalHarness-HarnessType-HarnessEntry Проблема того же рода возникает и с одиночными сигналами... Как-то я неправильно этим пользуюсь. на листе верхнего уровня проекта явно присвойте жгутам имена
--------------------
FAQ по ADФорум по ADЗнание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. ...стоит запомнить ...вернее задуматься.
|
|
|
|
|
Mar 12 2014, 07:01
|
Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 11-08-08
Из: Россия
Пользователь №: 39 538

|
Цитата(Master of Nature @ Mar 12 2014, 08:50)  на листе верхнего уровня проекта явно присвойте жгутам имена Обозвал один жгут MEM_INT, второй канал памяти пока удалил. Но теперь имён пять: добавилось MEM_INT.A0
|
|
|
|
|
Mar 12 2014, 08:46
|

Гуру
     
Группа: Модераторы
Сообщений: 11 653
Регистрация: 25-03-05
Из: Минск
Пользователь №: 3 671

|
Цитата(razob @ Mar 12 2014, 11:27)  Всё-таки я никак не пойму. К жгуту с двух сторон подключаются цепи, цепи названы по-разному. Компилятор разумно ругается, что цепь названа несколько раз, но при этом в навигаторе или в окошке design insight цепь подсвечивается с двух сторон жгута - то есть считается одной цепью. Если назвать цепи с двух концов одинаково, то проблем нет. Но зачем тогда этот жгут вообще нужен... Идея как раз в том, чтобы с помощью жгута логически развязывать отдельные узлы схем, возлагая логическое согласование этих узлов на жгут. Цитата добавилось MEM_INT.A0 Это правильное название 1 оставьте в настройках проекта присвоение имен только по NetLabel 2 NetLabel должен стоять только на одном листе ( у Вас на двух) есть и иные настройки проекта
|
|
|
|
|
Mar 12 2014, 10:04
|
Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 11-08-08
Из: Россия
Пользователь №: 39 538

|
Цитата(Владимир @ Mar 12 2014, 11:46)  Это правильное название 1 оставьте в настройках проекта присвоение имен только по NetLabel 2 NetLabel должен стоять только на одном листе ( у Вас на двух)
есть и иные настройки проекта Владимир, спасибо, что подсказываете)) Попробовал настроить, как вы подсказали:
также оставил netlable только на стороне памяти. В результате названия этих цепей дальше листа, на котором они объявлены, не ушли. Вот когда я ставлю первую галочку, то все цепи и шины, подключенные к harness entry, после компиляции, автоматически именуются в формате PortName.HarnessEntyName. Например, если к Harness Connector типа DDR3 подключён порт с именем CHA, то подключенные цепи и шины будут именоваться CHA.A[0..14] или CHA.CKE. Вроде всё как надо, но предупреждение компилятора не пропадает. Тут ещё проблема такая: например адресная шина получает название CHA.A[0..14], затем я руками именую каждый элемент этой шины CHA.A0, CHA.A1 и т.д. Компилятор почему-то игнорирует последнюю цифру и выдаёт ошибку, что цепи названы одинаково.
|
|
|
|
|
Mar 12 2014, 10:16
|

Гуру
     
Группа: Модераторы
Сообщений: 11 653
Регистрация: 25-03-05
Из: Минск
Пользователь №: 3 671

|
Цитата(razob @ Mar 12 2014, 13:04)  Вот когда я ставлю первую галочку, то все цепи и шины, подключенные к harness entry, после компиляции, автоматически именуются в формате PortName.HarnessEntyName. Вам писали, поставьте Netlabel на Harness и будут именоваться Netlabel(который на Harness).Netlabel(который на цепи) установкой галки вы разрешили использовать для наименования PortName и HarnessEntyName. Цитата например адресная шина получает название CHA.A[0..14] Здесь сложнее так как формально 2 имени стоит на разных листах Но тоже выход есть. Давно не использовал иерархию
|
|
|
|
|
Mar 12 2014, 10:58
|
Частый гость
 
Группа: Свой
Сообщений: 135
Регистрация: 11-08-08
Из: Россия
Пользователь №: 39 538

|
Владимир, ещё раз спасибо. Действительно сработало именование именно жгутов. Правда всё же немного иначе. Приложу картинки для другого интерфейса:
В таком включении компилятор полностью доволен. А вот если жгут на первом листе именовать, то этот netlable не передаётся почему-то по иерархии вниз. Для случае ДДР, там где два символа памяти, не удаётся сделать одинаковые названия жгутов, это вызывает коллизию. Что собственно вы и написали. Буду думать.
|
|
|
|
|
Mar 12 2014, 11:08
|

Гуру
     
Группа: Модераторы
Сообщений: 11 653
Регистрация: 25-03-05
Из: Минск
Пользователь №: 3 671

|
Цитата(razob @ Mar 12 2014, 13:58)  А вот если жгут на первом листе именовать, то этот netlable не передаётся почему-то по иерархии вниз. По идее должен Цитата Для случае ДДР, там где два символа памяти, не удаётся сделать одинаковые названия жгутов, это вызывает коллизию. Что собственно вы и написали. Буду думать. там надо установить в настройках листа добавлять имя листа к netlabel Но точно не помню
|
|
|
|
|
Jul 21 2014, 12:33
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Возник у меня вопрос по этой теме. Сколько лет использовал в ирархии все было гладно, до следующего момента:
и, соотвественно, Цитата 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 в этом случае упорно меняет область действия порта и создает несколько одноименных цепей. Можно ли изменить эту ситуацию? В опциях проекта не увидел подходящих настроек. Создать промежуточный компонент? Но как его сделать, чтобы в плате его не было, а связь через него была?
|
|
|
|
|
Jul 21 2014, 12:52
|

Гуру
     
Группа: Модераторы
Сообщений: 11 653
Регистрация: 25-03-05
Из: Минск
Пользователь №: 3 671

|
Цитата(Alechek @ Jul 21 2014, 15:33)  Возник у меня вопрос по этой теме. Сколько лет использовал в ирархии все было гладно, до следующего момента:
и, соотвественно, Как я понял, если порт питания имеет сооединение со жгутом, то область этого порта уменьшается до листа. У меня разъемы находятся на другом листе, и, логично, соединяются на верхнем уровне жгутом. В конкретнм случае, питание на карточку подается напрямую, но ведь может быть и через ключ. Так что логически ошибки не вижу. Но Altium в этом случае упорно меняет область действия порта и создает несколько одноименных цепей. Можно ли изменить эту ситуацию? В опциях проекта не увидел подходящих настроек. Создать промежуточный компонент? Но как его сделать, чтобы в плате его не было, а связь через него была? Не используйте GlobalPort для передачи сигналов через Harness. GlobalPort и так передает связь на все листы.
|
|
|
|
|
Jul 22 2014, 05:07
|
Профессионал
    
Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882

|
Цитата(Владимир @ Jul 21 2014, 18:52)  Не используйте GlobalPort для передачи сигналов через Harness. GlobalPort и так передает связь на все листы. Спасибо, но как быть?  Ведь может быть как вариант а, так и б.
Иерархиечский проект и делается для того, чтобы не перерисовывать в случае чего всю схему.
|
|
|
|
|
Jul 22 2014, 06:58
|
Мыслящий
    
Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270

|
Цитата(Alechek @ Jul 22 2014, 09:07)  Спасибо, но как быть?  Ведь может быть как вариант а, так и б.
Иерархиечский проект и делается для того, чтобы не перерисовывать в случае чего всю схему. Ещё вариант: не используйте GlobalPort, а ограничтесь локальным. Либо поставьте перемычку (нулевой резистор), чтобы разделить цепи. Варианты есть, если подумать.
--------------------
FAQ по ADФорум по ADЗнание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью. ...стоит запомнить ...вернее задуматься.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|