|
|
  |
Прием на работу, Нетривиальные вопросы на собеседовании |
|
|
|
Jun 16 2011, 08:50
|
Местный
  
Группа: Свой
Сообщений: 376
Регистрация: 20-06-09
Из: BY
Пользователь №: 50 480

|
Цитата(vitan @ Jun 16 2011, 10:03)  Меня тут спросили, как на плисине сделать приемник\десериализатор, у которого единицы принимаются в виде перепадов на одной линии, а нули - на другой. Клоков нет, частота не известна и плавает. Ниасилил...  Популярный вопросик...
|
|
|
|
|
Jun 16 2011, 09:08
|
Местный
  
Группа: Свой
Сообщений: 376
Регистрация: 20-06-09
Из: BY
Пользователь №: 50 480

|
Цитата(vitan @ Jun 16 2011, 11:59)  Да? Давно не занимался вплотную плисами... А ответ же какой? Ответов много, т.к. задача сформулирована не точно, поэтому правильный ответ не знает только автор вопроса...
|
|
|
|
|
Jun 16 2011, 09:15
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(nikolascha @ Jun 16 2011, 13:08)  Ответов много, т.к. задача сформулирована не точно, поэтому правильный ответ не знает только автор вопроса... Вот и у меня такое же впечатление сложилось. Я им сделал проектик, в котором был клок, но не со стороны приемной линии (где эти два сигнала), а со стороны десериализатора. Ну разве будет кто-то совсем без клока-то работать? Не понравилось... Аж зацепило, блин. Ночами не сплю теперь, перепады мерещатся...  Или там суть, что перепады могут быть только одного направления, например, из 0 в 1? Я-то делал для двух сразу...
|
|
|
|
|
Jun 16 2011, 11:42
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(vitan @ Jun 16 2011, 10:03)  Меня тут спросили, как на плисине сделать приемник\десериализатор, у которого единицы принимаются в виде перепадов на одной линии, а нули - на другой. Клоков нет, частота не известна и плавает. Ниасилил...  Может быть выделить переходы (ну что-то типа прерывания по фронту спадающему/нарастающему должно же быть в этих плисах), в моменты переходов формировать короткие импульсы, которые подавать на входы R и S асинхронного RS триггера. Я слышал что в плисах есть такое дело. Допустим коротким импульсом на S входе перебрасываем триггер в единичное состояние, и храним. Коротким импульсом на R входе перебрасываем в нулевое состояние и храним. Храним - это когда на обоих входах лог. 0 например. На выходе будет сигнал у которого единицы принимаются в виде перепадов на одной линии, а нули - на другой. Сформированные перепады и тип логики триггера, должны быть так выбраны, чтоб не допускать неопределенного состояния триггера.
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Jun 16 2011, 12:50
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(Буратино @ Jun 16 2011, 15:42)  Сформированные перепады и тип логики триггера, должны быть так выбраны, чтоб не допускать неопределенного состояния триггера. Ага, в этом есть некоторые трудности.  Точнее, трудности не в том, чтобы не подавать одновременно на входы S и R (это можно искусственно заблокировать дополнительной логикой), а в том, откуда брать эти самые "короткие" импульсы. Вот пришел перепад 0-1, вот подали его на S, а сбросить само S обратно как? Это же надо успеть сделать до прихода следующего перепада. Хотя... Если, допустим, его не сбрасывать, а держать до появления события во второй линии... И сбрасывать только после этого... И дополнительной логикой блокировать состояние, когда R и S оба равны 1... Но тогда получается, что можно пропустить первый бит в линии (если исходное состояние обеих линий равно 1, то логика будет блокировать работу триггера). В общем, ниасилить без клоков че-то...  Да и надо ли?
|
|
|
|
|
Jun 16 2011, 13:05
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Цитата(vitan @ Jun 16 2011, 15:50)  Ага, в этом есть некоторые трудности.  Точнее, трудности не в том, чтобы не подавать одновременно на входы S и R (это можно искусственно заблокировать дополнительной логикой), а в том, откуда брать эти самые "короткие" импульсы. Вот пришел перепад 0-1, вот подали его на S, а сбросить само S обратно как? Это же надо успеть сделать до прихода следующего перепада. Хотя... Если, допустим, его не сбрасывать, а держать до появления события во второй линии... И сбрасывать только после этого... И дополнительной логикой блокировать состояние, когда R и S оба равны 1... Но тогда получается, что можно пропустить первый бит в линии (если исходное состояние обеих линий равно 1, то логика будет блокировать работу триггера). В общем, ниасилить без клоков че-то...  Да и надо ли?  Ну я с ПЛИС к сож. не имел дела, но просто на логике можно построить такое дело.
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Jun 16 2011, 13:23
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(Буратино @ Jun 16 2011, 17:15)  Если в целом вариант принять за основу, то можно и не на 10ти инверторах. Как вариант можно задействовать одновибратор с запуском по фронту. Но это усложняет решение, мне кажется можно и нужно проще. Ха, так ведь этот одновибратор должен как-то мерять время, не так ли? Припоминаю, что, например, в 555 используются конденсаторы и компараторы. Но в ПЛИС конденсатор не вставишь, это правда. В общем, я хочу сказать, что предлагаемое Вами решение основано на измерении интервала времени, меньшего, чем интервал между двумя перепадами на одной линии. Я поступил точно так же, только вместо вибратора использовал внешний клок. По сути это то же самое, согласитесь. Получилось ровно 6 триггеров (это с учетов, что на двух реализован еще и передатчик).
|
|
|
|
|
Jun 16 2011, 14:22
|
не указал(а) ничего о себе.
     
Группа: Свой
Сообщений: 3 325
Регистрация: 6-04-06
Пользователь №: 15 887

|
Цитата(Mikle Klinkovsky @ Jun 16 2011, 18:05)  Да XOR (элемент считает чётность). Это, в смысле, три XOR-а? Четыре входа - как-то многовато... Вообще, идея понятна, и о подобном я тоже думал, но не стал пытаться реализовать, т.к. уверен, что будет глючить. Как бы телега впереди лошади. Я тоже использовал восстановление клока в линии по XOR (внизу), но мне не удалось обойтись без формирования этих пресловутых коротких импульсов. А для этого понадобился внешний сигнал, для простоты я его сделал периодическим, т.е. клок. А вариант без ошибки - это как? Зачем нам два выхода?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|