Шина – набор проводников. Как правило, в шину объединяют проводники, передающие сходные по назначению сигналы. Например, по шинам передаются в параллельном коде машинные слова: так в архитектуре вычислительных систем выделяют шину данных, шину команд, шину адреса, и т.п.
Общая шина – шина, сигналы на которую могут выдавать несколько устройств. Общая шина характеризуется тем, что к ней подключено несколько источников сигналов (драйверов) и для обеспечения правильного функционирования, а часто и физической целости системы, необходимо, чтобы в каждый момент времени на шину работал только один источник сигнала (источники сигналов используют шину в режиме разделения времени), а остальные источники находились в неактивном состоянии. Это достигается использованием специальных логических элементов с тремя состояниями (tri‑state outputs) и соответствующим управлением. К состояниям выхода «0» и «1» добавляется состояние «Z», в котором выход элемента отключен и от «0» и от «1», то есть в котором устройство не влияет на состояние сигналов общей шины. Буфер с тремя состояниями часто называют шинным формирователем.
Подключенные к общей шине устройства совместно или с помощью специального устройства – арбитра определяют очередность доступа к общей шине. Если два устройства будут выдавать на шину свои сигналы одновременно, может возникнуть конфликт. Так, если одно устройство выдает на шину «1», а другое – «0», то по шине потечет ток короткого замыкания, от «1» к «0», который может разрушить проводники шины или выходные усилители одного из конфликтующих устройств.
Поскольку устройства реагируют на сигналы, предоставляющие доступ к шине, не мгновенно, а с некоторой задержкой (обусловленной временными характеристиками и разводкой СБИС ПЛ и печатного основания), то в предоставлении устройствам доступа к шине всегда предусматривают паузы так, чтобы предыдущее устройство успело отключиться от шины, а следующее подключилось лишь после этого.
Другой распространенный вариант подключения нескольких источников сигналов к шине – использование мультиплексоров. В этом случае обеспечивается логическая коммутация сигналов. Мультиплексирование обеспечивает физическую целость устройства даже при неправильном управлении.
В логическом массиве СБИС ПЛ фирмы Altera отсутствуют внутренние шины с тремя состояниями (трехстабильные) и компилятор автоматически заменяет общую шину с трехстабильными элементами на шину с мультиплексированием сигналов. Трехстабильные буферы ввода/вывода СБИС ПЛ позволяют физически подключаться к внешним общим шинам. САПР Quartus II при логическом синтезе не позволяет избежать конфликтов на выводах СБИС ПЛ, поскольку не имеет информации об управлении внешними устройствами, которые подключены к выводам. Однако, при моделировании, задавая состояние внешних устройств на шине, можно выявить конфликты на выводах СБИС ПЛ.
В САПР Quartus II выходной буфер с тремя состояниями описывается элементом TRI (см. рис. 1). Он также автоматически порождается синтезатором из VHDL-кода, при присвоении сигналу типа std_logic значения ‘Z’.
Рис. 1
Чтобы устройство могло не только выдавать сигналы на общую шину, но и принимать сигналы с нее, оно должно быть подключено к шине двунаправленными выводами BIDIR, пример использования которых приведен на рис. 2.
Рис. 2
При подаче сигнала ОЕ = 1 буфер TRI открыт и сигналы с выхода OUT блока device проходят на вывод BIDIR, который в этом случае является выходом устройства. Если сигнал ОЕ низкого уровня, то буфер TRI находится в выключенном состоянии и сигналы от внешних устройств через вывод BIDIR, который в этом случае является входом устройства, поступают на вход IN блока device.
В средствах моделирования, входящих в САПР Quartus II, для того чтобы описать поведение сигналов на двунаправленных выводах, используются два сигнала (две временные диаграммы): одна для задания того, как воздействуют на вывод внешние устройства, вторая – результат на шине с учетом сигналов, сформированных в СБИС ПЛ. Следует помнить, что для того, чтобы исключить конфликты на общей шине при выводе из СБИС ПЛ на двунаправленный вывод (на вход ОЕ трехстабильного буфера подан сигнал высокого уровня), внешние источники сигналов должны быть отключены (установлены в Z-состояние) или подавать «слабый сигнал», тогда состояние на выходе установится в соответствии с табл.1.
Таблица 1.
№ |
Источники сигналов, подключенные к общей шине |
Сигнал на шине |
|
DA |
DB |
||
1. |
0 |
1 |
x |
2. |
0 |
L |
0 |
3. |
0 |
H |
0 |
4. |
0 |
0 |
0 |
5. |
1 |
1 |
1 |
6. |
1 |
L |
1 |
7. |
1 |
H |
1 |
8. |
1 |
0 |
x |
9. |
L |
1 |
1 |
10. |
L |
L |
L |
11. |
L |
H |
W |
12. |
L |
0 |
0 |
13. |
H |
1 |
1 |
14. |
H |
L |
W |
15. |
H |
H |
H |
16. |
H |
0 |
0 |
17. |
Z |
DB |
DB |
18. |
DA |
Z |
DA |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.