Макрофункция yadropci20
Макрофункция yadropci20 предназначена для осуществления сопряжения разрабатываемых на ПЛИС фирмы Altera схем с магистралью PCI. Макрофункция выступает в качестве ведущего магистрали и позволяет выполнять запись и чтение в пространства ввода/вывода и памяти, при этом, занимая около 7000 эквивалентных вентилей (помещается даже в EPF10K10LC84 и 30% места еще остается), и, имея наипростейший интерфейс со стороны локальной магистрали.
Условное графическое отображение:
Сигналы PCI |
Сигналы локальной магистрали |
Назначение
сигналов
Сигналы PCI – подаются на разъем магистрали PCI.
Сигналы локальной магистрали:
DV[15..0] – входы, определяющие идентификатор устройства «Device ID» пространства конфигурации ядра PCI. Рекомендуется на линиях DV[15..0] удерживать постоянное значение во время работы макрофункции.
Cm[15..0] – выходы регистра команд «Command» пространства конфигурации. Используются по усмотрению разработчика.
St[15..0] – входы регистра состояния и свойств «Status» пространства конфигурации. Используются по усмотрению разработчика.
Ba[31..0] – выходы базового адресного регистра 0 «Base Addres Register 0» пространства конфигурации. Используются по усмотрению разработчика.
Cd[31..0] – выходы резервного регистра с адресом 38h пространства конфигурации. Используются по усмотрению разработчика.
Ss[31..0] – входы резервного регистра с адресом 38h пространства конфигурации. Используются по усмотрению разработчика.
AS[31..2] – определяет адрес двойного слова, над которым требуется произвести операцию чтения или записи.
Din[31..0] – результат выполнения операции чтения по адресу AS[31..2].
Dout[31..0] – данные, которые необходимо записать по адресу AS[31..2].
BE[3..0] – сигналы выбора байтов внутри двойного слова, над которыми необходимо произвести операции чтения или записи. Байт выбирается нулем в соответствующем разряде BE[3..0], при этом нулевой бит BE[3..0] определяет первый байт двойного слова.
Com[1..0]
– сигналы выбора команды:
Com 1 |
Com 0 |
Команда |
0 |
0 |
Чтение пространства ввода/вывода |
0 |
1 |
Запись в пространство ввода/вывода |
1 |
0 |
Чтение пространства памяти |
1 |
1 |
Запись в пространство памяти |
GO – сигнал на исполнение команды чтения или записи. Может быть выдан только при наличии логической единицы на линии YES или ERR.
YES – сигнал готовности макрофункции исполнить команду чтения/записи. После выдачи сигнала исполнения команды GO, линия YES переходит в состояние логического нуля и устанавливается в логическую единицу только после удачного исполнения требуемой операции.
ERR – сигнал ошибки исполнения команды. Устанавливается в логическую единицу в случае невозможности выполнения команды (например, обращение по несуществующему в системе адресу) и сбрасывается в нуль после выдачи следующего сигнала GO.
Диаграмма функционирования макрофункции yadropci20 со стороны локальной магистрали:
Штриховкой показаны
действительные данные. Операция записи/чтения в/из пространств ввода/вывода или памяти ЦПУ успешно выполнена
в такте отмеченном “*”.
Со стороны магистрали
PCI макрофункция yadropci20 функционирует в соответствии со спецификацией PCI 2.0 на частоте синхронизации 33МГц. При этом
макрофункция yadropci20
записывает/считывает двойное слово в/из ресурса ЭВМ
примерно на 20% быстрее, чем аналогичные средства предоставляемые фирмой Altera.
Пространство
конфигурации макрофункции yadropci20.
31 |
|
24 |
23 |
|
16 |
15 |
|
8 |
7 |
|
0 |
|
||||||||||||||||||||||||||
Device
ID (R) |
Vendor
ID (R) |
00h |
||||||||||||||||||||||||||||||||||||
DV15 |
DV14 |
DV13 |
DV12 |
DV11 |
DV10 |
DV9 |
DV8 |
DV7 |
DV6 |
DV5 |
DV4 |
DV3 |
DV2 |
DV1 |
DV0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
|||||||
Status
(R) |
Command
(RW) |
04h |
||||||||||||||||||||||||||||||||||||
St15 |
St14 |
St13 |
St12 |
St11 |
St10 |
St9 |
St8 |
St7 |
St6 |
St5 |
St4 |
St3 |
St2 |
St1 |
St0 |
W Cm15 |
W Cm14 |
W Cm13 |
W Cm12 |
W Cm11 |
W Cm10 |
W Cm9 |
W Cm8 |
W Cm7 |
W Cm6 |
W Cm5 |
W Cm4 |
W Cm3 |
W Cm2 |
W Cm1 |
W Cm0 |
|||||||
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
|||||||||||||||||||||||
Class
Code (R) |
Revision
ID (R) |
08h |
||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|||||||
BIST
(R) |
Header
Type (R) |
Latency
Timer (R) |
Case
Line Size (R) |
0Ch |
||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Base
Address Register 0 (RW) |
10h |
|||||||||||||||||||||||||||||||||||||
W Ba31 |
W Ba30 |
W Ba29 |
W Ba28 |
W Ba27 |
W Ba26 |
W Ba25 |
W Ba24 |
W Ba23 |
W Ba22 |
W Ba21 |
W Ba20 |
W Ba19 |
W Ba18 |
W Ba17 |
W Ba16 |
W Ba15 |
W Ba14 |
W Ba13 |
W Ba12 |
W Ba11 |
W Ba10 |
W Ba9 |
W Ba8 |
W Ba7 |
W Ba6 |
W Ba5 |
W Ba4 |
W Ba3 |
W Ba2 |
- |
- |
|||||||
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
R 0 |
|||||||
Base
Address Register 1 (R) |
14h |
|||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Base
Address Register 2 (R) |
18h |
|||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Base
Address Register 3 (R) |
1Ch |
|||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Base
Address Register 4 (R) |
20h |
|||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Base
Address Register 5 (R) |
24h |
|||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Card
Bus CIS Pointer (R) |
28h |
|||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Subsystem
ID (R) |
Subsystem
Vendor ID (R) |
2Ch |
||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Expansion
ROM Base Address (R) |
30h |
|||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Резерв (R) |
Capabilities
Pointer (R) |
34h |
||||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|||||||
Резерв (RW) |
38h |
|||||||||||||||||||||||||||||||||||||
W Cd31 |
W Cd30 |
W Cd29 |
W Cd28 |
W Cd27 |
W Cd26 |
W Cd25 |
W Cd24 |
W Cd23 |
W Cd22 |
W Cd21 |
W Cd20 |
W Cd19 |
W Cd18 |
W Cd17 |
W Cd16 |
W Cd15 |
W Cd14 |
W Cd13 |
W Cd12 |
W Cd11 |
W Cd10 |
W Cd9 |
W Cd8 |
W Cd7 |
W Cd6 |
W Cd5 |
W Cd4 |
W Cd3 |
W Cd2 |
W Cd1 |
W Cd0 |
|||||||
R Ss31 |
R Ss30 |
R Ss29 |
R Ss28 |
R Ss27 |
R Ss26 |
R Ss25 |
R Ss24 |
R Ss23 |
R Ss22 |
R Ss21 |
R Ss20 |
R Ss19 |
R Ss18 |
R Ss17 |
R Ss16 |
R Ss15 |
R Ss14 |
R Ss13 |
R Ss12 |
R Ss11 |
R Ss10 |
R Ss9 |
R Ss8 |
R Ss7 |
R Ss6 |
R Ss5 |
R Ss4 |
R Ss3 |
R Ss2 |
R Ss1 |
R Ss0 |
|||||||
Max_Latt (R) |
Min_GNT (R) |
Interrupt
Pin (R) |
Interrupt
Line (RW) |
3Ch |
||||||||||||||||||||||||||||||||||
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
RW |
RW |
RW |
RW |
|||||||
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
||||||