Научная статья на тему 'АЛГОРИТМ УСТРОЙСТВА ФОРМИРОВАНИЯ ТАКТОВОГО СИГНАЛА SDRAM ПАМЯТИ'

АЛГОРИТМ УСТРОЙСТВА ФОРМИРОВАНИЯ ТАКТОВОГО СИГНАЛА SDRAM ПАМЯТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
138
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ТАКТОВЫЙ СИГНАЛ / SDRAM / ЗАДЕРЖКА / АЛГОРИТМ / ПЛИС / VIRTEX 5

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Чернов Д.Н., Смирнов А.С., Алперин Е.Д.

Рассматривается алгоритм формирования тактового сигнала SDRAM микросхем для повышения надёжности операций чтения и записи при влиянии внешней среды. Суть алгоритма состоит в последовательной связке запись-чтение. То есть константное значение сначала записывается в память, а после считывается из неё, если запись прошла успешно, значение задержки запоминается во внутреннем регистре, если нет, то величина задержки увеличивается и цикл запись-чтения повторяется снова. Так будет происходить до тех пор, пока не зафиксируется рабочий вариант либо не исчерпается лимит элементов задержки. После того, как будет найдено и сохранено первое рабочее значение задержки, алгоритм продолжит выполнять цикл запись-чтение, попутно наращивая значение задержки до тех пор, пока считанное значение будет не совпадать с записанным. Таким образом, получятся минимальное и максимальное значения задержки. После этого вычисляется среднее значение и устанавливается в качестве основного. Описание алгоритма выполнено средствами языка VHDL. В качестве платформы разработки используется ПЛИС от Xilinx семейства Virtex 5 модель XC5VLX110

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

ALGORITHM OF GENERATION CLOCK SIGNAL FOR SDRAM MEMORY

An algorithm for generating a clock signal of SDRAM chips is considered to increase the reliability of read and write operations under the influence of the external environment. The idea of the algorithm is a sequential write and read operations. First, the constant value is written to the memory, and then read from it. If the writing operation was successful, the delay value is stored in the internal register. Next we need to find a value that the algorithm cannot read. The algorithm will try to find this value until a working option is found, or the delay limit elements is over. When the first working delay value is found and stored, the algorithm will continue to perform a write-read cycle, simultaneously increasing the delay value until the read value coincides with the recorded value. Thus, the minimum and maximum delay values will be found, the average delay value is calculated and set as the main one. The description of the algorithm is performed by means of the VHDL language. The FPGA from Xilinx of the Virtex 5 family, model XC5VLX110, is used as a development platform

Текст научной работы на тему «АЛГОРИТМ УСТРОЙСТВА ФОРМИРОВАНИЯ ТАКТОВОГО СИГНАЛА SDRAM ПАМЯТИ»

DOI 10.25987/VSTU.2019.15.5.010 УДК 621-311-9

АЛГОРИТМ УСТРОЙСТВА ФОРМИРОВАНИЯ ТАКТОВОГО СИГНАЛА SDRAM ПАМЯТИ

Д.Н. Чернов1, А.С. Смирнов2, Е.Д. Алперин1

'Воронежский государственный технический университет, г. Воронеж, Россия 2АО «Научно-исследовательский институт электронной техники», г. Воронеж, Россия

Аннотация: рассматривается алгоритм формирования тактового сигнала SDRAM микросхем для повышения надёжности операций чтения и записи при влиянии внешней среды. Суть алгоритма состоит в последовательной связке запись-чтение. То есть константное значение сначала записывается в память, а после считывается из неё, если запись прошла успешно, значение задержки запоминается во внутреннем регистре, если нет, то величина задержки увеличивается и цикл запись-чтения повторяется снова. Так будет происходить до тех пор, пока не зафиксируется рабочий вариант либо не исчерпается лимит элементов задержки. После того, как будет найдено и сохранено первое рабочее значение задержки, алгоритм продолжит выполнять цикл запись-чтение, попутно наращивая значение задержки до тех пор, пока считанное значение будет не совпадать с записанным. Таким образом, получятся минимальное и максимальное значения задержки. После этого вычисляется среднее значение и устанавливается в качестве основного. Описание алгоритма выполнено средствами языка VHDL. В качестве платформы разработки используется ПЛИС от Xilinx семейства Virtex 5 модель XC5VLX110

Ключевые слова: тактовый сигнал, SDRAM, задержка, алгоритм, ПЛИС, Virtex 5

Введение

SDRAM - это синхронная, энергозависимая память, лежащая в основе работы большинства современных микропроцессорных систем. Такая популярность объясняется её ценовой доступностью, но при этом она имеет довольно сложную внутреннюю архитектуру. В физической основе SDRAM памяти лежит ёмкостной элемент, который играет роль аккумулятора. Так как со временем заряд с ёмкости может уходить в SDRAM, предусмотрена возможность регенерации банков памяти. Эта операция, а также операции чтение-запись выполняются по строгому определению тактового сигнала [1].

Для управления микросхемой SDRAM существует отдельная шина команд. Данные с этой шины захватываются микросхемой по фронту тактового сигнала. Это могут быть команды: записи, чтения, регенерации банков памяти, деактивации ряда, открытии или закрытии ряда для операции записи и чтения. На рис. 1 показан пример операции чтения данных из памяти.

Генерацией управляющих сигналов для микросхемы SDRAM занимается контроллер памяти. Это создаёт определённые трудности. Дело в том, что для генерации управляющих сигналов контроллер задействует много логики, что накладывает временные задержки на формирование командных сигналов. Таким образом, триггеры внутри микросхемы SDRAM должны защёлкиваться в момент, когда сигналы на командной шине будут устойчивыми. Значит, тактовый сигнал SDRAM должен иметь задержку равную времени установки сигналов контроллером памяти (рис. 2) [1].

Рис. 1

Рис. 2

Для внесения задержки в тактовый сигнал микросхемы SDRAM было разработано специальное устройство, состоящее из блока задержки и аппаратного драйвера для контроллера памяти.

© Чернов Д.Н., Смирнов А.С., Алперин Е.Д., 2019

Алгоритм работы устройства

Время задержки, о которой говорилось выше, не является константой. На её длительность может повлиять такой внешний фактор, как температура среды.

Опираясь на этот факт, был разработан алгоритм экспериментального подбора устойчивого значения времени задержки тактового сигнала. Его суть состоит в последовательной связке запись-чтение. То есть, константное значение сначала записывается в память, а после считы-вается из неё, если запись прошла успешно, значение задержки запоминается во внутреннем регистре, если нет, то величина задержки увеличивается, и цикл запись-чтение повторяется снова. Так будет происходить до тех пор, пока не будет найден рабочий вариант либо не будет исчерпан лимит элементов задержки.

После того, как будет найдено и сохранено первое рабочее значение задержки, алгоритм продолжит выполнять цикл запись-чтение, попутно наращивая значение задержки. Так будет происходить до тех пор, пока считанное значение будет не совпадать с записанным.

Таким образом, получится минимальное и максимальное значения задержки. После этого вычисляется среднее значение и устанавливается в качестве основного.

Структурная схема блока задержки

Структурная схема блока задержки представлена на рис. 3.

Рис. 3

Она включает в себя набор элементов задержки, машину состояний, арифметический вычитатель, сдвиговый регистр и селектор выходного сигнала.

Схема синхронная и срабатывает по положительному фронту тактового сигнал. После сброса все внутренние регистры устанавливаются в ноль. Входная шина «Элементы» пока-

зывает количество элементов задержки, которые необходимо включить в цепь.

Каждый положительный фронт тактового сигнала машина состояний передаёт количество заданных на входе элементов в вычита-тель, где вычисляется разность между ними и значением внутреннего счётчика элементов. Если результат операции не нулевой, машина состояний формирует управляющие сигналы для блока элементов задержки и запускает внутренний счётчик, в противном случае происходит холостой цикл.

Блок элементов задержки состоит из десяти элементов, каждый из которых может задавать задержку в 4.6875 нс. Управляющими сигналами для этого блока служат: тактовый сигнал, сигнал включения и сигнал инкремента. Если сигнал включения активен, каждый положительный фронт тактового сигнала, в зависимости от значения инкремента, идёт увеличение/уменьшение задержки выходного сигнала относительно входного.

Переполнение счётчика машины состояний показывает, что элемент задержки достиг максимума. Поэтому в сдвиговом регистре происходит переход сигнала включения на другой элемент. При переполнении внутреннего счётчика элементов становится активным выходной сигнал «Макс.».

На выходе схемы установлен селектор, который по значению внутреннего счётчика элементов определяет, сигнал с какого элемента задержки отправится на выход.

Машина состояний

Этот блок является управляющим устройством схемы. Алгоритм его работы показан на рис. 4.

Из рисунка видно, что поведение модуля определяет внутренний регистр состояния. Он может принимать значения от 0 до 3. Если по положительному фронту тактового сигнала значение внутреннего регистра состояния является нулевым, блок произведёт сравнение количества элементов, заданных на входе, с количеством элементов, уже включённых в цепь (эта информация хранится во внутреннем счётчике элементов). В случае, когда на входе элементов задано больше, чем содержит внутренний счётчик элементов, сигнал инкремента становится активным. Если же на входе задано меньше элементов, сигнал инкремента станет не активным. Параллельно эти данные передаются в вычитатель, который считает количе-

ство элементов для добавления к цепи (или выбрасывания из неё). Значение внутреннего регистра состояния меняется на 1.

Рис. 4

Если значение внутреннего регистра состояния - 1, данные с выхода вычитателя передаются во внутренний счётчик машины состояний, а также обновляются данные внутреннего счётчика элементов. Если выбранный элемент достиг максимальной задержки, значение регистра состояния меняется на 2, в противном случае в регистр состояния заносится значение 3.

Если значение внутреннего регистра состояния - 2, сигнал активации элемента задержки переходит к следующему элементу в очереди. Делается это в сдвиговом регистре. Также осуществляется контроль по переполнению (в случае инкремента цепи) и отслеживание нулевого элемента (в случае декремента).

Когда значение внутреннего регистра состояния - 3, выполняется наращивание задержки в активном элементе. Это делается с помощью декремента внутреннего счётчика машины состояний. Каждые десять тактов происходит проверка условия переполнения активного элемента задержки. Если этот элемент достиг максимума, значение внутреннего регистра состояния изменяется на 2. В противном случае проверяется значение внутреннего счётчика машины состояний. Если оно равно нулю, задержка установлена и регистр состояния становится 0. Если оно не равно нулю, этап наращивания продолжается, а значение регистра состояния остаётся неизменным.

Элементы задержки

Схема базируется на ПЛИС ХШпх "УМех 5, поэтому в качестве основы блока элементов задержки используются примитивы ХШпх, ЮDELAY (рис. 5).

Рис. 5

Примитив ЮDELAY является синхронным устройством и состоит из цепи элементов задержки (64 элемента), мультиплексора и счётчика. Он имеет три режима работы: инкремент, декремент и удержание задержки выходного сигнала относительно входного. Управление осуществляется через входы «Инкремент» и «Включение» (рис. 5). Если сигнал «Включение» не активен, элемент удерживает установленное значение задержки. В противном случае, при активном уровне сигнала «Инкремент» значение задержки инкрементируется, при неактивном декрементируется. Внутренняя организация примитива ЮDELAY показана на рис. 6.

Рис. 6

Драйвер контроллера памяти

Как уже говорилось выше, правильный подбор тактовой частоты обеспечивает взаимодействие блока задержки с контроллером памяти. Это взаимодействие осуществляется аппаратным драйвером, встроенным в контроллер.

На момент запуска всей системы происходит процесс инициализации SDRAM памяти, как правило, это: команда деактивации ряда всех банков, команды регенерации банков (количество этих команд задаётся производителем микросхемы) и команда загрузки конфигурации микросхемы (настройка латентности и длины

пакета). Аппаратный драйвер перед запуском этой инициализации выполняет проверку выходного строба блока задержки (test_sd на рис. 8), если этот сигнал находится в активном состоянии, инициализация запускается. Помимо управления запуском инициализации, драйвер расширяет её командами записи и чтения константы.

На рис. 7 представлена временная диаграмма, демонстрирующая работу устройства. Шина elements указывает блоку задержки какое количество элементов должно быть установлено. После изменений на этой шине блок задержки «проваливает» сигнал test_sd, таким образом заставляя драйвер ждать, пока необходимая задержка будет установлена.

СО в to s to

СО

со И to и Сф

ш сСЭ

0 Со

■я

со со S Со

Cursor -404,860ns Baseline = 315,400ns Cursor-Baseline = 89.460ns

he Ik

¡deke[l:0] ¡dcsri[l:0]

sddqm[7.C] sdaddi[14:0] sddata>[63fi] ;ddalao[b3 0] sst_sd delaysefed leLready lemenlsI5fl]

ШИШИ Baseline - 315,400ns

|320,000ns 1ШМШ1Ш1Ш11Ш11111Ш1 шшгажшшшшшлшш

з п- *(<*' fx*

IIIIIIIIIIII lllllllllll IIIIIIIIIII 1111

IIIIIIIINI lllllllllll lllllllllll lltl

FF Ш" Ж" ШЕ1

осоо

FFFFFFFFFFFFFFFF

ОООСООООООО» |Г)(iичч» J»»»».■►);«««.<

u u u u

00 ) ¡01 X 02 X 03 X 04

S '€

Cursor = 334-,036.25ПЗ Baseline = 333,856.25ns Cursor-Baseline = 180ns

j he Ik ? sddk S sdcsnjl :0] г sdra&n

S

s !щ

S чВя

: sddqm[7:0] ! sddalai[S3:0]

■ sdda"ao[S3:0j iesi_sd

■ elements[i>:0]

600ns Baseline = 333,856.25ns 1

1333,900ns

¡£гт£

2

L

L I

L I

fi i(pp

oo a oo о о о ► OrOFOFOFOFOFO ► )( ODOOOOOOOOOOC

00 0 00 0 0 0 OrOFOFOFOFOFO ► )( ODOOOOOOOOOOC

об

Рис. 9

На рис. 10 показан результат чтения. Из него видно, что на входной шине sddatai появляются ранее записанные данные. Это показывает верное нахождение крайнего значения задержки. Значение с шины elements заносится во внутренний регистр, а сигнал mwork становится активным. Это означает, что теперь задержка будет расти до тех пор, пока прочитанное значение будет не равно записанной ранее константе.

Cursor - 334.036.25ns

Cursor-Baseline = 180ns

Рис. 7

гИ '' I

К> sddk □ tv -'-'I'

CO — П9-.

а . " ■ i '1

liiLM

1334,000ns

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1334.100ns [3.3

1

L l

Ь *rr

OS

1

На рис. 8 показан разбег фаз между тактовым сигналом контроллера и тактовым сигналом SDRAM памяти. Как видно из рис. 8, после того, как блок задержки завершил работу (test_sd активен), сигнал sdclk задержан на 0.78125 наносекунд.

Рис. 8

После драйвер запускает цепочку инициализации и по результатам операций записи-чтения принимает решение, подобрана задержка или нет. Рис. 9 демонстрирует операцию записи константы 0xf0f0f0f0f0f0f0f0 в SDRAM память.

Рис. 10

На рис. 11 продемонстрирован результат неудачного чтения. При этом сигнал mwork становится не активным, а значение с шины elements используется в качестве второго параметра для блока, вычисляющего среднее значение. В качестве первого параметра для этого блока используется значение, ранее занесённое во внутренний регистр.

Рис. 11

В результате устанавливается среднее устойчивое значение задержки, и сигнал del_ready становится активным (рис. 12).

Рис. 12 Заключение

Таким образом, все последующие обращения контроллера к микросхеме SDRAM памяти будут выполняться с использованием установленного тактового сигнала.

Литература

1. URL: http://www.iuma.ulpgc.es/~nunez/clases-microcontrollers/Embedded-Memory-Design-SDRAM-DDR2-3-Tek.pdf, Fundamentals of SDRAM Memory [Электронный ресурс] (дата обращения: 10.06.2018).

2. URL: https://www.xilinx.com/support/documentation /application_notes/xapp851.pdf Moriyama, Rich Chiu, DDR SDRAM Controller Using Virtex-5 FPGA Devices [Электронный ресурс]. (дата обращения 10.06.2018).

3. URL: https://www.xilinx.com/support/documentation /data_sheets/ds202.pdf Virtex-5 FPGA Data Sheet: DC and Switching Characteristics [Электронный ресурс] (дата обращения 10.06.2018).

4. Поляков А.К. Языки VHDL и VERILOG в проектировании цифровой аппаратуры. М.: СОЛОН-Пресс, 2003.

5. Pong P. Chu. Embedded SoPC Design with Nios II Processor and Verilog Examples. John Wiley & Sons Inc., 2012.

Поступила 24.09.2019; принята к публикации 19.10.2019 Информация об авторах

Чернов Дмитрий Николаевич - магистрант, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), e-mail: sewаiper@bk.ru

Смирнов Алексей Сергеевич - ведущий инженер, АО «Научно-исследовательский институт электронной техники», (394026, Россия, г. Воронеж, Старых Большевиков, 5), тел. +7(473)226-29-37

Алперин Евгений Данилович - канд. техн. наук, доцент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), тел. +7(473)243-76-65

ALGORITHM OF GENERATION CLOCK SIGNAL FOR SDRAM MEMORY D.N. Chernov1, A.S. Smirnov2, E.D. Alperin1

'Voronezh State Technical University, Voronezh, Russia 2AO "NII ET", Voronezh, Russia

Abstract: an algorithm for generating a clock signal of SDRAM chips is considered to increase the reliability of read and write operations under the influence of the external environment. The idea of the algorithm is a sequential write and read operations. First, the constant value is written to the memory, and then read from it. If the writing operation was successful, the delay value is stored in the internal register. Next we need to find a value that the algorithm cannot read. The algorithm will try to find this value until a working option is found, or the delay limit elements is over. When the first working delay value is found and stored, the algorithm will continue to perform a write-read cycle, simultaneously increasing the delay value until the read value coincides with the recorded value. Thus, the minimum and maximum delay values will be found, the average delay value is calculated and set as the main one. The description of the algorithm is performed by means of the VHDL language. The FPGA from Xilinx of the Virtex 5 family, model XC5VLX110, is used as a development platform

Key words: clock signal, SDRAM, delay, algorithm, FPGA, Virtex 5

References

1. "Fundamentals of SDRAM memory", available at: www.oreilly.com

2. Moriyama T., Chiu R. "DDR SDRAM controller using Virtex-5 FPGA devices", 2006, available at: https://www.xilinx.com/support/documentation/application_notes/xapp851.pdf

3. "Virtex-5 FPGA data sheet: DC and switching characteristics", available at: https://www.xilinx.com/support/documentation/data_sheets/ds202.pdf

4. Polyakov A.K. "VHDL and Verilog languages in digital devices projecting" ("Yazyki VHDL i Verilog v proektirovanii tsifrovoy apparatury"), Moscow, SOLON-Press, 2003.

5. Pong P.Chu "Embedded SoPC design with Nios II processor and Verilog examples", John Wiley & Sons Inc., 2012

Submitted 24.09.2019; revised 19.10.2019 Information about the authors

Dmitriy N. Chernov, MA, Voronezh State Technical University (14 Moscovskiy prospekt, Voronezh 394026, Russia), e-mail: sewaiper@bk.ru

Aleksey S. Smirnov, Senior Engineer, AO "NIIET" (5 Starykh Bolshevikov str., Voronezh 394026, Russia), tel. +7 (473) 2262937 Evgeniy D. Alperin, Cand. Sc. (Technical), Associate Professor, Voronezh State Technical University (14 Moscovskiy prospekt, Voronezh 394026, Russia), tel. +7(473) 2437665

i Надоели баннеры? Вы всегда можете отключить рекламу.