Рівень передачі регістрів

У Проектуванні цифрових мікросхем, рівень передачі регістрів (англ. register-transfer level, RTL) це абстрація проектування, за допомогою якої моделюють синхронні[en] цифрові мікросхеми з точки зору потоку цифрових сигналів (даних) між апаратними регістрами, і логічних операцій, що виконуються над цими сигналами.

Рівень передачі регістрів як абстракція використовується в мовах опису апаратури (англ. hardware description language, HDL) до яких відносяться Verilog та VHDL для створення високорівневого представлення схеми, з якого можна отримати низькорівневе представлення та в остаточному підсумку фактична схема з'єднань. Проектування на RTL рівні є типовою практикою при розробці сучасних цифрових мікросхем.[1]

RTL описання

 
Приклад простого кола, в якому вихід перемикається при кожному зростанні фронту вхідного сигналу. Інвертор виконує комбінаторну логіку цієї схеми, а регістр зберігає стан.

Синхронне коло як складається із двох типів елементів: регістрів (Послідовна логіка) і комбінаційної логіки. Регістри (як правило реалізовані як D тригери) синхронізують роботу схеми із зростаючими фронтами синхроімпульсу, і які є єдиними елементами схеми, що мають властивість пам'яті. Комбінаційна логіка виконує всі логічні функції у схемі і як правило складається із логічних вентилів.

Наприклад, на зображені показано дуже проста синхронна схема. Інвертор підключений у вихід регістра, Q, і передає результат на вхід регістра, D, це дозволяє створити схему яка змінює свій стан на кожному зростаючому фронті синхроімпульса, clk. В цій схемі комбінаційна логіка складається із одного інвертора.

При проектуванні цифрових інтегрованих схем за допомогою мови опису апаратури, проектування як правило здійснюється на вищому рівні абстракції ніж транзисторний рівень (сімейства інтегральних схем логіки[en]) або рівень логічних вентилів. На рівні HDL розробник оголошує регістри (які грубо кажучи відповідають поняттю змінних в комп'ютерних мовах програмування), і описує комбінаторну логіки із використанням конструкцій схожих на конструкції мов програмування: такі як if-then-else і арифметичні оператори. Цей рівень називається рівнем передачі регістрів. Термін відображає зміст того, що RTL приділяє увагу описанню потоку сигналів між регістрами.

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

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

Використовуючи засоби EDA для синтезу, це описання як правило можна напряму перекласти у еквівалентну апаратну реалізацію у вигляді файлу для ASIC або FPGA. Інструмент синтезу також здійснює оптимізацію логіки[en].

Деякі типи схем на рівні передачі регістрів можна легко упізнати. Якщо існує циклічний шлях логіки від виходів регістрів до їх входу (або від виходів множини регістрів до їх входів), така схема називається скінченним автоматом або представляє послідовну логіку. Якщо існують шляхи логіки від одних регістрів до інших без циклу, це називають конвеєром.

Примітки

  1. Frank Vahid (2010). Digital Design with RTL Design, Verilog and VHDL (вид. 2nd). John Wiley and Sons. с. 247. ISBN 978-0-470-53108-2.