Jump to content

    

Skryppy

Свой
  • Content Count

    133
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Skryppy

  • Rank
    Частый гость
  • Birthday 04/26/1987

Информация

  • Город
    Жуков, Калужская область

Старые поля

  • Vkontakte
    skryppy

Recent Profile Visitors

1539 profile views
  1. Насчёт Id я спутал с bare code. В ug360 стр 96 расшифровка Id.
  2. Нет, у микросхем одного семейства Id не может повторяться , но может повторяться для разных семейств - virtex и artix,например. Это Id можно считать внутри проекта и использовать для защиты от распространения прошивок.
  3. Спасибо за ссылки.
  4. Я с частичной реконфигурацией никогда не работал, но вот в этом видео на 12 минуте на слайде пишут, что у альтеры все stratix и Arria поддерживают такой режим работы Partial reconfiguration
  5. Для начала оставьте только одно значение - константу и все время ее посылайте. Каким образом ваша плата стыкуется с юсб портом компьютера? Давайте временные диаграммы данного ftdi чипа с мануала. Насколько я помню у данных микросхем надо дергать порты rxf, Rd, data( прием данных) и txe, we, data (передача данных) Второй вопрос, как вы принимаете данные в компьютере, какие ftdi драйвера используете, команды?
  6. Заменять ibufgds на ibufds очень плохо. Напишите какая точно ошибка выскакивает при этом. И на какой контакт, какой конкретной плис вы его подключили. Было бы интересно получить также по паре контактов ddr данных и контакты всех клоков приходящих из вне. В проекте, как вам тут советуют, обязательно удалите всё лишнее. Оставьте только 1 бит входных данных и обвязку к нему и добейтесь, чтобы проект скручивался без ошибок. Обязательно установите какие конкретно биты сбоят, если у вас конечный результат не работает это ещё не значит, что дрожат данные. Если есть возможность послать конкретное тестовое число ( лучше много раз) и принять его , сравнив с образцом, прям сразу после буферов, без какой-либо обработки, сделайте так. Возможно iserdes и iodelay не понадобятся ( хотя их потом все равно лучше прикрутить)
  7. Давайте для начала покажите картинку, что данные у вас дрожат, как вы ее получаете? Какие именно биты сбоят; как часто; зависит от температуры; может у вас обработка данных неправильная? 1) Итак при приеме данных от АЦП в ddr режиме связка IOB+iserdes разводится намного лучше чем Iob + iddr. 2) желательно прикрутить в проект iodelay, он имеет, насколько помню, 32 градации и в зависимости от тактовой может сделать 32 шага задержки, меняя тактовую можно увеличить/уменьшить шаг. 3) чтобы понять насколько накрутить задержку, надо подать сопровождающий данные с АЦП синхросигнал (обычно отдельная lvds пара) на триггер , сам триггер тактировать внутренней тактовой частотой). Когда сопровождающий сигнал совпадает с внутренним, то на выходе триггера константа. Ваша задача добавлять задержку пока не появится случайный сигнал на триггере ( значит вы добрались до фронта сигнала). Запоминаете задержку( пусть будет 5) и добавляете ещё пока не появится константа, а потом опять случайные данные. Так вы найдете второй фронт синхросигнала( пусть, например, задержка будет равна 12). Тогда понятно, что если выставить задержку равную 8, то будете в центре синхросигнала. Если все дорожки одинаковые, то всем контактам с iodelay ставите такую задержку. Сначала поэкспериментируйте с ручной настройкой, потом напишите контроллер, чтобы он автоматически при каждом включении проделывал это всё за вас. В случае большого разбега длинны задержка у каждого контакта будет своя, но когда вы ее подберёте ( для каждого контакта) она будет на одну и ту же величину ( у каждого контакта своя) отличаться от задержки контрольного контакта (тактового сигнала) при разном включении. Просто добавите соответствующую надбавку к каждому контакту. 4) насколько большой разбег длин дорожек у вас и на какой частоте работаете? Для стеклотекстолита задержка 7 пс/мм длины, посчитайте сколько пикасекунд у вас разбег и критичен ли он для вашей частоты.
  8. В ise выбираете данный компонент( если он не топ модуль) и в левом нижнем углу выбираете пункт create hdl templates. Сгенерированные описания копируете и вставляете в топ модуль.
  9. Для автоматов состояний можно использовать матлаб stateflow -> coverage -> hdl compiler. Покрытие тестами можно довести до 100%. Матлаб
  10. Если используете xilinx, то в ise -> add new file -> ip -> dds compiler. Dds
  11. Скажите, а почему вы не используете готовый ip блок cordic для задания cos и sin?
  12. Для ddr есть готовые примитивы iddr и oddr . Используйте их. Вот похожая тема вроде на этом форуме Spartan 6 и АЦП DDR, также на Хабре статья Подключение ацп. А вообще-то непонятно что конкретно у вас не получается, данные в ddr формате принять?
  13. Тогда можно посмотреть разводку и указать конкретное место для данного регистра. Для ucf файла, например в ise: Inst "my_module/reg_array[0].fde_used.u2" LOC = SLICE_X100Y245; или указать допустимую область на кристалле (Pblock).