Уровень регистровых передач
Уровень регистровых передач (англ. register transfer level, RTL) — способ разработки синхронных цифровых интегральных схем, при применении которого работа схемы описывается в виде последовательностей логических операций, применяемых к цифровым сигналам (данным) при их передаче от одного регистра к другому (то есть не описывается, из каких электронных компонентов или из каких логических вентилей состоит схема). Такое высокоуровневое описание составляется на одном из языков описания аппаратуры, например, на Verilog или VHDL, после чего специальной программой преобразуется в низкоуровневое описание — граф логических элементов и проводников; процесс преобразования называется логическим синтезом. Другие программы по описанию могут проверить правильность работы схемы методами логического моделирования[англ.] и соответствие схемы предъявляемым требованиям (например, требованиям к скорости работы схемы, static timing analysis). Третья программа, используя низкоуровневое описание, может разместить логические элементы и проводники по поверхности схемы (для изготовления СБИС) (place and route) или создать прошивку для ПЛИС.
Процесс проектирования
правитьСинхронные схемы создаются из элементов двух типов: регистров и элементов комбинационной логики. Регистры (обычно реализованные с помощью D-триггеров) синхронизируют работу схем по фронтам синхросигнала и являются ячейками памяти. Элементы комбинационной логики выполняют логические функции и, обычно, представляют собой логические вентили.
Проектирование схемы на языке описания аппаратуры — проектирование на более высоком уровне абстракции, чем уровень транзисторов или уровень логических вентилей. На языке описания аппаратуры объявляют регистры (аналогичные переменным в языках программирования компьютеров) и описывают комбинационную логику, используя конструкции языка типа «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.
Ссылки
править- https://books.google.ru/books?id=N4NyCQAAQBAJ&pg=PA15
- http://www.ece.ubc.ca/~edc/379.jan99/lectures/lec8.pdf (англ.)
- https://web.archive.org/web/20160928022106/http://semiengineering.com/kc/knowledge_center/Register-Transfer-Level/49 (англ.)
- IEEE 1076.6 «IEEE Standard for VHDL Register Transfer Level (RTL) Synthesis» (англ.)
Для улучшения этой статьи желательно:
|