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

dima_spb

Свой
  • Постов

    418
  • Зарегистрирован

  • Посещение

Весь контент dima_spb


  1. Взаимно. Желаю Вам так и продолжать P.S. Надумывайте вы много. Все хорошо. Не переживайте, мне все равно на Вас и Ваши дела.
  2. Дорогой друг! Здесь все очень даже просто. То что описано в прикрепленном к посту коде есть ни что иное как обычные три дешифратора. Как известно, дешифратор необходим для дешифрации кода. В вашем случае дешифрируются CNT_SEC [5:0], CNT_MIN [5:0], CNT_HOUR [5:0]. Отсюда и три дешифратора. Эти три дешифратора работают параллельно и независимо друг от друга. Рисуете три квадратика и указываете с левой стороны их входы (CNT_SEC [5:0], CNT_MIN [5:0], CNT_HOUR [5:0]). Выходами вашего модуля является регистры (6 четырехразрядных регистров) - это вы рисуете с правой стороны. Первый дешифратор работает с кодами следующего диапазона: 0..59 Второй дешифратор работает с кодами следующего диапазона: 0..59 Третий дешифратор работает с кодами следующего диапазона: 0..23 Т.е. каждому из кодов соответствует опреределенный управляющий сигнал, который в свою очередь записывает в выходной регистр число. В итоге получается у Вас дешифратор + выходные регистры, в которые записываются различные константы под управлением дешифратора. Предлагаю Вам начать рисовать структуры, а я уже подправлю.
  3. Вы не так поняли. Если у Вас пропадает lock от PLL FPGA, то тут 2 причины: 1. Параметры PLL заданы верно, а тактовый генератор начинает шуметь при низких температурах (джиттер у тактового сигнала большой -> поэтому PLL не может захватить) 2. Параметры PLL не верные и шумит тактовый генератор при низких температурах. Либо по отдельности... Что делать?! 1. Проверить настройки PLL (погрузиться со словарем в доку от производителя ПЛИС и найти эту заветную допустимую цифру джиттера, она там должна быть!!!!!) 2. Взять доку на генератор и посмотреть на его джиттер во всем требуемом диапазоне. 3. Написать на листочке бумаги эти две цифры и сравнить их. Если джиттер генератора меньше максимального джиттера ПЛИС, то все хорошо. 4. Смотрите топологию платы и пытаетесь убедиться в том, что трассировка выполнена верно и оптимально. 5. Если к этому времени проблема не ушла, тогда берёте осциллограф и пытаетесь измерить джиттер генератора во всем требуемом температурном диапазоне. 6. Если проблема не ушла, тогда увольняетесь
  4. Субъективно. Наверное это удобно, но если человек хорошо владеет навыками программирования процессорной техникой и операционными системами, дабы использовать Zynq без ОС очень неудобно и мало эффективно. А если он не знает того же языка Си и осваивает одновременно и процессорную систему и ПЛИС, то он рискует запутаться без квалифицированной своевременной поддержке. Да и Zynq реальных денег стоит=)))) А ПЛИС на отладочной плате куда дешевле....
  5. zynq - это процессорная система у которой есть ПЛИС. И советовать новичку СнК как-то странно. Есть много FPGA и CPLD
  6. Самый надежный способ и наверное самый верные. А вы проверяли джиттер тактового сигнала при ваших критических температурах. Предположение: Возможно при понижении температуры появляется или увеличивается джиттер тактового сигнала и этот джиттер уже критичен для вашей ПЛИС. С такой проблемой я сталкивался и чесали уже не плис,а генератор.
  7. То что не погорит это точно, как минимум из-за того что плис работает с трехвольтовой логикой. Если ему засунуть 5 вольт то может и выйти из строя пин, либо банк. А так просто возможно некорректное восприятие уровней. Работать может кривенько=)))
  8. В общем-то любое цифровое устройство. Обычно ПЛИС сравнивают с процессорной техникой (очень уж много о ней везде упоминается и люди более осведомлены в этой области). При этом еще в виду последних тенденций в развитии электроники процессор и плис объединяются на одну подложку (если так можно выразиться). И если капнуть еще глубже, то на ПЛИС делается процессор (очень грубо, но суть именно такая). Поэтому ПЛИС очень гибкий инструмент при разработки различной электроники, но зачастую ПЛИС используют вместе с процессором по причине удобства реализации отдельных алгоритмов именно на базе процессора. Хотя и встречается аппаратура полностью реализованная на ПЛИС. Все остальное упирается в нюансы ПЛИС и процессоров. У Вас есть какие-то идеи для реализации на ПЛИС?
  9. Взаимно. Вы вряд ли будете успешны Думаю что тут мало кто ответит на этот вопрос. Лень ТС искать, а тут спросил и ему быстренько написали. Так редко бывает
  10. Тут не шло речи о интегралах, математике, физике и химии. А вы знаете как реализован умножитель на ПЛИС? Возможно, но он писал, что ему просто интересно.
  11. Я вот одного не могу понять?! А какая практическая ценность в знании того как в ПЛИС реализуют умножители. Собирая автомобиль механик не задумывается о том из каких пород металла сделан подшипники. Главное тип и его характеристики. Если все это подходит к характеристикам ТЗ, то какая разница из какого и как металла сделана та или иная деталь. Тут большинство инженеров - люди имеющие прикладные возможности, т.е. важно не как ты делал, а чтобы "работало хорошо" Если Вам интересна эта наука, то копайте буржуйский интернет. Начните с ведущих производителей ПЛИС (Xilinx, Altera). Там много информации в том числе и по этой теме. Все остальное догадки и голая теория,которая как известно имеет существенные отличия от практических реализаций. ИМХО, но русский инженер (воспитанник ушедшей великой эпохи) почему-то считает для себя должным заниматься наукой на ровном месте вместо того, чтобы начать работать :biggrin: Вы планируете начать "синтезировать на листочке в клеточку" свой сверхбыстрый умножитель? Будете использовать диаграммы Вейча, СКНФ, СДНФ? :smile3046: Инженер должен разобраться с вопросом на столько глубоко на сколько это требует этот сам вопрос. А у Вас просто интерес и отсутствие желание копать интернет. Вы хотите найти человека, который Вам красиво все расскажет (еще и на русском языке).
  12. Вы читали эту доку? Может вы разберетесь что там написано и вопросов не останется?! Читайте доку, там все есть...
  13. Там у Вас вообще вроде как мультиплексор....... Вообще не ясно чего Вы хотите
  14. Эх.. // The forllowing represents the connectivity of the unregistered // bi-directional I/O example // // |----------dataOUT // | // | // ________________ | // / dataInIO \______| // \________________/ | // | // | /| // |____/ |______dataIn // \ | // |\| // | // |---direction Теперь ясно? dataOUT постоянно слушает двунаправленный порт. Коли Вы сами управляете этим портом (tx,rx), то вы и можете не обращать внимание на данные на порту dataOUT, когда direction = 1. Если вас эта конструкция смущает, то можно доработать эстетически: module 3statePort ( inout [7:0]dataInIO, // двунаправленный порт input direction, // сигнал управления input [7:0] dataIn, // данные на передачу (Эти данные я буду передавать?) output[7:0]dataOUT // данные на прием (Тут полученные данные извне) ); assign dataInIO = direction ? dataIn : 8'bz; //Если дир == 1 на двунаправленные порт dataInIO будет выводиться значение dataIn, иначе ножка как вход z-state assign dataOUT = direction ? 8'h00 : dataInIO; // Если дир == 1 dataOUT будет выводится данные dataInIO, иначе нули Гуру дело говорит! В общем-то самое правильное было бы - вытащить из блока ноги "dataOUT", "dataIn" и "direction" в Top, а там уже использовать библиотечный модуль BUFFIO
  15. Не понял Вашего вопроса.. Нарисуйте структуру Вашего устройства. Пойдем по порядку. Укажите на этой структуре функц назначение блоков и все сигналы
  16. А откуда такие вопросы? За 16 лет не удалось разобраться с принципом построения цифровых устройств на базе ПЛИС? С их компиляторами и т.п?
  17. Намутили вы=))) Посмотрите внимательно на мой пример и на то что у Вас написано. Порт двунаправленный, т.е. когда он работает на передачу dir=1,тогда Вы выставляете данные на шину. Когда dir=0 ваш двунаправленный буфер работает в приемном режиме. Т.е. ваша ПЛИС на шине держит z-состояние, а другое устройство уже выставляет данные (лог 1 и 0). Сделайте буфер без регистров. module 3statePort ( inout [7:0]dataInIO, // двунаправленный порт input direction, // сигнал управления input [7:0] dataIn, // данные на передачу output[7:0]dataOUT // данные на прием ); assign dataInIO = direction ? dataIn : 8'bz; assign dataOUT = dataInIO; И используйте этот модуль в тексте своей основной программы
  18. Делаете Вы: // The forllowing represents the connectivity of the registered // bi-directional I/O example // // ______ // | | // |----------|D | // | | Q|-----in_reg // | clock___|\ | // ________________ | |/ | // / top_level_port \______| |_____| // \________________/ | // | // | /| // |____/ |________________________ // \ | _____ | // _____ |\| | | | // | | | out_sig-|D Q|----| // out_en-----|D Q|____| | | // | | clock___|\ | // clock_|\ | |/ | // |/ | |_____| // |_____| // // // // The forllowing represents the connectivity of the unregistered // bi-directional I/O example // // |----------input_signal // | // | // ________________ | // / top_level_port \______| // \________________/ | // | // | /| // |____/ |______output_signal // \ | // |\| // | // |---output_enable_signal // Если без регистров, то вот: inout <top_level_port>; wire <output_enable_signal>, <output_signal>, <input_signal>; assign <top_level_port> = <output_enable_signal> ? <output_signal> : 1'bz; assign <input_signal> = <top_level_port>; Только я не нашел у Вас в коде место где вы слушаете двунаправленный порт. Где в него суёте я нашел, а где из него берете я не нашел... Может стоит добавить и проблема уйдет. См. мой пример...подставь туда имена своих переменных и зови начальника=)))
  19. Понятие быстрые - это весьма относительное понятие. Если Вы сравниваете 133 серию и современные ПЛИС (fpga), то наверное Вам стоит начать разбираться с эволюцией электроники за последние 20 лет. Разберитесь с принципом работы ПЛИС... думаю только тогда вы поймете чем занимались во всем электронном мире последних 20 лет. Это ошибочное суждение, у Altera тоже все идентично описано (не хуже). просто поговорить?
  20. Если у Вас 3.3 Вольта логика, то как вы собираетесь туда засунуть сигнал от -1 до 1 Вольта с размахом 2 Вольта. Сама форма сигнала укладывающегося в 3.3 Вольта не так критична как его джитер. Вывод: Вам нужно сместить сигнал в область положительных напряжений и нуля, затем адаптировать под вашу логику. Современные ПЛИС поддерживают дифференциальные интерфейсы в том числе и дифференциальные глобальные тактовые вводы. О каких частотах идет речь?
  21. Эх вы!=)) Помните еще 133 логику, а интернетом не научились пользоваться...... Инфы очень много... как пример Нажмите сюда! см. стр 14
  22. Вообще, можно описать через case (возможно несколько удобнее будет), а приоритет оформить как-то иначе (для этого надо понимать откуда берется код ошибки). Если в лоб, то Вы все верно описали=))
×
×
  • Создать...