реклама на сайте
подробности

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Harness, Проекты с наличием жгутов
razob
сообщение Mar 12 2014, 04:56
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 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
Go to the top of the page
 
+Quote Post
Master of Nature
сообщение Mar 12 2014, 05:50
Сообщение #2


Мыслящий
*****

Группа: Свой
Сообщений: 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
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью.
...стоит запомнить ...вернее задуматься.
Go to the top of the page
 
+Quote Post
razob
сообщение Mar 12 2014, 07:01
Сообщение #3


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 11-08-08
Из: Россия
Пользователь №: 39 538



Цитата(Master of Nature @ Mar 12 2014, 08:50) *
на листе верхнего уровня проекта явно присвойте жгутам имена

Обозвал один жгут MEM_INT, второй канал памяти пока удалил.
Но теперь имён пять: добавилось MEM_INT.A0
Go to the top of the page
 
+Quote Post
razob
сообщение Mar 12 2014, 08:27
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 11-08-08
Из: Россия
Пользователь №: 39 538



Всё-таки я никак не пойму. К жгуту с двух сторон подключаются цепи, цепи названы по-разному.
Компилятор разумно ругается, что цепь названа несколько раз, но при этом в навигаторе или в окошке design insight цепь подсвечивается с двух сторон жгута - то есть считается одной цепью.
Если назвать цепи с двух концов одинаково, то проблем нет. Но зачем тогда этот жгут вообще нужен...
Идея как раз в том, чтобы с помощью жгута логически развязывать отдельные узлы схем, возлагая логическое согласование этих узлов на жгут.
Go to the top of the page
 
+Quote Post
Владимир
сообщение Mar 12 2014, 08:46
Сообщение #5


Гуру
******

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



Цитата(razob @ Mar 12 2014, 11:27) *
Всё-таки я никак не пойму. К жгуту с двух сторон подключаются цепи, цепи названы по-разному.
Компилятор разумно ругается, что цепь названа несколько раз, но при этом в навигаторе или в окошке design insight цепь подсвечивается с двух сторон жгута - то есть считается одной цепью.
Если назвать цепи с двух концов одинаково, то проблем нет. Но зачем тогда этот жгут вообще нужен...
Идея как раз в том, чтобы с помощью жгута логически развязывать отдельные узлы схем, возлагая логическое согласование этих узлов на жгут.

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

Это правильное название
1 оставьте в настройках проекта присвоение имен только по NetLabel
2 NetLabel должен стоять только на одном листе ( у Вас на двух)

есть и иные настройки проекта
Go to the top of the page
 
+Quote Post
razob
сообщение Mar 12 2014, 10:04
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 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 и т.д. Компилятор почему-то игнорирует последнюю цифру и выдаёт ошибку, что цепи названы одинаково.
Go to the top of the page
 
+Quote Post
Владимир
сообщение Mar 12 2014, 10:16
Сообщение #7


Гуру
******

Группа: Модераторы
Сообщений: 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 имени стоит на разных листах
Но тоже выход есть.

Давно не использовал иерархию
Go to the top of the page
 
+Quote Post
razob
сообщение Mar 12 2014, 10:58
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 11-08-08
Из: Россия
Пользователь №: 39 538



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

Прикрепленное изображение

Прикрепленное изображение

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

Для случае ДДР, там где два символа памяти, не удаётся сделать одинаковые названия жгутов, это вызывает коллизию. Что собственно вы и написали. Буду думать.
Go to the top of the page
 
+Quote Post
Владимир
сообщение Mar 12 2014, 11:08
Сообщение #9


Гуру
******

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



Цитата(razob @ Mar 12 2014, 13:58) *
А вот если жгут на первом листе именовать, то этот netlable не передаётся почему-то по иерархии вниз.

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

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

Но точно не помню
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jul 21 2014, 12:33
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 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 в этом случае упорно меняет область действия порта и создает несколько одноименных цепей.

Можно ли изменить эту ситуацию? В опциях проекта не увидел подходящих настроек.
Создать промежуточный компонент? Но как его сделать, чтобы в плате его не было, а связь через него была?
Go to the top of the page
 
+Quote Post
Владимир
сообщение Jul 21 2014, 12:52
Сообщение #11


Гуру
******

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



Цитата(Alechek @ Jul 21 2014, 15:33) *
Возник у меня вопрос по этой теме. Сколько лет использовал в ирархии все было гладно, до следующего момента:

Прикрепленное изображение

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


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

У меня разъемы находятся на другом листе, и, логично, соединяются на верхнем уровне жгутом.
В конкретнм случае, питание на карточку подается напрямую, но ведь может быть и через ключ. Так что логически ошибки не вижу.
Но Altium в этом случае упорно меняет область действия порта и создает несколько одноименных цепей.

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

Не используйте GlobalPort для передачи сигналов через Harness. GlobalPort и так передает связь на все листы.
Go to the top of the page
 
+Quote Post
Alechek
сообщение Jul 22 2014, 05:07
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(Владимир @ Jul 21 2014, 18:52) *
Не используйте GlobalPort для передачи сигналов через Harness. GlobalPort и так передает связь на все листы.


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

Прикрепленное изображение

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

Go to the top of the page
 
+Quote Post
Владимир
сообщение Jul 22 2014, 06:14
Сообщение #13


Гуру
******

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



переместите транзистор на подчиненный лист
Go to the top of the page
 
+Quote Post
Master of Nature
сообщение Jul 22 2014, 06:58
Сообщение #14


Мыслящий
*****

Группа: Свой
Сообщений: 1 729
Регистрация: 20-07-07
Из: Самара
Пользователь №: 29 270



Цитата(Alechek @ Jul 22 2014, 09:07) *
Спасибо, но как быть? help.gif Ведь может быть как вариант а, так и б.

Прикрепленное изображение

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

Ещё вариант: не используйте GlobalPort, а ограничтесь локальным.
Либо поставьте перемычку (нулевой резистор), чтобы разделить цепи.
Варианты есть, если подумать.


--------------------
FAQ по AD
Форум по AD
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью.
...стоит запомнить ...вернее задуматься.
Go to the top of the page
 
+Quote Post
Turnaev Sergey
сообщение Jul 22 2014, 10:27
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 562
Регистрация: 25-07-06
Из: Зеленоград, Новосибирск
Пользователь №: 19 088



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


--------------------
"Отсутствие вашей судимости - это не ваша заслуга, а наша недоработка."
Ф.Дзержинский.
Go to the top of the page
 
+Quote Post

4 страниц V   1 2 3 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 10:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01516 секунд с 7
ELECTRONIX ©2004-2016