В VHDL никаких регистров нет, есть сигналы и переменные, что в первом приближении одно и то же (они различаются в некоторых вопросах). У них есть типы, в т.ч. предназначенные для хранения целых чисел либо "логической" информации о состоянии сигнала (либо просто 0 или 1, либо несколько значений, чтоб обозначать ещё высокий импеданс, безразличное состояние и т.д.). Можно создавать массивы и записи (таким путём можно описать регистровый файл, например).
Схемы делятся на комбинаторные и последовательные. Память имеется только у вторых. В VHDL они описываются в т.н. процессах, например:
Код:
signal Clock : STD_LOGIC;
signal Reset : STD_LOGIC;
signal Reg : INTEGER range 0 to 255;
.....
process (Reset, Clock) is
begin
if Reset = '1' then
Reg <= (others => '0');
elsif RISING_EDGE(Clock) then
Reg <= Reg + 1;
end if;
end process;
Здесь описан 8-разрядный счётчик, сбрасываемый в 0 при поступлении сигнала Reset, а в его отсутствие увеличивающийся на 1 по каждому фронту Clock.
За соблюдением времён следит синтезатор. Он строит схему и смотрит, какие задержки сигналов, и на основании этого вычисляет критические пути, определяет наибольшие частоты и т.д.