# Тетрада MAIN

Версия документа: 1.4

## Общие сведения

Назначение | Начальное тестирование ПЛИС. Распределение запросов DMA и прерываний. Управление ИПН (источник программируемых напряжений), мультиплексором компараторов. Управление разъёмом SYNX.
Модификация | 8 - Ширина шины данных - 64 разряда. Не используются счётчики CNT0, CNT1, CNT2. Есть регистр SYNX_IN.
Версия | 1.4
ID | 1

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

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

Название | Разрядность | Описание
STATUS | 16 | Регистр состояния
DATA | 64 | Регистр данных
CMD_ADR | 10 | Регистр косвенного адреса
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 | Регистр управления
10 | - | Не используются
11 | - | Не используются
12 | TEST_MODE | Управление режимом тестирования
13 | SYNX | Регистр управления разъёмом SYNX
14 | THDAC | Регистр управления ИПН
15 | MUX | Регистр управления мультиплексором компараторов
23..16 | SELx | Распределение запросов DMA и прерываний. x - номер регистра 0..7

### Константы

Номер | Название | Значение | Описание
0x100 | ID | 1 | Идентификатор тетрады
0x101 | ID_MOD | 1 | Модификатор тетрады
0x102 | VER | 0x0103 | Версия тетрады
0x103 | TRES | 0x10 | Ресурсы тетрады
0x104 | FSIZE | 0x100 | Размер FIFO
0x105 | FTYPE | 0x40 | Тип FIFO
0x106 | PATH | * | Подключение тетрады
0x107 | ID_NUM | * | Номер экземпляра
Индивидуальные регистры
0x108 | SIG | 0x4953 | Сигнатура
0x109 | ADM_VER | 0x0200 | Версия интерфейса ADM
0x10A | FPGA_VER | * | Версия прошивки ПЛИС
0x10B | FPGA_MODE | * | Модификатор прошивки ПЛИС
0x10C | TMASK | * | Используемые тетрады
0x10D | MRES | * | Ресурсы ПЛИС
0x10E 0x10F | - | - | Резерв
0x110 | BASE_ID | * | Идентификатор базового модуля
0x111 | BASE_VER | * | Версия базового модуля
0x112 | SMOD_ID | * | Идентификатор субмодуля
0x113 | SMOD_VER | * | Версия субмодуля
0x114 | FPGA_BUILD | * | Номер сборки прошивки ПЛИС
0x115 0x11F | - |  | Резерв

* - Значения определяются в конкретной прошивке ПЛИС.

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

Номер | Название | Описание
0x200 | IRQENST | Регистр установки разрешения прерывания
0x201 | IRQENCL | Регистр сброса разрешения прерывания
0x202 | SYNX_IN | Регистр состояния разъёма SYNX

## Описание

Тетрада MAIN предназначена для управления общими ресурсами ПЛИС ADM и начального тестирования ПЛИС.

### Начальное тестирование ПЛИС

После загрузки прошивки или после сброса ПЛИС находится в тестовом режиме работы. В этом режиме чтение по любому адресу приводит к чтению регистра DATA. Тетрада содержит сдвиговый регистр, при чтении регистра DATA выводится текущее значение сдвигового регистра, регистр сдвигается на один разряд влево и в младший разряд помещается инверсное значение старшего разряда.
Получаемые значения:
0000....0001
0000....0011
0000....0111
0000....1111
............
0111....1111
1111....1111
1111....1110
1111....1100
По чтению регистра можно проверить подключение шины данных к процессору.
При записи по любому адресу в ПЛИС происходит запись младших разрядов шины адреса в сдвиговый регистр. Число записываемых разрядов адреса определяется базовым модулем, в остальные разряды сдвигового регистра записывается содержимое шины данных. При последующем чтении сдвигового возвращается значение шины адреса. В цикле производится запись по всем адресам и контроль каждого адреса, при этом проверяем подключение шины адреса.
Для переключения в рабочий режим требуется записать 1 в разряде 0 слова данных по любому адресу.
Для переключения в тестовый режим требуется записать 1 в разряде регистра DATA. При переключении между режимами сдвиговый регистр устанавливается в 0.
После переключения в рабочий режим проверяется формирование прерываний и чтение из регистра DATA в режиме DMA. Проверка производится для каждого канала DMA.

Если в рабочем режиме провести сброс FIFO, то это приведёт к обнулению сдвигового регистра, при этом ПЛИС останется в рабочем режиме.

### Распределение прерываний и каналов DMA

Для распределения прерываний и каналов DMA предназначены регистры SEL0..SEL7.
Существует различие в назначении регистров при распределении прерываний и запросов DMA.
Прерывания:
Номер регистра определяет номер тетрады. Значение регистра определяет номер прерывания.
DMA:
Номер регистра определяет номер канала DMA. Значение регистра определяет номер тетрады.
Используемые прерывания, каналы DMA, режимы работы каналов DMA определяются базовым модулем. Конкретное назначение разрядов регистров SEL0..SEL7 приводится в описании конкретной прошивки ПЛИС.

### Управление ресурсами

Регистр SYNX управляет разъёмом межмодульной синхронизации SYNX. Через этот регистр можно установить значение сигналов RDY0, RDY1, START_EN. В тестовом режиме возможно также управление сигналами SYNC0 и ENCODE;

Регистр MUX управляет мультиплексором стартовых компараторов. Значение мультиплексора определяет источник входного сигнала на компараторах.

Регистр THDAC управляет источником программируемых напряжений, который используется для установки порогов срабатывания компараторов и для формирования опорных уровней сигналов для субмодуля ADM. Запись в регистр возможно только при значении разряда CMD_RDY=1 в регистре STATUS.

## Описание регистров тетрады MAIN

Описание общих регистров управления приводится в документе RG040006 reg_common.htm

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

Бит | Название | Описание
0 | CMD_RDY | 1 - готовность к выполнению команды
1 | RDY | Всегда 1
2 | EF | Всегда 1
3 | PAE | Всегда 1
4 | HF | Всегда 0
5 | PAF | Всегда 1
6 | FF | Всегда 1
7 | OVR | Всегда 0
8 | UND | Всегда 0
Разъём SYNX
9 | SN_RDY0 | Значение сигнала RDY0
10 | SN_RDY1 | Значение сигнала RDY1
11 | START | Значение сигнала START
12 | START_EN | Значение сигнала START_EN
13 | SYNC0 | Значение сигнала SYNC0
Компараторы
14 | CMP0 | Значение выхода компаратора 0
15 | CMP1 | Значение выхода компаратора 1

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

### Регистр DATA

Разряды доступные для чтения

Бит | Название | Описание
63..0 | SREG | Данные из сдвигового регистра

Разряды доступные для записи

Бит | Название | Описание
0 | TMODE_CLR | 1 - установка рабочего режима
1 | TMODE_SET | 1 - установка тестового режима
(a-1)..0 | - | Не используются
63..a | SREG | Данные для записи в сдвиговый регистр

a - число используемых линий адреса в конкретной прошивке ПЛИС.
При записи в сдвиговый регистр в разряды (a-1)..0 будет записан адрес, по которому производится обращение. При установленном тестовом режиме, запись по любому адресу приводит к записи в регистр DATA.

### Регистр MODE1

Регистр MODE1 предназначен для управления некоторыми общими ресурсами ПЛИС. Значение разрядов этого регистра определяется конкретной прошивкой ПЛИС.

### Регистр TEST_MODE

Регистр управления разъёмом SYNX

Бит | Название | Описание
0 | PSD | 1 - генерация псевдослучайной последовательности
15..1 | - | Не используются

Бит PSD включает режим формирования псевдослучайной последовательности. При каждом чтении в младший бит регистра вводится значение X[63] xor x[62] xor x[60] xor x[59]. После включения режима необходимо выполнить сброс FIFO тетрады. Начальное значение регистра после сброса 0x0002;

### Регистр SYNX

Регистр управления разъёмом SYNX

Бит | Название | Описание
0 | RDY0 | 1 - готовность 0
1 | RDY1 | 1 - готовность 1
3..2 | - | Не используются
4 | RDY0_OE | 0 - разрешение выхода RDY0
5 | RDY1_OE | 0 - разрешение выхода RDY1
11..6 | - | Не используются
12 | START_EN | 0 - разрешение сбора данных
13 | SYNC0 | Значение выхода SYNC0
14 | ENCODE | Значение выхода ENCODE (только при установке SYNX_TEST_MODE=1)
15 | SYNX_TEST_MODE | 1 - тестовый режим работы разъёма SYNX

Сигналы RDY0, RDY1 объединяются с соответствующими сигналами на других модулях по схеме "открытый коллектор". Значение 0 выставленное хотя бы на одном модуле, устанавливает значение 0. После загрузки ПЛИС или после сброса значение регистра 0. При этом сигналы RDY0 и RDY1 на разъёме SYNX установлены в значение 0. Это означает что модуль находится в состоянии "НЕ ГОТОВ".
Сигналы START_EN, SYNC0 формируется только если модуль находится в режиме "MASTER". Установка режима производится в разряде MASTER регистра MODE0.

Установка SYNX_TEST_MODE=1 переводит схему управления разъёмом SYNX в тестовый режим. В этом режиме сигналоми ENCODE и SYNC0 управляют соответствующие биты в регистре SYNX. При установке SYNX_TEST_MODE=0 сигнал ENCODE формирует узел тактирования и синхронизации тетрады, а сигнал SYNC0 управляется либо через регистр SYNX, либо внешней схемой. Это зависит от конкретной прошивки ПЛИС.

### Регистр THDAC

Регистр управления источником программируемых напряжений.

Бит | Название | Описание
7..0 | DATA | Данные для ИПН
11..8 | DACADR | Номер ИПН (1..8)
15..8 | - | Не используются

Запись в регистр возможна только если установлен бит готовности: STATUS[CMD_RDY]=1.
Уровень напряжения, который будет установлен на выходе ИПН, определяется по формуле:

> U=2.5X(DATA/128-1) [В]

### Регистр MUX

Регистр управления мультиплексором компараторов.

Бит | Название | Описание
1..0 | COMPAR | Режим мультиплексора: 00 - (EXTST_EXTCLK) 01 - (CH0_EXTCLK) 10 - (CH1_EXTCLK) 11 - (CH0_CH0)
15..2 | - | Не используются

Регистр определяет источники сигналов, которые будут поданы на компараторы.
Обозначения сигналов:

> EXTST - Сигнал внешнего старта. Подаётся через субмодуль ADM.
> EXTCLK - Сигнал внешней тактовой частоты. Подаётся через разъём SDX.
> CH0 - Сигнал канала 0 АЦП. Подаётся через субмодуль ADM.
> CH1 - Сигнал канала 1 АЦП. Подаётся через субмодуль ADM.

Формирование сигналов EXTST, CH0, CH1 определяет субмодуль ADM.

### Регистры SELx

Регистры выбора прерывания и канала DMA. x - номер регистра 0..7

Бит | Название | Описание
3..0 | IRQ_NUM | Номер прерывания для тетрады x
7..4 | - | Не используются
11..8 | DRQ_TRD | Номер тетрады для канала DMA x
12 | DRQ_EN | 1 - разрешение формирования запроса DMA
15..13 | DRQ_MODE | Режим работы канала DMA

Используемые прерывания, каналы DMA, режимы работы каналов DMA определяются базовым модулем. Конкретное назначение разрядов регистров SEL0..SEL7 приводится в описании конкретной прошивки ПЛИС.

### Регистр IRQENST

Регистр установки разрешения прерывания.

Бит | Название | Описание
0 | - | Резерв
1 | IRQ1 | 1 - разрешение IRQ1
2 | IRQ2 | 1 - разрешение IRQ2
3 | IRQ3 | 1 - разрешение IRQ3
15..4 | - | Не используется

Запись 1 в регистр приводит к разрешению формирования соответствующего прерывания. Запись 0 не приводит к изменению состояния разрешения прерывания. Чтение из регистра возвращает состояние разрешения соответствующих линий прерывания.

### Регистр IRQENCL

Регистр сброса разрешения прерывания.

Бит | Название | Описание
0 | - | Резерв
1 | IRQ1 | 1 - разрешение IRQ1
2 | IRQ2 | 1 - разрешение IRQ2
3 | IRQ3 | 1 - разрешение IRQ3
15..4 | - | Не используется

Запись 1 в регистр приводит к сбросу разрешения соответствующего прерывания. Запись 0 не приводит к изменению состояния разрешения прерывания.

### Регистр SYNX_IN

Бит | Название | Описание
8..0 | - | Всегда 0
9 | SN_RDY0 | Значение сигнала RDY0
10 | SN_RDY1 | Значение сигнала RDY1
11 | START | Значение сигнала START
12 | START_EN | Значение сигнала START_EN
13 | SYNC0 | Значение сигнала SYNC0
14 | ENCODE | Значение сигнала ENCODE
15 | SYNX_TEST_MODE | Значение бита SYNX_TEST_MODE в регистре SYNX

Регистр SYNX_IN показывает текущее состояние разъёма SYNX. В отличие от регистра STATUS в регистр SYNX добавлен сигнал ENCODE.

### Соответствие полям регистра SYNX возможных обозначений выводов разъема SYNX

Регистр SYNX | Возможные обозначения разъема SYNX
RDY0 | RDY1 / SYNX0
RDY1 | RDY2 / SYNX1
START_EN | SYNC1

### Список версий тетрады

1.0 | 31.08.2005 | Базовая версия
1.1 | 09.11.2005 | добавлена таблица соответствия полям регистра SYNX возможных обозначений выводов разъема SYNX
1.2 | 06.12.2006 | Исправлено формирование сигнала запроса DMA. Сброс сдвигового регистра производиться по сбросу FIFO
1.3 | 26.03.2009 | Добавлен выход запроса DMA
1.4 | 10.06.2010 | Добавлены входы IRQ, DRQ для тетрад 8-15; Добавлен регистр TEST_MODE - формирование псевдослучайной последовательности.