Jump to content

    

cornflyer

Свой
  • Content Count

    166
  • Joined

  • Last visited

Community Reputation

0 Обычный

About cornflyer

  • Rank
    Частый гость
  • Birthday 05/25/1982

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

1309 profile views
  1. квантовые вычисление на данный момент - это просто дорогая игрушка... для взрослых ))) как работает квантовый компьютер Google или IBM (пусть у нас есть квантовый компьютер 54 Q-бита): 1. ко всем 54 кубитам применяется операция H (Hadamard Gate) таким образом каждый кубит переводится в состояние "суперпозиции"... это значит, что если провести измерение состояния каждого кубита, то результатом измерения с равной вероятностью будет '0' или '1' короче, получается хороший генератор случайных чисел (54-битный) PS все эти 54 кубита всегда "инциируются" случайным образом... нет никакой возможности "загрузить" в них реальное 54-битное число и "что-то" с ним сделать любой квантовый алгоритм начинается с операции квантового спутывания H (Hadamard Gate) потом ко всем ячейкам применяется комбинация квантовых операций (quantum gates)... если каждый раз после квантового спутывания применять одну и ту же комбинацию квантовых операций, тогда при измерении состояния всех кубитов будет получаться одно и тоже 54-битное число да, это прикольно - квантовая механика работает! но на практике эти манипуляции никак применить нельзя... теоретически, можно реализовать, например, алгоритм Гровера - быстрый поиск индекса числа в не сортированном массиве : 1. каждый новый массив значений (вектор значений) должен будет представлен соответствующей комбинацией квантовых гейтов, число которых больше размерности массива... 2. каждый новый массив индексов (вектор индексов) должен будет представлен соответствующей комбинацией квантовых гейтов, число которых больше размерности массива... 3. потом для поиска каждого конкретного числа придётся применить соответствующую этому числу комбинацию квантовых гейтов, число которых также больше размерности массива... на практике - это пока фантастика ((( может лет этак через 100 что-то измениться при условии усердного финансирования крупных корпораций )))
  2. все работает для синхронизации в итоге используется White Rabbit (SPEXI): https://ohwr.org/projects/white-rabbit/wiki http://www.incaacomputers.com/products/by-...function/spexi/
  3. я сейчас пытаюсь побороть этот чип документация - отвратительная подробных руководств по использованию нет все сделал как в мануале - меряет какую-то чушь
  4. буду пробовать различные варианты расскажу через несколько месяцев, что в итоге получится 1) C АЦП я определился - это будет AD7960 (18 bit PULSAR, 5 MSPS, LVDS) 2) Период частоты будет считать FPGA: для высокой точности будет использоваться самодельный преобразователь времени в напряжение (для измерения интервалов между фронтами)
  5. Задача умножения частоты не является абстрактной, ее решение необходимо для реализации точной цифровой задержки и цифрового фазовращателя тактового сигнала АЦП в ПЛИС с целью привязки измерений к конкретному сгустку частиц (ускоритель Нуклотрон) и настройки на максимум сигнала с пикапа (для измерения резонансной частоты пучка). На данный момент изготовлена плата (самодельный FlexRIO модуль) с двумя АЦП AD9444 и двумя ЦАП DAC904 и входом для синхронизации (детектор нуля для привязки к ВЧ). Этот модуль подключается к PXI FPGA модулю, у которого на борту Virtex-5. Реализовать задержку и фазовращатель с величиной джиттера меньше 5 нс не удалось. Вот я и подумал что часоту ВЧ можно уножить раз в 30 и подать уже на ПЛИС. Тактирование АЦП от ПЛИС - это другая задача (которая уже решена для АЦП AD9444). Предполагается, что использование модуля FPGA на основе ПЛИС Kintex-7 позволит реализовать фазовращатель с джиттером 2 нс (хотелось бы 0.5нс).
  6. да, согласен, что из 24 бит - 6-7 младших будут "шумящими" поэтому скорее всего остановлюсь на AD7960 - 18-Bit, 5 MSPS PULSAR® Differential ADC а умножение частоты придется делать внутри Kintex-7
  7. импульсы не короткие, полоса 500kHz - 1200kHz В текущей версии работает AD9444 как тактировать AD7760 - только начал разбираться MCLK от FPGA, рабочий режим - 2.4 MSPS может буду использовать ADS1675 - у него есть START
  8. Спасибо, думаю, что Вы правы - буду делать все на Kintex-7 АЦП - AD7760 24 bit, 2.5 MSPS, параллельный интерфейс тактирование кратной частотой - до 2.4MSPS, т.е. каждый 80-й такт будет использоваться для запуска АЦП 600kHz ... 6000kHz x 32 => 19.200MHz ... 192MHz / 80 => 240kHz ... 2.4MHz и будет возможность подобрать начало запуска измерений Прошу Вас поподробнее о косвенном методе
  9. у меня есть Spartan3 XC3S400 (200MHz) и точность подсчета периода +\-5 ns, а джиттер должен быть не больше 500 ps можеть есть готовый преобразователь период-код? иначе придется Kintex-7 использовать
  10. эта задача из ускорительной физики в процессе ускорения ионного пучка его оборотная частота растет ( в LHC, например, она поястоянна и равна 10kHz, однако для маленьких ускорителей это сделать сложнее) и чтобы ее вычесть из результата измерений и избежать лишних вычислений - АЦП тактируется частотой от ВЧ системы это уже работает , но возникла необходимость синхронизации измерений с нужным сгустком ионов (bunch) для этого частота уножается в 30 раз и можно двигать фазу тактирования АЦП достаточно точно вот я и спрашиваю, может кто знает как сделать лучше?
  11. От ВЧ системы поступает частота, которая со скоростью 8kHz/1ms увеличивается от 500kHz до 6MHz, фаза - гладкая функция (без скачков) 1. На входе стоит эллиптический BPF 500kHz - 6MHz (5-го порядка) 2. Далее через ВЧ трансформатор отфильтрованная частота подается на уcилитель G=+10 (AD8067 с G=+10 не искажает в полосе), 3. Далее детектор нуля (ADCMP604) На выходе компаратора - меандр, который хотелось бы умножить раз в 30 для тактирования АЦП. Я нашел CS2300-03, который умножает в 4 раза После него можно поставить CS2300-01 для умножения в 8 раз В итоге частота должна умножится в 32 раза. У меня есть вопрос к стабильности работы такого решения - будет ли работать вообще ? В идеальном случае, когда duty cycle 50% или когда на входе может быть duty cycle 30-70% (после детектора нуля) PS в мануале на CS2300-OTP сказано The following outlines which conditions cause the PLL to go unlocked: • Discontinuities on the Frequency Reference Clock, CLK_IN. • Gradual changes in CLK_IN frequency great er than ±30% from the starting frequency. • Step changes in CLK_IN frequency
  12. могу не только развести, но еще и запаять (QFN, BGA, SMD - 0603, при необходимости 0402) и запрограммировать! cornflyer@gmail.com
  13. LPC2148 UART baudrate

    /*-------------------------------------------------------------------------*/ void SerialInit(void){ unsigned int reload = (15000000/(115200*16)); //Configure UART0 Pins PINSEL0 |= 0x05;//Enable RxD0 and TxD0 U0LCR = 0x00000007;//Configure Data Bits and Parity MB_PAR_NONE U0IER = UART_RX_TX;//UART0 Interrupts*/ U0LCR |= 0x80;//Set DLAB U0DLL = reload;//Set Baud U0DLM = reload>>8;//Set Baud U0LCR &= ~0x80;//Clear DLAB U0FCR = 0x07;//Activate and clear FIFOs VICVectAddr0 = (unsigned long)sio_irq; VICVectCntl0 = 0x20|6; VICIntEnable = 1 << 6;//Enable UART0 Interrupt } /*-------------------------------------------------------------------------*/ void sio_irq(void) __irq{ switch (U0IIR&0x0E){ case 0x04://Receive Data Available ModBusBuff[ModBusBuffIndex]=U0RBR; ModBusBuffIndex++; StartTimer();//check frame by timeout break; case 0x02://char sent if(tx_i<tx_pos){ U0THR = tx_buf[tx_i++]; } break; } VICVectAddr = 0xFF;//Acknowledge Interrupt }