excly
Участник-
Постов
63 -
Зарегистрирован
-
Посещение
Весь контент excly
-
Вы совершенно правы. Но цель была именно разобраться с констрейнами))
-
50МГц. Это задача, придуманная самим собой для себя же. Просто чтобы Разобраться как работать с констрейнами
-
Своё мнение по поводу моих выражений(хоть и косноязычных), которые к сути вопроса не относятся, пожалуйста оставьте при себе. Видимо я неправильно понял смысл указания входных задержек. Я думал, что set_input(output)_delay создаю задержку, а не указывают ее. Спасибо, что все мне проясняли.
-
Доброго времени суток. Пытаюсь разобраться с обконстрейниванием входных портов. Дано: На вход приходят данные и клок. Но восходящий фронт клока стоит не ровно посередине данных. Нужно пододвинуть фронт клока на середину данных. Подскажите, пожалуйста, как это сделать и можно ли потом будет проверить SignalTap'ом результат. Картинка внизу показывает, что именно я хочу получить
-
искать нужно по запросу glitching filter?
-
тогда буду очень признателен, если подскажете как сделать такой фильтр. Или хотя бы покажете где об этом можно почитать
-
если я правильно понимаю, то фильтр это синхронизатор? Если да, то лучше заводить на него не только клок, но и данные?
-
я нашел опцию Termination Input в настройках пина. Там много опций(OCT, Parallel, Parallel with calibration, series, series with calibration). Какую выбирать да и где почитать для каких случаев какую использовать?
-
обычным проводом. но на частоте в 5МГц, как мне кажется, это не должно сильно влиять никак. просто от выходов одной платы идут провода ко входам в другую
-
на той ПЛИС, которая генерирует или той, которая принимает?
-
посмотрел выход той платы, которая генерирует счетчик, на анализаторе и заметил, что в тот момент, когда FF превращается в 00, на линии клока появляется лишний фронт. Видимо так и появляются непонятные данные в FIFO. Вопрос в том, как это победить?
-
заполнение FIFO идет на 50МГЦ, но не непрерывно, а с паузами между посылками(так было изначально. сейчас частота 5МГЦ, но это ничего не изменило). как только в FIFO набирается количество слов, равное размеру пакета UDP, начинается отправка сначала заголовка, а потом и самих данных, которые и находятся в FIFO на частоте 125МГц. Той же частоте, на которой работает ethernet PHY. процесс заполнения не останавливается. это один и тот же проект. Частота на выходе FIFO 125Мгц. SignalTap получилось завести на 500Мгц, поэтому временная диаграмма на выходе будет не сильно то и точная. Хочу еще раз обратить внимание, что если данные генерируются на этой же ПЛИС, то никаких ошибок не происходит
-
вывожу по udp. Проблема, видимо не во входах. Смотрел Signal Tap'ом на входе fifo и все стоит ровно. Причем если я генерирую данные на самой ПЛИС и завожу их на FIFO, то все отлично. Но если завожу через ножки(используя тот же модуль генерации данных, только на другой точно такой же плате), то в последовательности появляется лишние 2 байта. Передаю я 16-битный счетчик. FIFO вход 16 бит, выход 8. Ощущение будто данные из FIFO неправильно забираются. Причем это происходит именно тогда, когда данные идут снаружи платы, а не генерируются внутри. И происходит это строго в определенный момент, когда младший байт доходит до FF, например: ...FD05 FE05 FF05 007E 0006 0106. Откуда это 007E вылезает непонятно, причем эти 2 байта всегда разные. На вход FIFO все приходит правильно.
-
Нашел, где посмотреть. Странно, что не указана частота внешнего клока(который с данными идет), хотя я ее описал в констрейнах.
-
Фронт клока стоит ровно посередине данных. Подскажите, пожалуйста, где я увижу информацию о рабочей частоте после компиляции
-
В том случае, когда они приходят снаружи, а не генерируются модулем - клок внешний Добавлю еще, что сигнал с входных ножек сразу заводится на FIFO. Ножки настроены по умолчанию
-
50МГц Если я создаю модуль в самой ПЛИС, который генерирует данные, и подаю их на вход принимающего модуля, то все отлично, никаких ошибок нет. Поэтому я и подумал, что дело в настройках ножек. И еще вопрос. Нужно ли входные ножки подтягивать к земле или питанию. Если да, то к чему лучше?
-
Quartus 17.0 Pin Planner Current Strength
excly опубликовал тема в Среды разработки - обсуждаем САПРы
Добрый день. Подскажите, пожалуйста, по какому принципу выбирать силу тока на входных пинах и как может повлиять на работоспособность проекта неправильный выбор этого параметра? Использую плату EthOnd с Cyclone V. На вход идут данные 16 бит и клок. Все снимается нормально, но иногда проскакивают ошибки. Смотрел Signal Tap'ом, фронт клока стоит ровно посередине данных. Могут ли настройки ножек как-то влиять на появление ошибок? -
Спасибо огромное. Проблема оказалась именно в размере буфера, который я не указал. На 350Мбит все летит без единой ошибки
-
Попробовал между 2 компами. Потери примерно такие же. Значит дело в приемной части. Приемный софт писал не я. Сейчас набросал простенький скрипт на Python, который принимает и пишет в файл. Все равно ошибки. Вот код приемного скрипта import socket import sys UDP_PORT = 50016 sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) sock.bind(('', UDP_PORT)) with open(sys.path[0] + '\\data.bin', 'wb') as file: while True: data = sock.recv(2048) file.write(data) if not data: break sock.close()
-
пропуски есть точно. Я зашил в пакеты счетчик, пишу данные в файл, а потом через скрипт прогоняю и смотрю сколько пропущено. при потоке в 40Мбит потери около 0.02%, 80Мбит - 0.1%, 140Мбит - 0.3%. Как я понял это очень много. Но закономерности по шагу между потерянными пакетами я не вижу. Кроме как в констрейнах RGMII в чем еще может быть проблема?
-
а wireshark скажет если есть потерянные пакеты?
-
Без tse. Я сам все писал
-
плата напрямую подключена к компу, поток 50Мегабит, ethernet гигабитный. При увеличении скорости потока данных ошибка увеличивается.