Jump to content

    

Shamil

Свой
  • Content Count

    176
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Shamil

  • Rank
    Частый гость
  • Birthday 10/15/1965

Информация

  • Город
    Array

Recent Profile Visitors

5853 profile views
  1. Потому что отрицательное напряжение распределяется между "защитным диодом" и светодиодом оптопары трудно предсказуемым образом. Даже если распределиться поровну - будет достаточно для пробоя светодиода. Светодиод не выгорит конечно, т.к. диод защищает. Но этот режим явно не из числа допустимых.
  2. Нет у Actel такого! Вам придется самостоятельно заполнять блоки RAM содержимым таблиц при каждом включении питания. Да работаем постоянно. С такой проблемой как у Вас не сталкивались, правда и таблиц настолько больших не было. Самая большая табличка которая была: localparam COEF_WIDTH = 12; // Разрядность коэфициентов фильтра (включая знаковый разряд) localparam COEF_QN = 960; // Кол-во коэфициентов фильтра localparam COEF_TABLE_SIZE = COEF_QN / 2 + 1; // Размер таблицы коэфициентов фильтра localparam ACC_WIDTH = 20; // Разрядность аккумлятора фильтра wire [COEF_WIDTH-1:0]CoefTableTx[COEF_TABLE_SIZE-1:0]; assign CoefTableTx[ 0] = 12'h001; assign CoefTableTx[ 1] = 12'h001; assign CoefTableTx[ 2] = 12'h002; assign CoefTableTx[ 3] = 12'h002; assign CoefTableTx[ 4] = 12'h002; assign CoefTableTx[ 5] = 12'h002; assign CoefTableTx[ 6] = 12'h003; assign CoefTableTx[ 7] = 12'h003; assign CoefTableTx[ 8] = 12'h003; assign CoefTableTx[ 9] = 12'h003; // ............. assign CoefTableTx[474] = 12'h7AF; assign CoefTableTx[475] = 12'h7B1; assign CoefTableTx[476] = 12'h7B3; assign CoefTableTx[477] = 12'h7B5; assign CoefTableTx[478] = 12'h7B6; assign CoefTableTx[479] = 12'h7B6; assign CoefTableTx[480] = 12'h000;
  3. Память у Actel не сохраняет свое содержимое после выключения питания. Поэтому кто то ее все равно должен будет проинициализировать. Все равно придется табличку держать либо в ПЛИС, реализованную на логике, либо снаружи в чем то. Я думаю дизайнер пытается вытянуть временные ограничения и размещает все это так, что потом не может развести. Я бы попробовал разбить ваши таблицы на 4 или 8 поменьше размером, с защелками на выходах, с последующим объединением.
  4. Прикрепил файлик с содержимым 0-го канального интервала потока Е1. У меня просто только поканальный захват данных реализован. Чтобы получить полный поток Е1, надо после каждого байта моего файла вставить 31 байт с требуемым содержимым каналов. CRC4 конечно будет неправильным, но синхронизацию всю можно отладить. CRC4_KI0.zip
  5. Посмотрите как Viko реализует счетчик с дробным коэффициентом деления. Я думаю вам вполне подойдет. Надо только реализовать вычисление выражения, которое там константное: localparam X = ((1<<$clog2(N)) - N + M); В Вашем случае параметр M равен константе 6, а вот N будет переменным, равным содержимому count1.
  6. В одном корпусе по моему нет таких. На двух корпусах можно изобразить: Вариант Plain тоже годится, только сброс U2 надо брать с выхода U1:Q, тогда будет надежней!
  7. У нас стоит в нескольких блоках 5576ХС4Т с одной 5576РС1У. В описание, я думаю, просто дан пример объединения РС1. Например чтобы загружать несколько (три) 5576ХС4.
  8. Надо просто вставить промежуточную цепь: wire ClkFromPinT9 /* synthesis syn_keep = 1 */; assign ClkFromPinT9 = PinT9; Не знаю как с PolarFire, в ProAsic3 разводит без проблем !
  9. Спасибо Сергей ! Я не додумался до такого красивого способа сдвига значения до начала битовой маски !!! Надо только наверное в макрос завернуть, чтобы не писать два раза одинаковую битовую маску ?
  10. Имелось в виду, что период счета таймера должен быть больше максимального периода импульсов с таходатчика ! По каждому прерыванию (по импульсу с таходатчика) берете текущий отсчет таймера, вычитаете из него значение отсчета таймера из предыдущего прерывания (по модулю равному периоду счета таймера), и получаете период оборотов вашего двигателя. Вычитая из него требуемое значение периода, получаете величину отклонения, которую подаете на петлевой фильтр.
  11. Давайте Ваши файлы, попробую их перевести в .pdf, если получится...
  12. Напрашивается следующий шаг: подать на ПЛИС сигнал данных через другой LVDS приемник, убрав его с того, через который принимается тактовая.
  13. То, что Вы посмотрели сигнал на выходе буфера, как то не убедительно... Я бы поднял выходную ножку (данных) на LVDS->LVTTL буфере, и подал бы на вход ПЛИС постоянный ноль. Т.е. создал бы ситуацию, когда на ПЛИС не поступает сигнал данных, а на LVDS приемник поступает. Так можно точно убедиться, что виновата именно ПЛИС.
  14. Нет у Мориона VCO с такими огромными диапазонами перестройки. Максимум +-0.02 %. Вообще, задача хорошо решается на ПЛИС. Сделать DDS на тактовой 40 МГц, я думаю, можно и на Воронежских ПЛИС-ах. Джиттер будет 25 нс.
  15. Если bytecntr считает только до 3-х, значит его кто то сбрасывает сигналом CSn. Ну или синтезатор соптимизировал (выкинул) старший разряд, т. к. он не используется в Вашем проекте. Других вариантов не вижу...