На форумах электроники периодически говорят об самосинхронных схемах, но мало кто понимает, что это такое, какими полезными свойствами обладают самосинхронные схемы и какие у них есть недостатки.
Приведенный ниже краткий текст позволит читателю ознакомиться с основами синтеза простейших самосинхронных схем и попробовать сконструировать их самостоятельно.
Сначала несколько вводных слов.
Любую схему без внешней синхронизации можно назвать асинхронной.
При этом разные типы асинхронных схем используют разные принципы работы, и самосинхронные схемы — лишь одна из их разновидностей.
Под самосинхронным обычно понимают т. н.
полумодулярные схемы, из-за возможности их представления в виде алгебраических структур, составляющих полумодулярные решетки (да простят меня математики за возможные неточности).
Одной из особенностей полумодульных (читай: самосинхронных) схем является независимость от задержек, что на практике означает работоспособность схемы при любых условиях, при которых транзисторы способны переключаться.
Однако никто не мешает вам проектировать самосинхронные схемы с использованием механических реле или любых других переключателей.
Не секрет, что разработать такие схемы очень сложно, но им не грозит выход из строя, например, из-за перегрева или последствий старения.
На этом со вступлением все, и можно переходить к практике.
По методу построения все самосинхронные схемы можно разделить на две группы — управляющие машины и схемы с большим количеством логики.
Откуда взялось это разделение? Управляющие машины — это простые устройства, такие как счетчики, защелки, триггеры или небольшие контроллеры.
Эти устройства в основном проектируются вручную с использованием сетей Петри (графового языка для описания параллельных динамических процессов), а затем синтезируются в Petrify или других инструментах.
Под схемами с большим объемом логики следует понимать знакомые всем узлы вычислительных устройств: контроллеры периферии, DMA, арифметические блоки и все, что использует умножение, сложение, сравнение, мультиплексирование и т. д. Такие схемы слишком сложны для понимания.
описываются сетями Петри и устроены по-разному (это тема отдельной серии публикаций, а то и целого учебника).
Поэтому начнем с азов, с сетей Петри.
Возьмем в качестве примера простейший самосинхронный счетный триггер.
Как и все самосинхронные схемы, он работает по тому же принципу, что и кольцевой генератор в инверторах:
Сигнал п счетно, сигналы х0, х1, у0, у1 – внутренний, пара { q0,q1 } — выходные сигналы счетчика, а CD – индикатор окончания переходных процессов в цепи.
Если сигнал CD рядом со счетным входом п , машина будет работать бесконечно.
Любой желающий может убедиться в этом с помощью обычного моделирования: Исходный код списка соединений с тестовым стендом
Теги: #самосинхронные схемы #сети Петри #FPGA`timescale 1ns/10ps module sim(); wire P,cd; counter dut(.
P(P), .
cd(cd)); assign P = cd; initial begin force P=0; force dut.x0=0; force dut.x1=1; #2; release P; release dut.x1; release dut.x0; end endmodule module counter(
-
Страшная Правда О Работе В Сфере It
19 Oct, 24 -
Firebug 1.4.2 - Теперь На Русском Языке!
19 Oct, 24