Общие регистры тетрад

Индекс документа: RG040006   Версия документа:  1.3

Состав регистров

Прямые регистры

Название Разрядность Описание
STATUS 16  Регистр состояния
DATA *  Регистр данных
CMD_ADR 10  Регистр косвенного адреса
CMD_DATA 16,*  Регистр косвенных данных

Адреса и способ доступа к прямым регистрам определяется базовым модулем.
Число разрядов регистра DATA определяется конкретной тетрадой.
Непосредственные регистры, доступ к которым производится через регистр CMD_DATA, могут иметь число разрядов больше 16.

 Командные регистры

Номер Название  Описание

     Общие регистры

0 MODE0  Регистр управления
1 IRQ_MASK  Разрешение прерываний
2 IRQ_INV  Инверсия условия прерывания
3 FMODE  Выбор источника тактовой частоты
4 FDIV  Делитель тактовой частоты
5 STMODE  Регистр синхронизации
6 CNT0  Счётчик начальной задержки
7 CNT1  Счётчик принимаемых слов
8 CNT2  Счётчик пропускаемых слов
   Индивидуальные регистры 
9 MODE1  Регистр управления MODE1
0x0A MODE2  Регистр управления MODE2
0x0B MODE3  Регистр управления MODE3
0x0C SFLAG_PAE  Установка уровня срабатывания флага PAE
0x0D SFLAG_PAF  Установка уровня срабатывания флага PAF
0x0E PRT_MODE  Режим претриггера
0x0F TL_MODE  Режим формирования заголовка
0x10 CHAN1  Выбор канала
0x11 CHAN2  Выбор канала
0x12 FORMAT  Выбор формата данных
0x13 FSRC  Выбор источника тактовой частоты на субмодуле
0x14 FDVR  Выбор коэффициента деления тактовой частоты
0x15 GAIN  Выбор коэффициента усиления
0x16 INP  Управление входами субмодуля
0x17 CONTROL1  Регистр управления субмодулем
0x18
0x1F
-  Резерв

Командные регистры предназначены для управления ресурсами тетрады. Командные регистры доступны для записи и для чтения. При записи в регистр также производится запись в теневое ОЗУ, при чтении данные читаются из ОЗУ. Начальное значение всех регистров 0. После сброса не происходит обнуление теневого ОЗУ. При программном сбросе тетрады требуется записать 0 во все командные регистры тетрады. 
Общие регистры существуют во всех тетрадах. Если функция, которую выполняет регистр, не требуется, то регистр в тетраде не реализуется.
Состав и назначение индивидуальных регистров определяется конкретной тетрадой. В данном документе приводится рекомендуемый состав регистров тетрады.

Константы

Номер Название  Описание
0x100 ID  Идентификатор тетрады 
0x101 ID_MOD  Модификатор тетрады
0x102 VER  Версия тетрады
0x103 TRES  Ресурсы тетрады
0x104 FSIZE  Размер FIFO
0x105 FTYPE  Тип FIFO
0x106 PATH  Подключение тетрады
0x107 ID_NUM  Номер экземпляра тетрады
0x108 PFSIZE  Размер FIFO претриггера
0x109
0x11F
-  Индивидуальные константы тетрад

Константы предназначены для хранения информации о параметрах тетрады. Значения констант хранятся в ПЗУ ПЛИС.

Непосредственные регистры

Номер Название  Описание
0x200 FLAG_CLR  Сброс флагов в регистре STATUS
0x208 ADC_OR  Регистр переполнения АЦП
0x209 PRT_STATUS  Регистр состояния претриггера
0x20A PRT_CNTL  Номер слова в котором произошло событие старта. Младшие разряды.
0x20B PRT_CNTH  Номер слова в котором произошло событие старта. Старшие разряды.
0x20C TL_ADR  Регистр адреса заголовка
0x20D TL_DATA  Регистр данных заголовка

Непосредственные регистры предназначены для реализации дополнительных регистров управления и состояния.


Описание регистров

Регистр STATUS, IRQ_MASK, IRQ_INV

 Бит  Название  Описание
0 CMD_RDY  1 - готовность к выполнению команды
1 RDY  1 - готовность FIFO
2 EF  0 - FIFO пустое
3 PAE  0 - FIFO почти пустое
4 HF  0 - FIFO заполнено наполовину
5 PAF  0 - FIFO почти полное
6 FF  0 - FIFO полное
7 OVR  1 - запись в полное FIFO
8 UND  1 - чтение из пустого FIFO
9 ERR  1 - ошибка доступа к регистрам
10 START  1 - разрешение работы тетрады
11 OR  1 - переполнение в одном из каналов АЦП
12
15
-  Индивидуальные флаги тетрад

Регистр STATUS показывает текущее значение флагов.
Регистр IRQ_MASK показывает  разряды регистра STATUS, по которым будет формироваться прерывание. Значение 1 в разряде регистра IRQ_MASK разрешает формирование прерывания от соответствующего разряда регистра STATUS.
Регистр IRQ_INV определяет инверсию условия прерывания. Значение 0 в разряде регистра IRQ_INV определяет формирование прерывания по значению 1 в разряде регистре STATUS.
Значение 1 в разряде регистра IRQ_INV определяет формирование прерывания по значению 0 в разряде регистра STATUS.

Уровни срабатывания флагов FIFO определяются конкретной тетрадой и прошивкой ПЛИС.
Флаги переполнения и недогрузки FIFO (OVR, UND) сбрасываются при сбросе FIFO. 

Флаг ERR устанавливается в 1 если зафиксирована ошибка доступа к регистрам.
Флаг
START устанавливается в 1 если разрешён сбор данных.
Флаг
  OR  устанавливаются в 1 если зафиксировано переполнение хотя бы в одном из каналов АЦП.

В разряды 12..15, а также при необходимости и в разряды 10,11 могут добавляться индивидуальные биты состояния тетрады. Для сброса флагов рекомендуется использовать регистр FLAG_CLR.

Регистр DATA

Регистр DATA предназначен для организации потока данных. Наиболее часто подключается к FIFO, однако возможны и другие варианты подключения. Число используемых разрядов определяется конкретной тетрадой.

Регистр CMD_ADR

 Бит  Название  Описание
7..0 REG  Номер регистра
9..8 GROUP  Группа регистров:
 00 - командные регистры
 01 - константы
 10 - непосредственные регистры
 11 - резерв

Регистр CMD_ADR определяет номер косвенного регистра, к которому будет производится обращения через регистр CMD_DATA.

Регистр CMD_DATA

 Бит  Название  Описание
15..0 CMD_DATA  Данные косвенного регистра

Через регистр CMD_DATA производится обращение к косвенным регистрам.

Регистр MODE0

 Бит  Название  Описание
0 RST  Тетрада MAIN:  1 -  сброс ПЛИС
 Остальные тетрады: 1 - сброс тетрады
1 FIFO_RST  1 - сброс FIFO
2 IRQ_EN  1 - разрешение формирования прерываний от тетрады
3 DRQ_EN  1 - разрешение формирования запроса DMA от тетрады
4 MASTER  Тетрада MAIN:
   1 - работа модуля в режиме MASTER
   0 - работа модуля в режиме SLAVE
 Остальные тетрады:
   1 - работа тетрады в режиме SINGLE
   0 - работа тетрады в режиме SLAVE
5 START   1 - программный старт
6 ADM_MSYNC   Выбор источника тактовой частоты:
   1 - источник на субмодуле
   0 - источник выбирается FMODE[GEN]
7 RT  1 - включить циклический режим работы FIFO
8 CNT0_EN  1 - разрешение работы счётчика CNT0
9 CNT1_EN  1 - разрешение работы счётчика CNT1
10 CNT2_EN  1 - разрешение работы счётчика CNT2
11 -  Резерв
13..12 DRQ_FLAG  Выбор источника запроса DMA:
  00 - PAE=1 для FIFO ввода, PAF=1 для FIFO вывода
  01 - RDY=1 
  10 - HF=0 для FIFO ввода, HF=1 для FIFO вывода
  11 - резерв
14 -  Резерв
15 EXTFIFO_EN  1 - переключение тетрады в режим работы с внешним FIFO. Если такой поддержки тетрада не имеет, то содержимое поля не имеет значения.

Регистр MODE0 предназначен для реализации общего управления тетрадой.

Бит RST=1 приводит с сбросу всех регистров тетрады. Командные регистры устанавливаются в 0. При сбросе, после формирования RST=1, необходимо во все командные регистры прописать значение 0. Это необходимо для приведения в исходное состояние теневого ОЗУ.

Бит RT=1 включает циклический режим работы FIFO. Этот режим поддерживается для тетрад вывода данных. Бит RT=1 должен быть установлен после записи всего массива данных в FIFO и перед разрешением вывода данных.

 

Регистр STMODE

 Бит  Название  Описание
4..0 MSTART  Выбор сигнала старта
5 -  Резерв
6 START_INV  1 - инверсия сигнала старта
7 TRIGSTART  1 - триггерный старт
12..8 MSTOP  Выбор сигнала останова при триггерном старте
13 -  Резерв
14 STOP_INV  1 - инверсия сигнала останова
15  START_AUTO  1 - режим сбора с автоматическими перезапуском

Поля MSTART, MSTOP выбирают источник старта и останова из сетки сигналов старта, которая определяется ПЛИС. Описание сетки сигналов приводится в описании конкретной прошивки ПЛИС.

Режим сбора с автоматическим перезапуском функционирует следующим образом: в режиме триггерного старта по событию происходит запуск сбора данных. Блок данных собирается либо в режиме претриггера, либо без, в количестве данных, заданном в регистре CNT1. По завершении сбора блока автоматически, без участия программы, происходит переход в режим ожидания следующего события старта.  В режиме претриггера значение CNT1 должно быть задано не меньше заданного размера претриггера

Регистр FMODE

 Бит  Название  Описание
4..0 GEN  Выбор источника тактовой частоты
14..5 -  Резерв
15 START_RST  1 - сброс счётчика делителя тактовой частоты

Поле GEN выбирает источник тактовой частоты из сетки частот, которая определяется ПЛИС. Описание сетки частот приводится в описании конкретной прошивки ПЛИС. Выбор источника через регистр FMODE производится для тетрады, которая установлена в режим MASTER или SINGLE и MODE0[ADM_MSYNC]=0.
При установке START_RST=1, при возникновении условия старта производится сброс счётчика делителя тактовой частота. Это позволяет привязать фазу тактового сигнала к событию старта. Приостановка сбора данных по счётчикам CNT0, CNT2 не сбрасывает счётчик делителя тактовой частоты.
Для отдельных тетрад назначение разрядов и выбор источника может изменяться.

Регистр FDIV

 Бит  Название  Описание
15..0 CMD_DATA  Данные косвенного регистра

Регистр FDIV определяет коэффициент деления тактовой частоты. Минимальный коэффициент деления 1. Максимальный 0.

Регистр CNT0

 Бит  Название  Описание
15..0 CNT0  Счётчик начальной задержки

Регистр счётчика начальной задержки. При разрешении MODE0[CNT0_EN]=1, разрешение работы будет задержано на значение CNT0. Если работа счётчика запрещена, то разрешение работы будет сразу после возникновения условия старта.

Регистр CNT1

 Бит  Название  Описание
15..0 CNT1  Счётчик принимаемых данных.

Регистр счётчика принимаемых данных. При разрешении MODE0[CNT1_EN]=1, разрешение работы будет выдано только на число тактов CNT1. Если разрешена работа счётчика CNT2, то разрешение работы будет заблокировано на число тактов CNT2 и далее цикл разрешения и запрета будет повторяться. Если работа счётчика запрещена, то будет произведён только один цикл разрешения работы. 
Если работа счётчика CNT1 запрещена, то разрешение работы будет сразу после возникновения условия страта и разрешения по счётчику CNT0.

Регистр CNT2

 Бит  Название  Описание
15..0 CNT2  Счётчик пропускаемых данных

 Счётчик определяет число тактов, на которое снимается сигнал разрешение работы.

Регистр ID

 Бит  Название  Описание
15..0 ID  Идентификатор тетрады

Регистр определяет уникальный идентификатор тетрады.

Регистр ID_MODE

 Бит  Название  Описание
15..0 ID_MODE  Модификатор тетрады

Регистр определяет модификатор исполнения тетрады. Тетрада может быть разработана в различных исполнениях, например с различной шириной и размером FIFO. С использованием или без использования счётчиков CNT0..CNT2 и т.д. Одновременно могут использоваться несколько тетрад с различным модификатором.

Регистр VER

 Бит  Название  Описание
7..0 V0  Поле V0
15..8 V1  Поле V1

Регистр определяет версию тетрады. Поле V0 изменяется при незначительных изменениях алгоритма работы, исправлении ошибок. Поле V1 изменяется при изменении состава регистров или существенных изменениях алгоритма работы.

Регистр TRES

 Бит  Название  Описание
3..0 -  Резерв
4 FIFO_IN  1 - тетрада имеет FIFO для чтения данных процессором
5 FIFO_OUT  1 - тетрада имеет FIFO для вывода данных из процессора
6 SFLAG_E  1 - тетрада может устанавливать уровень срабатывания флага PAE FIFO тетрады
7 SFLAG_F  1 - тетрада может устанавливать уровень срабатывания флага PAF FIFO тетрады
8 PRETRIG  1 - тетрада поддерживает работу в режиме претриггера
9 EXTFIFO  1 - тетрада поддерживает внешнее FIFO
15..10 -  Резерв

Регистр определяет ресурсы тетрады.

Регистр FSIZE

 Бит  Название  Описание
15..0 SIZE  Размер FIFO

Регистр определяет число слов в FIFO. Если значение регистра 0,  а в регистре TRES указано наличие FIFO, то размер FIFO должен определятся по другим источникам.

Регистр PFSIZE

 Бит  Название  Описание
15..0 SIZE  Размер FIFO

Регистр определяет число слов в FIFO претриггера. Если значение регистра 0,  то претриггер реализован на базе основного FIFO тетрады.

Регистр FTYPE

 Бит  Название  Описание
7..0 SIZE  Число разрядов шины данных FIFO, подключённых к локальной шине

Регистр определяет ширину  FIFO со стороны локальной шины.

Регистр PATH

 Бит  Название  Описание
7..0 IN  Подключение входа данных тетрады
15..8 OUT  Подключение выхода данных тетрады

Регистр определяет подключение FIFO тетрады.

Коды полей IN, OUT регистра PATH

Значение Название  Описание
0 -  Не подключено
1 LB  Локальная шина
2 ADM  Разъём ADM
3 DAC0  ЦАП0
4 DAC1  ЦАП1
5 DAC01  ЦАП0 и ЦАП1
6 PIOX  Разъём PIOX
7 -  Резерв
23..8 TRDx  Тетрада x, x - 7..0

Регистр ID_NUM

 Бит  Название  Описание
15..0 CNT  Номер экземпляра тетрады

Регистр определяет номер экземпляра тетрада. Если в прошивке ПЛИС находятся две тетрады с одним ID, то у них будут разные значения ID_NUM. У первой тетрады значение 1, у второй тетрады значение 2.

 

Индивидуальные регистры

В данном разделе приведены сведения о предполагаемом назначении регистров тетрады. Точное назначение регистров приводится в описании конкретной тетрады или в описании конкретной прошивки ПЛИС.

MODE1 Модификация потока данных. Используется для переключения выхода или входа потока данных. Назначение регистра может быть разным для одной тетрады, реализованной на разных базовых модулях. Если регистр используется, то его описание приводится в описании конкретной прошивки ПЛИС.
В некоторых тетрадах в этом регистре реализован выбор каналов и управление субмодулем.
MODE2, MODE3 Дополнительные регистры управления. Рекомендуется использовать для управления ресурсами базового модуля.
SFLAG_PAE Установка уровня срабатывания флага почти пустого FIFO. Реализуется для некоторых тетрад.
SFLAG_PAF Установка уровня срабатывания флага почти полного FIFO. Реализуется для некоторых тетрад.
PRT_MODE Регистр управления режимом претриггера.
TL_MODE Регистр управляет записью заголовка в блок данных.
CHANL Выбор канала данных. Выбираются каналы 0-15.
CHANH Выбор канала данных. Выбираются каналы 16-31. Для субмодулей с числом каналов до 16 регистр не реализуется.
FORMAT Выбор формата данных.
В этом регистре производится включение восьми разрядной упаковки данных. Возможно применение других форматов, например преобразование в формат с плавающей точкой.
FSRC Выбор источника тактовой частоты на субмодуле.
Этот регистр используется для тех субмодулей, которые имеют схему формирования тактовой частоты.
FDVR Выбор коэффициента деления тактовой частоты на субмодуле.
Этот регистр используется для тех субмодулей, которые имеют схему формирования тактовой частоты.
GAIN Выбор коэффициента передачи.
Значение 0 в регистре выбирает наименьший коэффициент передачи (максимальный входной сигнал)
INP Выбор режима входа.
В этом регистре находятся управления закрытым и открытым входом АЦП, выбор входного сопротивления входа и т.д.
CONTROL1 Дополнительный регистр управления субмодулем.
В этом регистре находятся дополнительные биты управления, которые не попадают в стандартные регистры.
Например в этом регистре могут находится биты включения удвоения тактовой частоты, переключения входов АЦП и т.д.
FLAG_CLR Сброс флагов регистра STATUS.
Этот регистр используется для сброса индивидуальных флагов в регистре
STATUS.
Запись в регистр сбрасывает флаги в регистре
STATUS.
ADC_OR Регистр переполнения АЦП.
Чтение регистра возвращает маску каналов, в которых произошло переполнение.
Запись в регистр сбрасывает соответствующие биты переполнения.
PRT_STATUS Регистр состояния претриггера. Указывает номер отсчёта в слове при котором произошло событие старта.
PRT_CNTL Номер слова в считанном массиве при котором произошло событие старта. Младшие разряды.
PRT_CNTH Номер слова в считанном массиве при котором произошло событие старта. Старшие разряды.
TL_ADR Регистр адреса заголовка.
TL_DATA Регистр данных заголовка.

 


ЗАО "Инструментальные Системы"