Микроэлектроника/Создание библиотеки для синтеза в LeonardoSpectrum: различия между версиями

м
мелкие правки
м (мелкие правки)
в текущем директории будет создано два файла: bmk.syn и bmk.log. Файл bmk.syn представляет двоичное (скомпилированное) описание библиотеки, файл <tt>bmk.log</tt> – список всех входящих в библиотеку элементов.
 
[[Изображение:Ris1.5Соответствие elementпараметров электрической схемы ТТЛ.png|thumb|right|400px|Рис. 1. Соответствие параметров:<br /> ''а)'' условное обозначение; ''б)'' электрическая схема]]
 
Для использования всех возможностей синтезатора LeonardoSpectrum, необходимо задать как можно больше информации о параметрах элементов библиотеки. Например, если необходимо, синтезировать схему, оптимизируя ее по критерию минимальной площади, а для элементов библиотеки не задан соответствующий параметр (<tt>area</tt>), то программа синтеза не сможет в полной мере минимизировать схему по площади.
Для описания элементов имеется ряд параметров. На рисунке 1 показано соответствие между физическими параметрами ТТЛ-элемента И-НЕ и параметрами, задаваемыми для LeonardoSpectrum.
 
=== Параметры элементов библиотеки===
*<tt>cap_load</tt> (или <tt>LIN</tt>) – задает входную емкость (C<sub>ВХ A</sub>, C<sub>ВХ B</sub>) вывода элемента (рис. 1); обычно задается для каждого входного вывода, измеряется в пФ (пикофарадах).
*<tt>max_cap_load</tt> (или <tt>LMAX</tt>) – задается для выходного полюса (вывода) логического элемента, чтобы указать максимальную емкостную нагрузку (C<sub>ВЫХ</sub>), которую способен перезаряжать этот выходной полюс.
Для определения задержки при различных внешних условиях используется формула:
 
<center>''Delay = KPK<sub>P</sub> × KTK<sub>T</sub> × KVK<sub>V</sub> × DTOTALD<sub>TOTAL ''</sub>,</center>
 
где DTOTAL''D<sub>TOTAL''</sub> – суммарная задержка элемента, определяемая по формуле (1.1);
:KP''K<sub>P''</sub> – коэффициент влияния технологического процесса (fast, typical, worst); значение коэффициента задается следующими параметрами: worst_process, typical_process, fast_process<nowiki>; выбор процесса осуществляется с помощью параметра </nowiki>process<nowiki>;</nowiki>
:KT''K<sub>T''</sub> – коэффициент влияния температуры, определяется выражением
 
KT<center>''K<sub>T</sub> = ''1'' + KTEMPK<sub>TEMP</sub> × (T0T<sub>0</sub> – T)'',</center>
 
где'' KTEMPK<sub>TEMP''</sub> – коэффициент изменения времени задержки при изменении температуры на один градус, задается с помощью параметра temp_slope<nowiki>;</nowiki>
:T0''T<sub>0''</sub> – значение номинальной температуры, задается с помощью параметра nominal_temp<nowiki>;</nowiki>
:''T'' – температура, для которой выполняется расчет задержек, задается с помощью параметра temp<nowiki>;</nowiki>
:KV''K<sub>V''</sub> – коэффициент влияния напряжения питания, определяется выражением
 
KV<center>''K<sub>V</sub> = ''1'' + KVOLT K<sub>VOLT</sub>× (V0V<sub>0</sub> – V)'',</center>
 
:KVOLT''K<sub>VOLT''</sub> – коэффициент изменения времени задержки при изменении температуры на один градус, задается с помощью глобального параметра voltage_slope<nowiki>;</nowiki>
:V0''V<sub>0''</sub> – номинальное напряжение питания, задаваемое с помощью параметра nominal_voltage<nowiki>;</nowiki>
:''V'' – напряжение, для которого выполняется расчет задержек, задается с помощью параметра voltage.
 
:KVOLT – коэффициент изменения времени задержки при изменении температуры на один градус, задается с помощью глобального параметра voltage_slope;
:V0 – номинальное напряжение питания, задаваемое с помощью параметра nominal_voltage;
:V – напряжение, для которого выполняется расчет задержек, задается с помощью параметра voltage.
Задать требуемую температуру, напряжение и технологический процесс можно с помощью следующих команд:
 
 
Такие команды можно использовать в Tcl-скрипте или в графической оболочке LeonardoSpectrum.
В приложении 1 приведено описание для программы lGen сокращенной библиотеки bmk_little, состоящей из генератора нуля (GND), генератора единицы (VCC), элемента НЕ (N), элемента И-НЕ (NA2), D-триггера со сбросом и установкой (FDRS).
 
==Использование «собственной» библиотеки в LeonardoSpectrum==
 
entity N is
generic(
del : time := 0.160 ns; ); ''-- Задание задержки''
port(
A : in std_ulogic;
Y : out std_ulogic);
end N;
 
architecture beh of N is
begin
'' -- Описание функции элемента''
Y := (not A) after del;
end beh;
</source>
| Tcl-скрипт создания VHDL-моделей элементов библиотеки
|-
|<source lang=tcl>''# выполняется сброс установок''
clean_all
 
''# определяется значение bmk для переменной lib''
set lib bmk
 
''# загрузка библиотеки''
load_library $lib.syn
 
 
entity NA2 is
port (
Y : OUT std_logic ;
A : IN std_logic ; B : IN std_logic) ;
end NA2 ;
 
architecture NETLIST of NA2 is
signal NOT_B, NOT_A: std_logic ;
begin
NOT_B <= NOT B ; NOT_A <= NOT A ;
Y <= NOT_B OR NOT_A ;
end NETLIST ;
</source>
25

правок