Уровень регистровых передач

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Уровень регистровых передач (англ. register transfer level, RTL) — способ разработки синхронных цифровых интегральных схем, при применении которого работа схемы описывается в виде последовательностей логических операций, применяемых к цифровым сигналам (данным) при их передаче от одного регистра к другому (то есть не описывается, из каких электронных компонентов или из каких логических вентилей состоит схема). Такое высокоуровневое описание составляется на одном из языков описания аппаратуры, например, на Verilog или VHDL, после чего специальной программой преобразуется в низкоуровневое описание — граф логических элементов и проводников; процесс преобразования называется логическим синтезом. Другие программы по описанию могут проверить правильность работы схемы методами логического моделирования[англ.] и соответствие схемы предъявляемым требованиям (например, требованиям к скорости работы схемы, static timing analysis). Третья программа, используя низкоуровневое описание, может разместить логические элементы и проводники по поверхности схемы (для изготовления СБИС) (place and route) или создать прошивку для ПЛИС.

Процесс проектирования[править | править код]

Синхронные схемы создаются из элементов двух типов: регистров и элементов комбинационной логики. Регистры (обычно реализованные с помощью D-триггеров) синхронизируют работу схем по фронтам синхросигнала и являются ячейками памяти. Элементы комбинационной логики выполняют логические функции и, обычно, представляют собой логические вентили.

В качестве элемента комбинационной логики используется инвертор. Выход регистра, обозначенный на рисунке буквой «Q», подключён ко входу «D» (см. рис.) регистра через инвертор. При появлении фронта синхросигнала на входе «clk» (см. рис.) в регистр записывается уровень сигнала, противоположный уровню, записанному в регистр на предыдущем такте.

Проектирование схемы на языке описания аппаратуры — проектирование на более высоком уровне абстракции, чем уровень транзисторов или уровень логических вентилей. На языке описания аппаратуры объявляют регистры (аналогичные переменным в языках программирования компьютеров) и описывают комбинационную логику, используя конструкции языка типа «if-then-else» и арифметические операции (как в языках программирования компьютеров). Термин «register-transfer level» подчёркивает тот факт, что передача данных (сигналов) осуществляется между регистрами.

Например, схему с инвертором на языке VHDL можно записать следующим образом:

D <= not Q ;
 
process ( clk )
begin
   if rising_edge( clk ) then
      Q <= D ;
   end if ;
end process ;

«D», «Q» и «clk» — входы и выходы регистра (см. рис.). «rising_edge» — функция, возвращающая true при изменении уровня указанного сигнала от низкого к высокому (то есть, при появлении фронта сигнала).

Программа автоматизации проектирования электроники (EDA), выполняя логический синтез, преобразует код с языка описания аппаратуры в информацию, необходимую для создания аппаратной реализации схемы (обычно список соединений — список логических вентилей и соединений между ними), и сохраняет её в файл. Такой файл может быть передан на вход программе, предназначенной для создания интегральных схем специального назначения, автоматизирующей размещение[англ.] и трассировку), или программе, предназначенной для создания прошивок для программируемируемых пользователем вентильных матриц. Программа, выполняющая логический синтез, также может выполнять оптимизировать схему[англ.].

По наличию или отсутствию в схеме регистров, выходы которых связаны с их входами, схемы делят на два типа:

Литература[править | править код]

  • Frank Vahid. Digital Design with RTL Design, Verilog and VHDL (неопр.). — 2nd. — John Wiley and Sons, 2010. — С. 247. — ISBN 978-0-470-53108-2.

Ссылки[править | править код]