СОВРЕМЕННАЯ ЭЛЕКТРОНИКА №2/2012
нов. В блоке управления вводом/выво домиспользуетсяметодшаблонов, поз воляющий более гибко регулировать внутренние соединения блоков. Примитивы ILOGIC2/OLOGIC2 встав ляются в исходный код с помощью шаблонов IDDR2/ODDR2. Эти блоки позволяют заменить обмен данными типа DDR на тип SDR. Например, блок ODDR2 можно сконфигурировать та ким образом, что он будет принимать входные данные только на положи тельном фронте и затем автоматичес ки разделять их на выходе на двафрон та. У этого типа ввода/вывода есть не сколько недостатков: ● входные данные необходимо выда вать на рабочейчастоте памятиDDR3 SDRAM, в данном случае – 333,5 МГц. Это довольно близко к предельной частоте работыбуфера синхросигна ла (BUFG) 400 МГц; ● рабочая частота блоков IDDR2/ ODDR2 также должна быть буфери зована блокомBUFG, которыйявляет ся низкочастотнымбуферомпо срав нению с буферами ввода/вывода. ВПЛИС Spartan6 существует два типа буферов синхросигнала. БлокиBUFGи BUFGMUX – это глобальные буферы с предельнойрабочей частотой 400МГц. Блоки BUFIO2 и BUFPLL относятся к типу буферов ввода/вывода с предель нойрабочейчастотой1050МГц, поэто му использование второго типа бу феров предпочтительнее. Для исполь зования этих буферов необходимы примитивы ISERDES2/OSERDES2. Как следует из названия SERDES (SERializer/DESerializer), эти примити вы преобразуют последовательные потоки данных в параллельные для ти па ISERDES2 и параллельные потоки данных в последовательные для типа OSERDES2. Параметр DATA_WIDTH за даёт ширину параллельного порта дан ных.Придифференциальномвводе/вы воде этот параметр может принимать значения до восьми, при обычном – до четырёх. Соответственно, во столькоже раз понижается частота поступления параллельных данных. На рисунке 6 изображена упрощён ная блок схема подключения блоков ISERDES2/OSERDES2. Дифференциаль ный тактовый сигнал частотой 200МГц подаётся на вход блока PLL, на выходе которого формируются три частоты – 667, 167, 83МГц, а также вспомогатель ный сигнал locked (захвачен) для бу фера BUFPLL. Блок PLL может одно временно генерировать до шести час тот, однако только два первых выхода (clkout0 и clkout1) могут генерировать частоты выше 400МГц, и в этом случае эти выходы должны быть подключе ны к буферу BUFPLL. Блоки ISERDES2/OSERDES2 поддер живают только режим SDR при исполь зовании BUFPLL. Поэтому для поддер жания скорости обмена DDR на часто те 333,5 МГц высокая тактовая частота (IOCLK) равна удвоенной частоте па мятиDDR3 SDRAM (667МГц). Для рабо ты блоков ISERDES2/OSERDES2 также требуется вторая частота GCLK, равная скорости подачи параллельных дан ных. При параметре DATA_WIDTH = 4 эта частота будет в четыре раза меньше частоты IOCLK, т.е. составит 167 МГц. Таким образом, частота подачи парал лельных данных получается в два раза ниже по сравнению с использовани ем примитивов ILOGIC2/OLOGIC2. На выходе BUFPLL также генерируется сигнал serdesstrobe, управляющий за грузкой параллельных данных. Часто та 83 МГц является основной рабочей частотой конечных автоматов кон троллера памяти. Блоки ISERDES2/OSERDES2, как пра вило, используются вместе с управляе мыми линиями задержки IODELAY2. Использование линий задержки поз воляет точно подобрать требуемые фа зовые соотношения сигналов, напри мер, отцентрировать выходные дан ные относительно тактового сигнала. Для ПЛИС семейства Spartan 6 входная задержка может быть динамически конфигурируемой во время работы, тогда как фиксированная выходная за держка должна быть задана на этапе компиляции проекта. В данной версии контроллера входная задержка уста навливается в процессе калибровки равной нулю (VARIABLE_FROM_ZERO) во время инициализации, а выходная задержка устанавливается равной 30 для линий данных и маски и равной 0 для всех остальных линий. Для обеспечения управляемой за держки все интерфейсные сигналы памяти DDR3 SDRAM, включая ли нии команд и адреса, подключены че рез линии задержки и примитивы ISERDES2/OSERDES2. Дифференци альный тактовый сигнал частотой 333,5 МГц для памяти формируется при помощи блока OSERDES2, работа ющего на высокой частоте 667 МГц и имеющего на входе фиксированные данные 4’b0101. На выходе блока полу чается сигнал частотой 333,5 МГц, ко торый после линии задержки и вы ходного буфера подаётся на входы па мяти. Сигналы адреса и команд также проходят через блоки OSERDES2 и IODELAY2. Поскольку глобальная час тота синхронизации равна 167 МГц, а команда для памяти должна быть ак тивной только в течение одного пери ода частоты памяти (333,5 МГц), сиг нал команды подаётся только на пер вые два входа блока OSERDES2. На оставшиеся два входа поступает посто янная величина 2’b11, что соответству ет команде NOP: ПРОГРАММИРОВАНИЕ 72 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 2 2012 PLL clkou t0 clkout1 clkout2 locked дифф. входной сигнал 200 МГц BUFG BUFPLL 667 МГц 83 МГц 167 МГц GCLK PLLIN locked IOCLK serdesstrobe GCLK O SERDES 2 clkdiv clk0 OQ ioce D[3:0] ISERDES2 clkdiv cl k0 D ioce Q[3:0] IOCLK IOCLK GCLK GCLK serdesstrobe serdesstrobe IODELAY2 clk ioclk0 dataout odatain GCLK IOCLK Буферы ввода/вывода К памяти DDR3 SDRAM К блокам ISERDES2, OSERDES2 Рис. 6. Подключение блоков ISERDES2/OSERDES2 © СТА-ПРЕСС
RkJQdWJsaXNoZXIy MTQ4NjUy