egorman44 0 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба Здравствуйте! Имеется два порта inout, которые должны быть просто соединены проводом , т.е. ПЛИС просто осуществляет транзит двунаправленной линии. как это примерно должно выглядеть? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба Здравствуйте! Имеется два порта inout, которые должны быть просто соединены проводом , т.е. ПЛИС просто осуществляет транзит двунаправленной линии. как это примерно должно выглядеть? соединение внутри плис - между внутренними блоками? или Вы подключаете внешнюю память (например)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
egorman44 0 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба вот есть у меня топ модуль: module top( .................. inout PORT1, inout PORT2, ................... ); Хотелось просто соеденить PORT1 и PORT2. Собственно уже нашел в стандарте 2005 глава 7.6 Bidirectional pass switches использовал tran, синтезировалось правильно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба рекомендую разнести - отдельно вход и отдельно выход. Проще поменять логику - мое мнение ... Или делать шину на основе мультиплексоров, которая Вам будет коммутировать потоки/данные в разные стороны. Просто внутри плис нет буферов с третьим состоянием, кроме как в виртексах2 и в IO логике Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба ..ПЛИС просто осуществляет транзит двунаправленной линии.. Maverick прав, нет у вас в плисе сейчас двунаправленных проводов. Гляньте как лапа устроена, там в общем случае, IN+OUT+DIRECTION_CONTROL. Чтобы нормально работать с двунаправленной шиной вам надо как то рулить этим самым DIRECTION_CONTROL. Опишите задачу более детально, чтобы понять что вам именно нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
egorman44 0 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба Maverick прав, нет у вас в плисе сейчас двунаправленных проводов. Гляньте как лапа устроена, там в общем случае, IN+OUT+DIRECTION_CONTROL. Чтобы нормально работать с двунаправленной шиной вам надо как то рулить этим самым DIRECTION_CONTROL. Опишите задачу более детально, чтобы понять что вам именно нужно. Имеется у меня микросхема№1 и микросхема№2, обе имеют интерфейс I2C, между ними spartan3 , хотелось просто пробросить линию SDA через ПЛИС. Да на самом деле синтезатор ругается : Bidirectional pin pDSP_I2C_SDA_INOUT feeds another bidirectional pin. Register or buffer must be added between pins. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба Да на самом деле синтезатор ругается : Вообще ругается правильно. Такая конструкция или вообще не будет работать, или будет это делать очень плохо. Особенно, если она будет асинхронная и не будет иметь приоритета. А если на шинах будут помехи и при асинхронном режиме может получиться мультивибратор... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
egorman44 0 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба Вообще ругается правильно. Такая конструкция или вообще не будет работать, или будет это делать очень плохо. Особенно, если она будет асинхронная и не будет иметь приоритета. А если на шинах будут помехи и при асинхронном режиме может получиться мультивибратор... :) я то думал, что вообще дело плевое, обозвал порты соединил и все замечательно работает ... но не тут, то было ... откуда собственно взять этот управляющий сигнал DIRECTION_CONTROL ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба Имеется у меня микросхема№1 и микросхема№2, обе имеют интерфейс I2C, между ними spartan3 , хотелось просто пробросить линию SDA через ПЛИС. откуда собственно взять этот управляющий сигнал DIRECTION_CONTROL ? скорее всего Вам необходимо будет реализовать приемник и передатчик I2C, только не скажу мастер или слейв - разбираться нужно... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба я то думал, что вообще дело плевое, обозвал порты соединил и все замечательно работает ... но не тут, то было ... откуда собственно взять этот управляющий сигнал DIRECTION_CONTROL ? У меня на сайте, в записках инженера есть раздел - "Мультивибратор длиной в две стойки", это как раз этот случай... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Maverick_ 15 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба У меня на сайте, в записках инженера есть раздел - "Мультивибратор длиной в две стойки", это как раз этот случай... прочитал... :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 19 августа, 2014 Опубликовано 19 августа, 2014 · Жалоба почему с1-55 волчий глаз? зеленый и маленький? Знаю конторку до сих пор таким пользуются, один из сотрудников спер в свое время и до сих пор гоняет, цифровой не приемлет.... А земля легенд - это где, Байконур? По сути вопроса придется делать модуль, который будет следить за сигналами на входах и повторять их на выходе, с учетом протокола I2C. То есть когда мастер держит шину передавать на 2-ой выход что говорят на 1-ом, как только он ее отпускает, менять обратно и со 2-го выхода транслировать на 1-ый, как то так... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SM 0 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба На самом деле, в данном случае не надо делать полноценный приемник I2C с разбором протокола. Зная то, что I2C шина имеет выходы с открытым стоком, можно на достаточно высокой частоте мониторить оба входа-выхода, и, когда обнаруживается перепад 1->0 на одном из них, при 1-це на втором, его оставлять в режиме ввода, второй переводить в вывод нуля, до тех пор, пока на первом ноль. Ну и наоборот, если на втором обнаружился 1->0 при единице на первом. Обойдется такая схема в несколько триггеров и LUT. UPD: Это если мастер снаружи. Если же мастер внутри ПЛИС - то входные линии надо объединить по И, а выходные подать на оба буфера одинаково. Если там мультимастер - и мастера бывают и там, и тут, то надо иметь и ту схему, и эту. UPD2: Кстати, SCL это все тоже касается, если мультимастер, то, вероятно, такие же схемы надо делать и для нее, если источником SCL могут быть разные стороны. UPD3: Докучи, ноль на SCL может slave удлинять, таким образом задерживая транзакцию. Однако, я пока таких slave не встречал. Но... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dr.Alex 0 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба UPD3: Докучи, ноль на SCL может slave удлинять, таким образом задерживая транзакцию. Однако, я пока таких slave не встречал. Но... Я встречал, сабако. Существуют. При этом не все мастерА сегодня это терпят. Если не большинство.... http://electronix.ru/forum/index.php?showtopic=115710 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iosifk 3 20 августа, 2014 Опубликовано 20 августа, 2014 · Жалоба По сути вопроса придется делать модуль, который будет следить за сигналами на входах и повторять их на выходе, с учетом протокола I2C. То есть когда мастер держит шину передавать на 2-ой выход что говорят на 1-ом, как только он ее отпускает, менять обратно и со 2-го выхода транслировать на 1-ый, как то так... Стандартный расширитель интерфейса может быть сделан двумя вариантами: 1. По зоне адресов. Если адреса "за мостом", то мост переключается, если "до моста", то нет. 2. По ответному сигналу от ведомого. Адреса транслируются "за мост" и если там формируется сигнал выбора адреса, то мост переключается и передает мастеру данные и чтобы компенсировать переключение с некоторой задержкой передает мастеру сигнал выбора адреса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться