logo
mat_mod

49. Физические типы в vhdl. Тип time.

Физические типы позволяют разработчику непосредственно выразить величины в физических единицахизмерения. В VHDL используется один физический тип - предопределенный физический тип TIME (время).Объявление физического типа задает множество единиц, определенных в терминах некоторой базовой единицы.В случае типа TIME базовой единицей является fs (фемтосекунда), а производными единицами являются ps, ns,us и так далее. Рассмотримопределениетипа TIME.

type TIME is range -(2**31-1) to 2**31-1

units

fs;

ps = 1000 fs;

ns = 1000 ps;

us = 1000 ns;

ms = 1000 us;

s = 1000 ms;

min = 60 s;

hr = 60 min;

end units;

Диапазон типа TIME определяет диапазон базовых единиц, который может быть точно представлен

объектами типа. Физические литералы, использующие любые из определенных имен для физических единиц,

будут автоматически преобразовываться к фемтосекундам.

физические типы могут быть получены из библиотечного пакета, поставляемого продавцами матобеспечения

САПР.

type resistance is range 0 to 2**31-1

units

nOhm;

uOhm =1000 nOhm;

mOhm =1000 uOhm;

Ohm =1000 mOhm;

end units;

type voltage is range -(2**31-1) to 2**31-1

units

nV;

uV =1000 nV;

end units;

Когда значение физического типа делится на другое значение того же самого типа, то единицы измеренияисчезают и результат становится совместимым с любым целым типом.

Допускается умножение физического типа на число с плавающей точкой, в этом случае получается результат

физического типа. Эти идеи иллюстрируются в следующих примерах.

total_time := 1 ns + .039 s - min_time;

output_volts<=supply_volts-500mV after reset_duration+5 ms;

nom := .75* max;

function "*" (I:current; R:resistance) return voltage is

begin

return nV* ( real (I/nA)* real(R/nOhm)*1.0E-9);

end;

function "*" (R:resistance; I:current) return voltage is

begin

return nV * ( real ( I/ nA )* real(R/nOhm)* 1.0E-9);

end;

Каждое объявление функции перезагружает оператор умножения таким образом, что он будет выполняться,

когда перемножаются значения физических типов current и resistance. Результат должен быть физического типа

voltage.