<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://vscripts.ru/w/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>https://vscripts.ru/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Konstantin</id>
		<title>Модулярная арифметика - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="https://vscripts.ru/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Konstantin"/>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Konstantin"/>
		<updated>2026-04-30T19:14:25Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.23.17</generator>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T11:47:34Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* АЦП последовательного приближения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Виды АЦП=&lt;br /&gt;
==Flash A/R Converter==&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
===Iterative flash A/R converter===&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Двухступенчатый АЦП===&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл. Остаток по модулю m3 являетcя выходом из конвертера ADC2. Два других остатка вычисляются по таблице. Использование этой таблицы удерживает на том же уровне энергопотребление и площадь,но создаёт дополнительную задержку.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;br /&gt;
&lt;br /&gt;
==АЦП последовательного приближения==&lt;br /&gt;
Основная идея такая же как и при конвертировании в бинарное представление. Разница заключается в следующем:&lt;br /&gt;
*компаратор заменён на дифференциальный усилитель&lt;br /&gt;
*для генерации непосредственно остатков используется второй конвертер&lt;br /&gt;
*ЦАП изменён таким образом чтобы усиливать выход в mr раз,где mr - выбранный модуль.&lt;br /&gt;
&lt;br /&gt;
Преобразование длится B+1 цикл, где И это количество битов в SAR, и разрешение n выбирается из условия M&amp;gt;=2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; [[Изображение:B.jpg]]&lt;br /&gt;
[[Изображение:Aproxim_ARC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T11:41:49Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* АЦП последовательного приближения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Виды АЦП=&lt;br /&gt;
==Flash A/R Converter==&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
===Iterative flash A/R converter===&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Двухступенчатый АЦП===&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл. Остаток по модулю m3 являетcя выходом из конвертера ADC2. Два других остатка вычисляются по таблице. Использование этой таблицы удерживает на том же уровне энергопотребление и площадь,но создаёт дополнительную задержку.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;br /&gt;
&lt;br /&gt;
==АЦП последовательного приближения==&lt;br /&gt;
Основная идея такая же как и при конвертировании в бинарное представление. Разница заключается в следующем:&lt;br /&gt;
*компаратор заменён на дифференциальный усилитель&lt;br /&gt;
*для генерации непосредственно остатков используется второй конвертер&lt;br /&gt;
*ЦАП изменён таким образом чтобы усиливать выход в mr раз,где mr - выбранный модуль.&lt;br /&gt;
&lt;br /&gt;
Преобразование длится B+1 цикл, где [[Изображение:B.jpg]]&lt;br /&gt;
[[Изображение:Aproxim_ARC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T11:41:32Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* АЦП последовательного приближения */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Виды АЦП=&lt;br /&gt;
==Flash A/R Converter==&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
===Iterative flash A/R converter===&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Двухступенчатый АЦП===&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл. Остаток по модулю m3 являетcя выходом из конвертера ADC2. Два других остатка вычисляются по таблице. Использование этой таблицы удерживает на том же уровне энергопотребление и площадь,но создаёт дополнительную задержку.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;br /&gt;
&lt;br /&gt;
==АЦП последовательного приближения==&lt;br /&gt;
Основная идея такая же как и при конвертировании в бинарное представление. Разница заключается в следующем:&lt;br /&gt;
*компаратор заменён на дифференциальный усилитель&lt;br /&gt;
*для генерации непосредственно остатков используется второй конвертер&lt;br /&gt;
*ЦАП изменён таким образом чтобы усиливать выход в mr раз,где mr - выбранный модуль.&lt;br /&gt;
&lt;br /&gt;
Преобразование длится B+1 цикл,где [[Изображение:B.jpg]]&lt;br /&gt;
[[Изображение:Aproxim_ARC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:B.jpg</id>
		<title>Файл:B.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:B.jpg"/>
				<updated>2013-03-11T11:41:20Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T11:27:32Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Виды АЦП=&lt;br /&gt;
==Flash A/R Converter==&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
===Iterative flash A/R converter===&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Двухступенчатый АЦП===&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл. Остаток по модулю m3 являетcя выходом из конвертера ADC2. Два других остатка вычисляются по таблице. Использование этой таблицы удерживает на том же уровне энергопотребление и площадь,но создаёт дополнительную задержку.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;br /&gt;
&lt;br /&gt;
==АЦП последовательного приближения==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Aproxim_ARC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Aproxim_ARC.jpg</id>
		<title>Файл:Aproxim ARC.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Aproxim_ARC.jpg"/>
				<updated>2013-03-11T11:23:56Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T11:23:04Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Виды АЦП=&lt;br /&gt;
==Flash A/R Converter==&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
===Iterative flash A/R converter===&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Двухступенчатый АЦП===&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл. Остаток по модулю m3 являетcя выходом из конвертера ADC2. Два других остатка вычисляются по таблице. Использование этой таблицы удерживает на том же уровне энергопотребление и площадь,но создаёт дополнительную задержку.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;br /&gt;
&lt;br /&gt;
==АЦП последовательного приближения==&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T11:21:16Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Двухступенчатый АЦП */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
==Iterative flash A/R converter==&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Двухступенчатый АЦП==&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл. Остаток по модулю m3 являетcя выходом из конвертера ADC2. Два других остатка вычисляются по таблице. Использование этой таблицы удерживает на том же уровне энергопотребление и площадь,но создаёт дополнительную задержку.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T11:21:07Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Iterative flash A/R converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
==Iterative flash A/R converter==&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Двухступенчатый АЦП=&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл. Остаток по модулю m3 являетcя выходом из конвертера ADC2. Два других остатка вычисляются по таблице. Использование этой таблицы удерживает на том же уровне энергопотребление и площадь,но создаёт дополнительную задержку.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T10:16:57Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Двухступенчатый АЦП */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
=Iterative flash A/R converter=&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Двухступенчатый АЦП=&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл. Остаток по модулю m3 являетcя выходом из конвертера ADC2. Два других остатка вычисляются по таблице. Использование этой таблицы удерживает на том же уровне энергопотребление и площадь,но создаёт дополнительную задержку.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T09:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Двухступенчатый АЦП */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
=Iterative flash A/R converter=&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Двухступенчатый АЦП=&lt;br /&gt;
&lt;br /&gt;
На картинке ниже представлена архитектура АЦП,использующая модули {7,8,9}. Принцип работы очень похож на итерационный АЦП с той лишь разницей,что всё делается за 1 цикл.&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T09:47:18Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Модифицированный параллельный АЦП */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
=Iterative flash A/R converter=&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Двухступенчатый АЦП=&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Simulink_model.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Simulink_model.jpg</id>
		<title>Файл:Simulink model.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Simulink_model.jpg"/>
				<updated>2013-03-11T09:39:25Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-11T09:34:42Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
=Iterative flash A/R converter=&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Модифицированный параллельный АЦП=&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Modif_flash_ARC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Modif_flash_ARC.jpg</id>
		<title>Файл:Modif flash ARC.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Modif_flash_ARC.jpg"/>
				<updated>2013-03-11T09:34:23Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/Main</id>
		<title>Main</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/Main"/>
				<updated>2013-03-10T08:03:02Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Генераторы Verilog =&lt;br /&gt;
&lt;br /&gt;
== Базовые операции ==&lt;br /&gt;
&lt;br /&gt;
=== Сумматоры === &lt;br /&gt;
# [http://vscripts.ru/2012/generator-sum-2n-1.php Генератор Verilog для сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1] - реализация на базе двух сумматоров и мультиплексора (вариант Романа).&lt;br /&gt;
# [http://vscripts.ru/dima/adder.php Генератор Verilog для сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1] - полностью комбинационная реализация без мультиплексора (вариант Димы).&lt;br /&gt;
# [http://vscripts.ru/dima/all_adders.php?n=31 Генератор Verilog для сумматора по произвольному модулю] - реализация предлагающая оптимальный вариант.&lt;br /&gt;
&lt;br /&gt;
=== Умножители ===&lt;br /&gt;
# [http://vscripts.ru/2012/index-modulo-multiplication.php Генератор Verilog для умножения по модулю (метод 1)] - от 3 до 1000 по индексному методу (умножение заменено на сложение).&lt;br /&gt;
# [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php Генератор Verilog для умножения по модулю (метод 2)] - от 3 до 1000 по методу разности квадратов (X*Y = (1/4)*(X+Y)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; - (1/4)*(X-Y)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) &lt;br /&gt;
&lt;br /&gt;
=== Прямые и обратные преобразователи ===&lt;br /&gt;
# [http://vscripts.ru/2012/forward-converter-2supn-generator.php Генератор Verilog для прямого преобразователя в базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Романа). &lt;br /&gt;
# [http://vscripts.ru/dima/fwd_generator.php Генератор Verilog для прямого преобразователя в базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Димы). &lt;br /&gt;
# [http://vscripts.ru/2012/reverse-converter-2supn-generator.php Генератор Verilog для обратного преобразователя из базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - сверхбыстрый обратный преобразователь в позиционную систему.&lt;br /&gt;
&lt;br /&gt;
=== Другое ===&lt;br /&gt;
# [http://vscripts.ru/2012/generator-sum-kwain.php Генератор Verilog для модулярных операций по методу Квайна] - генератор операций сложения и умножения, для малых модулей (от 3 до 15).&lt;br /&gt;
# [http://vscripts.ru/2012/generator-sub-sqr.php Генератор Verilog для квадрата разности по модулю p] - состоит из вычитателя и таблицы квадратов (LUT). &lt;br /&gt;
&lt;br /&gt;
== SAD процессоры (поиск различия между двумя картинками) ==&lt;br /&gt;
# [http://vscripts.ru/2012/sad_generator.php Генератор Verilog для реализации позиционного SAD процессора] - поиск векторов компенсации движения в стандартном виде.&lt;br /&gt;
# [http://vscripts.ru/2012/sad_modular_generator.php Генератор Verilog для реализации модулярного SAD процессора] - поиск векторов компенсации движения в модулярном базисе вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1).&lt;br /&gt;
&lt;br /&gt;
== Формулы и математика ==&lt;br /&gt;
# [http://vscripts.ru/2012/prime-set-generator.php Генератор простых чисел Прота для реализации операции свёртки] - по методу БПФ в конечном поле.&lt;br /&gt;
# [http://vscripts.ru/2012/basis-15x16x17-simple.php Формула для обратного преобразователя для базиса вида (2n-1, 2n, 2n+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.&lt;br /&gt;
# [http://vscripts.ru/2012/basis-15x16x17.php Проверка формул обратного преобразователя для базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код. &lt;br /&gt;
# [http://vscripts.ru/2012/sad-modular-basis-calculator.php Генератор базисов для SAD процессоров разной размерности] - базисы специального вида и обычного. &lt;br /&gt;
&lt;br /&gt;
== Временные и тестовые скрипты ==&lt;br /&gt;
# [http://vscripts.ru/2012/prime.php Список случайных простых чисел] - для теста от 900 до 20000 &lt;br /&gt;
# [http://vscripts.ru/2012/multable.php Таблица умножения по модулю] - от 3 до 100 &lt;br /&gt;
&lt;br /&gt;
== Справочные материалы ==&lt;br /&gt;
* [[Система остаточных классов]] - определение&lt;br /&gt;
* [[Алгоритм Espresso]] - эффективный алгоритм для минимизации булевых функций&lt;br /&gt;
* [[MIS: A multiple-level logic optimization system]] - система логического синтеза&lt;br /&gt;
* [[Введение в АЦП]] - описание видов аналого-цифровых преобразователей (двоичных)&lt;br /&gt;
* [[Модулярное АЦП]] - описание различных архитектур АЦП и их сравнение&lt;br /&gt;
* [[Полезная литература]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Результаты исследований ==&lt;br /&gt;
# 2013.02 - [[Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.]]&lt;br /&gt;
# 2013.02 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Espresso]]&lt;br /&gt;
# 2013.01 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Квайна]]&lt;br /&gt;
# 2012.12 - [[Результат сравнения SAD-процессоров модулярный vs позиционный (промежуточный отчет 12.2012)]]&lt;br /&gt;
# 2012.12 - [[Исследование позиционного умножения на нашей библиотеке]]&lt;br /&gt;
# 2012.12 - [[Сравнение разных методов умножения по модулю]] - сравнение позиционного, [http://vscripts.ru/2012/index-modulo-multiplication.php индексного умножителя] и [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php умножителя по методу разности квадратов]&lt;br /&gt;
# 2012.12 - [[Сравнение разных методов сложения по модулю 2^n-1]] (модуль вида 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1) - сравнение позиционного сумматора и двух вариантов реализации сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 ([http://vscripts.ru/2012/generator-sum-2n-1.php Генератор 1], [http://vscripts.ru/dima/adder.php Генератор 2]).&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-05T13:31:54Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Iterative flash A/R converter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
=Iterative flash A/R converter=&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-05T13:31:26Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;br /&gt;
&lt;br /&gt;
=Iterative flash A/R converter=&lt;br /&gt;
&lt;br /&gt;
Схема является двухступенчатой: на первом этапе генерируется базовое значение,на втором остатки от деления.Аналоговый сигнал делится и подаётся на первый конвертер(FC1), который генерирует m старших битов частного. Они записываются в первый регистр(R1) при помощи мультиплексора.Далее начинается вторая стадия. Бинарное представление частного конвертируется в аналоговую форму и дифференциальный усилитель,на второй вход которого подаётся изначальный аналоговый сигнал. Далее происходит конвертирование аналогового сигнала в цифровое представление на FC2, которое и является модулярным видом числа. Процесс повторяется k раз,где k равно:&lt;br /&gt;
[[Изображение:K.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Iterative_ARC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:K.jpg</id>
		<title>Файл:K.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:K.jpg"/>
				<updated>2013-03-05T13:30:59Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Iterative_ARC.jpg</id>
		<title>Файл:Iterative ARC.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Iterative_ARC.jpg"/>
				<updated>2013-03-05T13:10:57Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-05T13:09:23Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.После этого данные попадают в ПЛМ(PLA) размерности mr на log2(mr-1).&lt;br /&gt;
&lt;br /&gt;
Задержка распространения сигнала в модулярном АЦП определяется 4 параметрами:&lt;br /&gt;
*задержкой компаратора&lt;br /&gt;
*задержкой XOR&lt;br /&gt;
*задержкой буфера&lt;br /&gt;
*задержкой ПЛМ&lt;br /&gt;
&lt;br /&gt;
Задержку позиционного АЦП определяет всего 2 параметра:&lt;br /&gt;
*задержка компаратора&lt;br /&gt;
*задержка ROM&lt;br /&gt;
&lt;br /&gt;
Как правило,для больших чисел сумма задержки буфера,XOR и ПЛМ много меньше задержки ROM.&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-05T13:02:57Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;br /&gt;
&lt;br /&gt;
Для любого входного значения X из M только один XOR будет на выходе генерировать логическую единицу,тем самым активируя буфер.Выход из каждого буфера является искомым остатком операции деления X по модулю mr.&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-05T12:40:54Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]][[Изображение:Thermometer_code_2.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Thermometer_code_2.jpg</id>
		<title>Файл:Thermometer code 2.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Thermometer_code_2.jpg"/>
				<updated>2013-03-05T12:40:40Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F</id>
		<title>Модулярное АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8F%D1%80%D0%BD%D0%BE%D0%B5_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-03-05T12:39:36Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: Новая страница: «В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравне…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;В данной статье рассмотрены различные архитектуры модулярного АЦП(A/R), а так же их сравнение между собой.&lt;br /&gt;
&lt;br /&gt;
=Flash A/R Converter=&lt;br /&gt;
&lt;br /&gt;
Идеология абсолютно такая же, как и для обыкновенного АЦП.Для построения n-битного модулярного АЦП необходимо 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 компараторов и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; резисторов. Разница между модулярным и позиционным АЦП заключается в декодере. Ниже приведена схема для декодера унарного кода в модулярное представление.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Thermometer_code.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Thermometer_code.jpg</id>
		<title>Файл:Thermometer code.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Thermometer_code.jpg"/>
				<updated>2013-03-05T12:39:24Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9.</id>
		<title>Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9."/>
				<updated>2013-02-25T14:21:14Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На основе [http://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E прошлого исследования] было добавлено сравнение результатов с умножителем по модулю вида 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1.&lt;br /&gt;
Сравнение производилось для модулей с разрядностью от 2 до 9 бит.&lt;br /&gt;
Запуск производился на Synopsys Design Compiler. &lt;br /&gt;
&lt;br /&gt;
== Типовой Verilog-модуль ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module mod_multiplier_7 (a,b,out);&lt;br /&gt;
output wire [2:0] out;&lt;br /&gt;
input  wire [2:0] a,b;&lt;br /&gt;
wire [2:0] p_out0;&lt;br /&gt;
wire [2:0] p_out1;&lt;br /&gt;
wire [2:0] p_out2;&lt;br /&gt;
reg  [3:0] res0;&lt;br /&gt;
reg  [3:0] res1;&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
assign p_out0[0] = a[0] &amp;amp;&amp;amp; b[0];&lt;br /&gt;
assign p_out0[1] = a[1] &amp;amp;&amp;amp; b[0];&lt;br /&gt;
assign p_out0[2] = a[2] &amp;amp;&amp;amp; b[0];&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
assign p_out1[0] = a[2] &amp;amp;&amp;amp; b[1];&lt;br /&gt;
assign p_out1[1] = a[0] &amp;amp;&amp;amp; b[1];&lt;br /&gt;
assign p_out1[2] = a[1] &amp;amp;&amp;amp; b[1];&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
assign p_out2[0] = a[1] &amp;amp;&amp;amp; b[2];&lt;br /&gt;
assign p_out2[1] = a[2] &amp;amp;&amp;amp; b[2];&lt;br /&gt;
assign p_out2[2] = a[0] &amp;amp;&amp;amp; b[2];&lt;br /&gt;
&lt;br /&gt;
always @ (*)&lt;br /&gt;
begin&lt;br /&gt;
	res0=p_out0+p_out1;&lt;br /&gt;
	if(res0[3]==1)&lt;br /&gt;
	begin&lt;br /&gt;
	res0[3]=0;&lt;br /&gt;
	res0=res0+1;&lt;br /&gt;
	end&lt;br /&gt;
	res1=res0+p_out2;&lt;br /&gt;
	if(res1[3]==1)&lt;br /&gt;
	begin&lt;br /&gt;
	res1[3]=0;&lt;br /&gt;
	res1=res1+1;&lt;br /&gt;
	end&lt;br /&gt;
if(res1==7)&lt;br /&gt;
		res1=res1+1;&lt;br /&gt;
end&lt;br /&gt;
assign out = res1[2:0];&lt;br /&gt;
endmodule&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Testbench&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
module atest_bench();&lt;br /&gt;
	reg  [2:0] inp1,inp2;&lt;br /&gt;
	wire [2:0] out;&lt;br /&gt;
	integer fori,forj,i,l;&lt;br /&gt;
	reg dummy;&lt;br /&gt;
		&lt;br /&gt;
mod_multiplier_7 m1(inp1,inp2,out);&lt;br /&gt;
&lt;br /&gt;
initial&lt;br /&gt;
	begin&lt;br /&gt;
		begin&lt;br /&gt;
		for (fori=1; fori &amp;lt; 7; fori = fori + 1)&lt;br /&gt;
			for (forj=1; forj &amp;lt; 7; forj = forj+1)&lt;br /&gt;
				begin&lt;br /&gt;
					inp1=fori;&lt;br /&gt;
					inp2=forj;&lt;br /&gt;
					#1 dummy = 1;&lt;br /&gt;
					i=(fori * forj)%7;&lt;br /&gt;
					//$display (&amp;quot;a=(%d) b=(%d) Res=(%d) expect=(%d)&amp;quot;,fori,forj,out,i);&lt;br /&gt;
					l = out;&lt;br /&gt;
					if (l != i)&lt;br /&gt;
						begin&lt;br /&gt;
							$display (&amp;quot;Error i=(%d) l=(%d)&amp;quot;,i,l);&lt;br /&gt;
						end&lt;br /&gt;
					#1 dummy = 1;&lt;br /&gt;
				end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Генератор Verilog-модулей ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for { set n 2} {$n &amp;lt; 11} {incr n} {&lt;br /&gt;
&lt;br /&gt;
set q [expr round(pow(2,$n)-1)]&lt;br /&gt;
set b [expr $n-1]&lt;br /&gt;
&lt;br /&gt;
set file1 &amp;quot;mod_multiplier_$q.v&amp;quot;&lt;br /&gt;
set out1 [open $file1 &amp;quot;w&amp;quot;]&lt;br /&gt;
puts $out1 &amp;quot;module mod_multiplier_$q (a,b,out);&lt;br /&gt;
output wire \[$b:0\] out;&lt;br /&gt;
input  wire \[$b:0\] a,b;&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
	for {set pt 0} {$pt &amp;lt; $n} {incr pt} {&lt;br /&gt;
		puts $out1 &amp;quot;wire \[$b:0\] p_out$pt;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set r 0} {$r &amp;lt; $b} {incr r} {&lt;br /&gt;
		puts $out1 &amp;quot;reg  \[$n:0\] res$r;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	puts $out1 &amp;quot;&lt;br /&gt;
	&amp;quot;&lt;br /&gt;
		for {set j 0} {$j &amp;lt; $n} {incr j} {&lt;br /&gt;
			set k [expr ($j -$i + $n)%$n]&lt;br /&gt;
			puts $out1 &amp;quot;assign p_out$i\[$j\] = a\[$k\] &amp;amp;&amp;amp; b\[$i\];&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
puts $out1 &amp;quot;&lt;br /&gt;
always @ (*)&lt;br /&gt;
begin&amp;quot;&lt;br /&gt;
for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	set arr($i) &amp;quot;p_out$i&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
	set arr_count $n&lt;br /&gt;
	set z 0&lt;br /&gt;
		&lt;br /&gt;
	while {1} {&lt;br /&gt;
		set arr_count1 0&lt;br /&gt;
		for {set i 0} {$i&amp;lt; [expr $arr_count-1]} {incr i 2} {&lt;br /&gt;
			set p_internal &amp;quot;res$z&amp;quot;&lt;br /&gt;
			set tmp1 [expr $i+1]&lt;br /&gt;
			puts $out1 &amp;quot;	$p_internal=$arr($i)+$arr($tmp1);&amp;quot;&lt;br /&gt;
			set RES &amp;quot;res$z\[$n\]&amp;quot;&lt;br /&gt;
			puts $out1 &amp;quot;	if($RES==1)&lt;br /&gt;
	begin&lt;br /&gt;
	res$z\[$n\]=0;&lt;br /&gt;
	res$z=res$z+1;&lt;br /&gt;
	end&amp;quot;&lt;br /&gt;
			set arr1($arr_count1) $p_internal&lt;br /&gt;
			incr arr_count1	&lt;br /&gt;
			incr z&lt;br /&gt;
		}&lt;br /&gt;
	set copy [expr $arr_count%2]&lt;br /&gt;
	if {$copy == 1} {&lt;br /&gt;
		set count2 [expr $arr_count-1]&lt;br /&gt;
		set arr1($arr_count1)  $arr($count2)&lt;br /&gt;
		incr arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	if {$arr_count1 &amp;lt;= 1} {&lt;br /&gt;
		break;&lt;br /&gt;
		}&lt;br /&gt;
	# copy&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $arr_count1} {incr i} {&lt;br /&gt;
		set arr($i) $arr1($i)&lt;br /&gt;
		set arr_count $arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	}&lt;br /&gt;
set z [expr $z-1]&lt;br /&gt;
puts $out1 &amp;quot;if(res$z==$q)&lt;br /&gt;
		res$z=res$z+1;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;end&lt;br /&gt;
assign out = res$z\[$b:0\];&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;module atest_bench();&lt;br /&gt;
	reg  \[$b:0\] inp1,inp2;&lt;br /&gt;
	wire \[$b:0\] out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;	integer fori,forj,i,l;&lt;br /&gt;
	reg dummy;&lt;br /&gt;
		&lt;br /&gt;
mod_multiplier_$q m1(inp1,inp2,out);&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;initial&lt;br /&gt;
	begin&lt;br /&gt;
		begin&lt;br /&gt;
		for (fori=1; fori &amp;lt; $q; fori = fori + 1)&lt;br /&gt;
			for (forj=1; forj &amp;lt; $q; forj = forj+1)&lt;br /&gt;
				begin&lt;br /&gt;
					inp1=fori;&lt;br /&gt;
					inp2=forj;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					#1 dummy = 1;&lt;br /&gt;
					i=(fori * forj)\%$q;&lt;br /&gt;
					//\$display (\&amp;quot;a=(\%d) b=(\%d) Res=(\%d) expect=(\%d)\&amp;quot;,fori,forj,out,i);&lt;br /&gt;
					l = out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					if (l != i)&lt;br /&gt;
						begin&lt;br /&gt;
							\$display (\&amp;quot;Error i=(\%d) l=(\%d)\&amp;quot;,i,l);&lt;br /&gt;
						end&lt;br /&gt;
					#1 dummy = 1;&lt;br /&gt;
				end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
endmodule&amp;quot;	&lt;br /&gt;
}&lt;br /&gt;
close $out1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Библиотека стандартных ячеек ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NangateOpenCellLibrary_typical_conditional_nldm.lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Скрипт для запуска ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
analyze -f verilog &amp;lt;имя модуля&amp;gt;.v&lt;br /&gt;
elaborate &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
uniquify&lt;br /&gt;
current_design &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
check_design&lt;br /&gt;
set_load [load_of [get_lib_pins NangateOpenCellLibrary/INV_X4/A]] [all_outputs]&lt;br /&gt;
set_driving_cell -lib_cell DFFRS_X2 -library NangateOpenCellLibrary -pin Q  [all_inputs] &lt;br /&gt;
set_max_delay -to [all_outputs] 0 &lt;br /&gt;
set_max_area 0 &lt;br /&gt;
compile&lt;br /&gt;
report_timing -significant_digits 6 &amp;gt; timing_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_area &amp;gt; area_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_power -analysis_effort high &amp;gt; power_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
remove_design -all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Модули для эксперимента ==&lt;br /&gt;
&amp;lt;table style='border: 1px solid black; text-align: center;'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Битность&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для индексного умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для DS и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;15&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;61&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;63&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;251&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;255&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;509&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;511&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результаты ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:2n-1_area.jpg]]&lt;br /&gt;
[[Изображение:2n-1_power.jpg]]&lt;br /&gt;
[[Изображение:2n-1_timing.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Результаты]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9.</id>
		<title>Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9."/>
				<updated>2013-02-25T14:17:25Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На основе [http://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E прошлого исследования] было добавлено сравнение результатов с умножителем по модулю вида 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1.&lt;br /&gt;
Сравнение производилось для модулей с разрядностью от 2 до 9 бит.&lt;br /&gt;
Запуск производился на Synopsys Design Compiler. &lt;br /&gt;
&lt;br /&gt;
== Генератор Verilog-модулей ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for { set n 2} {$n &amp;lt; 11} {incr n} {&lt;br /&gt;
&lt;br /&gt;
set q [expr round(pow(2,$n)-1)]&lt;br /&gt;
set b [expr $n-1]&lt;br /&gt;
&lt;br /&gt;
set file1 &amp;quot;mod_multiplier_$q.v&amp;quot;&lt;br /&gt;
set out1 [open $file1 &amp;quot;w&amp;quot;]&lt;br /&gt;
puts $out1 &amp;quot;module mod_multiplier_$q (a,b,out);&lt;br /&gt;
output wire \[$b:0\] out;&lt;br /&gt;
input  wire \[$b:0\] a,b;&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
	for {set pt 0} {$pt &amp;lt; $n} {incr pt} {&lt;br /&gt;
		puts $out1 &amp;quot;wire \[$b:0\] p_out$pt;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set r 0} {$r &amp;lt; $b} {incr r} {&lt;br /&gt;
		puts $out1 &amp;quot;reg  \[$n:0\] res$r;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	puts $out1 &amp;quot;&lt;br /&gt;
	&amp;quot;&lt;br /&gt;
		for {set j 0} {$j &amp;lt; $n} {incr j} {&lt;br /&gt;
			set k [expr ($j -$i + $n)%$n]&lt;br /&gt;
			puts $out1 &amp;quot;assign p_out$i\[$j\] = a\[$k\] &amp;amp;&amp;amp; b\[$i\];&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
puts $out1 &amp;quot;&lt;br /&gt;
always @ (*)&lt;br /&gt;
begin&amp;quot;&lt;br /&gt;
for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	set arr($i) &amp;quot;p_out$i&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
	set arr_count $n&lt;br /&gt;
	set z 0&lt;br /&gt;
		&lt;br /&gt;
	while {1} {&lt;br /&gt;
		set arr_count1 0&lt;br /&gt;
		for {set i 0} {$i&amp;lt; [expr $arr_count-1]} {incr i 2} {&lt;br /&gt;
			set p_internal &amp;quot;res$z&amp;quot;&lt;br /&gt;
			set tmp1 [expr $i+1]&lt;br /&gt;
			puts $out1 &amp;quot;	$p_internal=$arr($i)+$arr($tmp1);&amp;quot;&lt;br /&gt;
			set RES &amp;quot;res$z\[$n\]&amp;quot;&lt;br /&gt;
			puts $out1 &amp;quot;	if($RES==1)&lt;br /&gt;
	begin&lt;br /&gt;
	res$z\[$n\]=0;&lt;br /&gt;
	res$z=res$z+1;&lt;br /&gt;
	end&amp;quot;&lt;br /&gt;
			set arr1($arr_count1) $p_internal&lt;br /&gt;
			incr arr_count1	&lt;br /&gt;
			incr z&lt;br /&gt;
		}&lt;br /&gt;
	set copy [expr $arr_count%2]&lt;br /&gt;
	if {$copy == 1} {&lt;br /&gt;
		set count2 [expr $arr_count-1]&lt;br /&gt;
		set arr1($arr_count1)  $arr($count2)&lt;br /&gt;
		incr arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	if {$arr_count1 &amp;lt;= 1} {&lt;br /&gt;
		break;&lt;br /&gt;
		}&lt;br /&gt;
	# copy&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $arr_count1} {incr i} {&lt;br /&gt;
		set arr($i) $arr1($i)&lt;br /&gt;
		set arr_count $arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	}&lt;br /&gt;
set z [expr $z-1]&lt;br /&gt;
puts $out1 &amp;quot;if(res$z==$q)&lt;br /&gt;
		res$z=res$z+1;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;end&lt;br /&gt;
assign out = res$z\[$b:0\];&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;module atest_bench();&lt;br /&gt;
	reg  \[$b:0\] inp1,inp2;&lt;br /&gt;
	wire \[$b:0\] out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;	integer fori,forj,i,l;&lt;br /&gt;
	reg dummy;&lt;br /&gt;
		&lt;br /&gt;
mod_multiplier_$q m1(inp1,inp2,out);&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;initial&lt;br /&gt;
	begin&lt;br /&gt;
		begin&lt;br /&gt;
		for (fori=1; fori &amp;lt; $q; fori = fori + 1)&lt;br /&gt;
			for (forj=1; forj &amp;lt; $q; forj = forj+1)&lt;br /&gt;
				begin&lt;br /&gt;
					inp1=fori;&lt;br /&gt;
					inp2=forj;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					#1 dummy = 1;&lt;br /&gt;
					i=(fori * forj)\%$q;&lt;br /&gt;
					//\$display (\&amp;quot;a=(\%d) b=(\%d) Res=(\%d) expect=(\%d)\&amp;quot;,fori,forj,out,i);&lt;br /&gt;
					l = out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					if (l != i)&lt;br /&gt;
						begin&lt;br /&gt;
							\$display (\&amp;quot;Error i=(\%d) l=(\%d)\&amp;quot;,i,l);&lt;br /&gt;
						end&lt;br /&gt;
					#1 dummy = 1;&lt;br /&gt;
				end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
endmodule&amp;quot;	&lt;br /&gt;
}&lt;br /&gt;
close $out1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Библиотека стандартных ячеек ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NangateOpenCellLibrary_typical_conditional_nldm.lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Скрипт для запуска ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
analyze -f verilog &amp;lt;имя модуля&amp;gt;.v&lt;br /&gt;
elaborate &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
uniquify&lt;br /&gt;
current_design &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
check_design&lt;br /&gt;
set_load [load_of [get_lib_pins NangateOpenCellLibrary/INV_X4/A]] [all_outputs]&lt;br /&gt;
set_driving_cell -lib_cell DFFRS_X2 -library NangateOpenCellLibrary -pin Q  [all_inputs] &lt;br /&gt;
set_max_delay -to [all_outputs] 0 &lt;br /&gt;
set_max_area 0 &lt;br /&gt;
compile&lt;br /&gt;
report_timing -significant_digits 6 &amp;gt; timing_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_area &amp;gt; area_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_power -analysis_effort high &amp;gt; power_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
remove_design -all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Модули для эксперимента ==&lt;br /&gt;
&amp;lt;table style='border: 1px solid black; text-align: center;'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Битность&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для индексного умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для DS и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;15&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;61&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;63&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;251&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;255&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;509&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;511&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результаты ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:2n-1_area.jpg]]&lt;br /&gt;
[[Изображение:2n-1_power.jpg]]&lt;br /&gt;
[[Изображение:2n-1_timing.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Результаты]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/Main</id>
		<title>Main</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/Main"/>
				<updated>2013-02-25T14:16:50Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Результаты исследований */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Генераторы Verilog =&lt;br /&gt;
&lt;br /&gt;
== Базовые операции ==&lt;br /&gt;
&lt;br /&gt;
=== Сумматоры === &lt;br /&gt;
# [http://vscripts.ru/2012/generator-sum-2n-1.php Генератор Verilog для сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1] - реализация на базе двух сумматоров и мультиплексора (вариант Романа).&lt;br /&gt;
# [http://vscripts.ru/dima/adder.php Генератор Verilog для сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1] - полностью комбинационная реализация без мультиплексора (вариант Димы).&lt;br /&gt;
# [http://vscripts.ru/dima/all_adders.php?n=31 Генератор Verilog для сумматора по произвольному модулю] - реализация предлагающая оптимальный вариант.&lt;br /&gt;
&lt;br /&gt;
=== Умножители ===&lt;br /&gt;
# [http://vscripts.ru/2012/index-modulo-multiplication.php Генератор Verilog для умножения по модулю (метод 1)] - от 3 до 1000 по индексному методу (умножение заменено на сложение).&lt;br /&gt;
# [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php Генератор Verilog для умножения по модулю (метод 2)] - от 3 до 1000 по методу разности квадратов (X*Y = (1/4)*(X+Y)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; - (1/4)*(X-Y)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) &lt;br /&gt;
&lt;br /&gt;
=== Прямые и обратные преобразователи ===&lt;br /&gt;
# [http://vscripts.ru/2012/forward-converter-2supn-generator.php Генератор Verilog для прямого преобразователя в базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Романа). &lt;br /&gt;
# [http://vscripts.ru/dima/fwd_generator.php Генератор Verilog для прямого преобразователя в базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Димы). &lt;br /&gt;
# [http://vscripts.ru/2012/reverse-converter-2supn-generator.php Генератор Verilog для обратного преобразователя из базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - сверхбыстрый обратный преобразователь в позиционную систему.&lt;br /&gt;
&lt;br /&gt;
=== Другое ===&lt;br /&gt;
# [http://vscripts.ru/2012/generator-sum-kwain.php Генератор Verilog для модулярных операций по методу Квайна] - генератор операций сложения и умножения, для малых модулей (от 3 до 15).&lt;br /&gt;
# [http://vscripts.ru/2012/generator-sub-sqr.php Генератор Verilog для квадрата разности по модулю p] - состоит из вычитателя и таблицы квадратов (LUT). &lt;br /&gt;
&lt;br /&gt;
== SAD процессоры (поиск различия между двумя картинками) ==&lt;br /&gt;
# [http://vscripts.ru/2012/sad_generator.php Генератор Verilog для реализации позиционного SAD процессора] - поиск векторов компенсации движения в стандартном виде.&lt;br /&gt;
# [http://vscripts.ru/2012/sad_modular_generator.php Генератор Verilog для реализации модулярного SAD процессора] - поиск векторов компенсации движения в модулярном базисе вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1).&lt;br /&gt;
&lt;br /&gt;
== Формулы и математика ==&lt;br /&gt;
# [http://vscripts.ru/2012/prime-set-generator.php Генератор простых чисел Прота для реализации операции свёртки] - по методу БПФ в конечном поле.&lt;br /&gt;
# [http://vscripts.ru/2012/basis-15x16x17-simple.php Формула для обратного преобразователя для базиса вида (2n-1, 2n, 2n+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.&lt;br /&gt;
# [http://vscripts.ru/2012/basis-15x16x17.php Проверка формул обратного преобразователя для базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код. &lt;br /&gt;
# [http://vscripts.ru/2012/sad-modular-basis-calculator.php Генератор базисов для SAD процессоров разной размерности] - базисы специального вида и обычного. &lt;br /&gt;
&lt;br /&gt;
== Временные и тестовые скрипты ==&lt;br /&gt;
# [http://vscripts.ru/2012/prime.php Список случайных простых чисел] - для теста от 900 до 20000 &lt;br /&gt;
# [http://vscripts.ru/2012/multable.php Таблица умножения по модулю] - от 3 до 100 &lt;br /&gt;
&lt;br /&gt;
== Справочные материалы ==&lt;br /&gt;
* [[Система остаточных классов]] - определение&lt;br /&gt;
* [[Алгоритм Espresso]] - эффективный алгоритм для мнимизации булевых функций&lt;br /&gt;
* [[Введение в АЦП]] - описание видов аналого-цифровых преобразователей (двоичных и модулярных)&lt;br /&gt;
* [[Полезная литература]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Результаты исследований ==&lt;br /&gt;
# 2013.02 - [[Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.]]&lt;br /&gt;
# 2013.02 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Espresso]]&lt;br /&gt;
# 2013.01 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Квайна]]&lt;br /&gt;
# 2012.12 - [[Результат сравнения SAD-процессоров модулярный vs позиционный (промежуточный отчет 12.2012)]]&lt;br /&gt;
# 2012.12 - [[Исследование позиционного умножения на нашей библиотеке]]&lt;br /&gt;
# 2012.12 - [[Сравнение разных методов умножения по модулю]] - сравнение позиционного, [http://vscripts.ru/2012/index-modulo-multiplication.php индексного умножителя] и [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php умножителя по методу разности квадратов]&lt;br /&gt;
# 2012.12 - [[Сравнение разных методов сложения по модулю 2^n-1]] (модуль вида 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1) - сравнение позиционного сумматора и двух вариантов реализации сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 ([http://vscripts.ru/2012/generator-sum-2n-1.php Генератор 1], [http://vscripts.ru/dima/adder.php Генератор 2]).&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/Main</id>
		<title>Main</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/Main"/>
				<updated>2013-02-25T14:16:11Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Результаты исследований */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Генераторы Verilog =&lt;br /&gt;
&lt;br /&gt;
== Базовые операции ==&lt;br /&gt;
&lt;br /&gt;
=== Сумматоры === &lt;br /&gt;
# [http://vscripts.ru/2012/generator-sum-2n-1.php Генератор Verilog для сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1] - реализация на базе двух сумматоров и мультиплексора (вариант Романа).&lt;br /&gt;
# [http://vscripts.ru/dima/adder.php Генератор Verilog для сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1] - полностью комбинационная реализация без мультиплексора (вариант Димы).&lt;br /&gt;
# [http://vscripts.ru/dima/all_adders.php?n=31 Генератор Verilog для сумматора по произвольному модулю] - реализация предлагающая оптимальный вариант.&lt;br /&gt;
&lt;br /&gt;
=== Умножители ===&lt;br /&gt;
# [http://vscripts.ru/2012/index-modulo-multiplication.php Генератор Verilog для умножения по модулю (метод 1)] - от 3 до 1000 по индексному методу (умножение заменено на сложение).&lt;br /&gt;
# [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php Генератор Verilog для умножения по модулю (метод 2)] - от 3 до 1000 по методу разности квадратов (X*Y = (1/4)*(X+Y)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt; - (1/4)*(X-Y)&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;) &lt;br /&gt;
&lt;br /&gt;
=== Прямые и обратные преобразователи ===&lt;br /&gt;
# [http://vscripts.ru/2012/forward-converter-2supn-generator.php Генератор Verilog для прямого преобразователя в базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Романа). &lt;br /&gt;
# [http://vscripts.ru/dima/fwd_generator.php Генератор Verilog для прямого преобразователя в базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - прямой преобразователь из позиционной системы счисления в систему остаточных классов (версия Димы). &lt;br /&gt;
# [http://vscripts.ru/2012/reverse-converter-2supn-generator.php Генератор Verilog для обратного преобразователя из базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - сверхбыстрый обратный преобразователь в позиционную систему.&lt;br /&gt;
&lt;br /&gt;
=== Другое ===&lt;br /&gt;
# [http://vscripts.ru/2012/generator-sum-kwain.php Генератор Verilog для модулярных операций по методу Квайна] - генератор операций сложения и умножения, для малых модулей (от 3 до 15).&lt;br /&gt;
# [http://vscripts.ru/2012/generator-sub-sqr.php Генератор Verilog для квадрата разности по модулю p] - состоит из вычитателя и таблицы квадратов (LUT). &lt;br /&gt;
&lt;br /&gt;
== SAD процессоры (поиск различия между двумя картинками) ==&lt;br /&gt;
# [http://vscripts.ru/2012/sad_generator.php Генератор Verilog для реализации позиционного SAD процессора] - поиск векторов компенсации движения в стандартном виде.&lt;br /&gt;
# [http://vscripts.ru/2012/sad_modular_generator.php Генератор Verilog для реализации модулярного SAD процессора] - поиск векторов компенсации движения в модулярном базисе вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1).&lt;br /&gt;
&lt;br /&gt;
== Формулы и математика ==&lt;br /&gt;
# [http://vscripts.ru/2012/prime-set-generator.php Генератор простых чисел Прота для реализации операции свёртки] - по методу БПФ в конечном поле.&lt;br /&gt;
# [http://vscripts.ru/2012/basis-15x16x17-simple.php Формула для обратного преобразователя для базиса вида (2n-1, 2n, 2n+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код.&lt;br /&gt;
# [http://vscripts.ru/2012/basis-15x16x17.php Проверка формул обратного преобразователя для базиса вида (2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;, 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;+1)] - обратный преобразователь для спец. системы модулей из системы остаточных классов в позиционный код. &lt;br /&gt;
# [http://vscripts.ru/2012/sad-modular-basis-calculator.php Генератор базисов для SAD процессоров разной размерности] - базисы специального вида и обычного. &lt;br /&gt;
&lt;br /&gt;
== Временные и тестовые скрипты ==&lt;br /&gt;
# [http://vscripts.ru/2012/prime.php Список случайных простых чисел] - для теста от 900 до 20000 &lt;br /&gt;
# [http://vscripts.ru/2012/multable.php Таблица умножения по модулю] - от 3 до 100 &lt;br /&gt;
&lt;br /&gt;
== Справочные материалы ==&lt;br /&gt;
* [[Система остаточных классов]] - определение&lt;br /&gt;
* [[Алгоритм Espresso]] - эффективный алгоритм для мнимизации булевых функций&lt;br /&gt;
* [[Введение в АЦП]] - описание видов аналого-цифровых преобразователей (двоичных и модулярных)&lt;br /&gt;
* [[Полезная литература]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Результаты исследований ==&lt;br /&gt;
# 2013.02 - [[Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный]]&lt;br /&gt;
# 2013.02 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Espresso]]&lt;br /&gt;
# 2013.01 - [[Результат сравнения модулярных сумматоров в стандартном исполнении и по методу Квайна]]&lt;br /&gt;
# 2012.12 - [[Результат сравнения SAD-процессоров модулярный vs позиционный (промежуточный отчет 12.2012)]]&lt;br /&gt;
# 2012.12 - [[Исследование позиционного умножения на нашей библиотеке]]&lt;br /&gt;
# 2012.12 - [[Сравнение разных методов умножения по модулю]] - сравнение позиционного, [http://vscripts.ru/2012/index-modulo-multiplication.php индексного умножителя] и [http://vscripts.ru/2012/index-modulo-multiplication-sqr.php умножителя по методу разности квадратов]&lt;br /&gt;
# 2012.12 - [[Сравнение разных методов сложения по модулю 2^n-1]] (модуль вида 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1) - сравнение позиционного сумматора и двух вариантов реализации сумматора по модулю 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 ([http://vscripts.ru/2012/generator-sum-2n-1.php Генератор 1], [http://vscripts.ru/dima/adder.php Генератор 2]).&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9.</id>
		<title>Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9."/>
				<updated>2013-02-25T14:14:30Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Модули для эксперимента */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На основе [http://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E прошлого исследования] было добавлено сравнение результатов с умножителем по модулю вида 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1.&lt;br /&gt;
Сравнение производилось для модулей с разрядностью от 2 до 10 бит.&lt;br /&gt;
Запуск производился на Synopsys Design Compiler. &lt;br /&gt;
&lt;br /&gt;
== Генератор Verilog-модулей ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for { set n 2} {$n &amp;lt; 11} {incr n} {&lt;br /&gt;
&lt;br /&gt;
set q [expr round(pow(2,$n)-1)]&lt;br /&gt;
set b [expr $n-1]&lt;br /&gt;
&lt;br /&gt;
set file1 &amp;quot;mod_multiplier_$q.v&amp;quot;&lt;br /&gt;
set out1 [open $file1 &amp;quot;w&amp;quot;]&lt;br /&gt;
puts $out1 &amp;quot;module mod_multiplier_$q (a,b,out);&lt;br /&gt;
output wire \[$b:0\] out;&lt;br /&gt;
input  wire \[$b:0\] a,b;&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
	for {set pt 0} {$pt &amp;lt; $n} {incr pt} {&lt;br /&gt;
		puts $out1 &amp;quot;wire \[$b:0\] p_out$pt;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set r 0} {$r &amp;lt; $b} {incr r} {&lt;br /&gt;
		puts $out1 &amp;quot;reg  \[$n:0\] res$r;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	puts $out1 &amp;quot;&lt;br /&gt;
	&amp;quot;&lt;br /&gt;
		for {set j 0} {$j &amp;lt; $n} {incr j} {&lt;br /&gt;
			set k [expr ($j -$i + $n)%$n]&lt;br /&gt;
			puts $out1 &amp;quot;assign p_out$i\[$j\] = a\[$k\] &amp;amp;&amp;amp; b\[$i\];&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
puts $out1 &amp;quot;&lt;br /&gt;
always @ (*)&lt;br /&gt;
begin&amp;quot;&lt;br /&gt;
for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	set arr($i) &amp;quot;p_out$i&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
	set arr_count $n&lt;br /&gt;
	set z 0&lt;br /&gt;
		&lt;br /&gt;
	while {1} {&lt;br /&gt;
		set arr_count1 0&lt;br /&gt;
		for {set i 0} {$i&amp;lt; [expr $arr_count-1]} {incr i 2} {&lt;br /&gt;
			set p_internal &amp;quot;res$z&amp;quot;&lt;br /&gt;
			set tmp1 [expr $i+1]&lt;br /&gt;
			puts $out1 &amp;quot;	$p_internal=$arr($i)+$arr($tmp1);&amp;quot;&lt;br /&gt;
			set RES &amp;quot;res$z\[$n\]&amp;quot;&lt;br /&gt;
			puts $out1 &amp;quot;	if($RES==1)&lt;br /&gt;
	begin&lt;br /&gt;
	res$z\[$n\]=0;&lt;br /&gt;
	res$z=res$z+1;&lt;br /&gt;
	end&amp;quot;&lt;br /&gt;
			set arr1($arr_count1) $p_internal&lt;br /&gt;
			incr arr_count1	&lt;br /&gt;
			incr z&lt;br /&gt;
		}&lt;br /&gt;
	set copy [expr $arr_count%2]&lt;br /&gt;
	if {$copy == 1} {&lt;br /&gt;
		set count2 [expr $arr_count-1]&lt;br /&gt;
		set arr1($arr_count1)  $arr($count2)&lt;br /&gt;
		incr arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	if {$arr_count1 &amp;lt;= 1} {&lt;br /&gt;
		break;&lt;br /&gt;
		}&lt;br /&gt;
	# copy&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $arr_count1} {incr i} {&lt;br /&gt;
		set arr($i) $arr1($i)&lt;br /&gt;
		set arr_count $arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	}&lt;br /&gt;
set z [expr $z-1]&lt;br /&gt;
puts $out1 &amp;quot;if(res$z==$q)&lt;br /&gt;
		res$z=res$z+1;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;end&lt;br /&gt;
assign out = res$z\[$b:0\];&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;module atest_bench();&lt;br /&gt;
	reg  \[$b:0\] inp1,inp2;&lt;br /&gt;
	wire \[$b:0\] out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;	integer fori,forj,i,l;&lt;br /&gt;
	reg dummy;&lt;br /&gt;
		&lt;br /&gt;
mod_multiplier_$q m1(inp1,inp2,out);&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;initial&lt;br /&gt;
	begin&lt;br /&gt;
		begin&lt;br /&gt;
		for (fori=1; fori &amp;lt; $q; fori = fori + 1)&lt;br /&gt;
			for (forj=1; forj &amp;lt; $q; forj = forj+1)&lt;br /&gt;
				begin&lt;br /&gt;
					inp1=fori;&lt;br /&gt;
					inp2=forj;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					#1 dummy = 1;&lt;br /&gt;
					i=(fori * forj)\%$q;&lt;br /&gt;
					//\$display (\&amp;quot;a=(\%d) b=(\%d) Res=(\%d) expect=(\%d)\&amp;quot;,fori,forj,out,i);&lt;br /&gt;
					l = out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					if (l != i)&lt;br /&gt;
						begin&lt;br /&gt;
							\$display (\&amp;quot;Error i=(\%d) l=(\%d)\&amp;quot;,i,l);&lt;br /&gt;
						end&lt;br /&gt;
					#1 dummy = 1;&lt;br /&gt;
				end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
endmodule&amp;quot;	&lt;br /&gt;
}&lt;br /&gt;
close $out1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Библиотека стандартных ячеек ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NangateOpenCellLibrary_typical_conditional_nldm.lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Скрипт для запуска ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
analyze -f verilog &amp;lt;имя модуля&amp;gt;.v&lt;br /&gt;
elaborate &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
uniquify&lt;br /&gt;
current_design &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
check_design&lt;br /&gt;
set_load [load_of [get_lib_pins NangateOpenCellLibrary/INV_X4/A]] [all_outputs]&lt;br /&gt;
set_driving_cell -lib_cell DFFRS_X2 -library NangateOpenCellLibrary -pin Q  [all_inputs] &lt;br /&gt;
set_max_delay -to [all_outputs] 0 &lt;br /&gt;
set_max_area 0 &lt;br /&gt;
compile&lt;br /&gt;
report_timing -significant_digits 6 &amp;gt; timing_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_area &amp;gt; area_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_power -analysis_effort high &amp;gt; power_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
remove_design -all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Модули для эксперимента ==&lt;br /&gt;
&amp;lt;table style='border: 1px solid black; text-align: center;'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Битность&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для индексного умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для DS и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;15&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;61&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;63&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;251&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;255&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;509&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;511&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результаты ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:2n-1_area.jpg]]&lt;br /&gt;
[[Изображение:2n-1_power.jpg]]&lt;br /&gt;
[[Изображение:2n-1_timing.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Результаты]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9.</id>
		<title>Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9."/>
				<updated>2013-02-25T14:14:07Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Модули для эксперимента */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На основе [http://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E прошлого исследования] было добавлено сравнение результатов с умножителем по модулю вида 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1.&lt;br /&gt;
Сравнение производилось для модулей с разрядностью от 2 до 10 бит.&lt;br /&gt;
Запуск производился на Synopsys Design Compiler. &lt;br /&gt;
&lt;br /&gt;
== Генератор Verilog-модулей ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for { set n 2} {$n &amp;lt; 11} {incr n} {&lt;br /&gt;
&lt;br /&gt;
set q [expr round(pow(2,$n)-1)]&lt;br /&gt;
set b [expr $n-1]&lt;br /&gt;
&lt;br /&gt;
set file1 &amp;quot;mod_multiplier_$q.v&amp;quot;&lt;br /&gt;
set out1 [open $file1 &amp;quot;w&amp;quot;]&lt;br /&gt;
puts $out1 &amp;quot;module mod_multiplier_$q (a,b,out);&lt;br /&gt;
output wire \[$b:0\] out;&lt;br /&gt;
input  wire \[$b:0\] a,b;&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
	for {set pt 0} {$pt &amp;lt; $n} {incr pt} {&lt;br /&gt;
		puts $out1 &amp;quot;wire \[$b:0\] p_out$pt;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set r 0} {$r &amp;lt; $b} {incr r} {&lt;br /&gt;
		puts $out1 &amp;quot;reg  \[$n:0\] res$r;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	puts $out1 &amp;quot;&lt;br /&gt;
	&amp;quot;&lt;br /&gt;
		for {set j 0} {$j &amp;lt; $n} {incr j} {&lt;br /&gt;
			set k [expr ($j -$i + $n)%$n]&lt;br /&gt;
			puts $out1 &amp;quot;assign p_out$i\[$j\] = a\[$k\] &amp;amp;&amp;amp; b\[$i\];&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
puts $out1 &amp;quot;&lt;br /&gt;
always @ (*)&lt;br /&gt;
begin&amp;quot;&lt;br /&gt;
for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	set arr($i) &amp;quot;p_out$i&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
	set arr_count $n&lt;br /&gt;
	set z 0&lt;br /&gt;
		&lt;br /&gt;
	while {1} {&lt;br /&gt;
		set arr_count1 0&lt;br /&gt;
		for {set i 0} {$i&amp;lt; [expr $arr_count-1]} {incr i 2} {&lt;br /&gt;
			set p_internal &amp;quot;res$z&amp;quot;&lt;br /&gt;
			set tmp1 [expr $i+1]&lt;br /&gt;
			puts $out1 &amp;quot;	$p_internal=$arr($i)+$arr($tmp1);&amp;quot;&lt;br /&gt;
			set RES &amp;quot;res$z\[$n\]&amp;quot;&lt;br /&gt;
			puts $out1 &amp;quot;	if($RES==1)&lt;br /&gt;
	begin&lt;br /&gt;
	res$z\[$n\]=0;&lt;br /&gt;
	res$z=res$z+1;&lt;br /&gt;
	end&amp;quot;&lt;br /&gt;
			set arr1($arr_count1) $p_internal&lt;br /&gt;
			incr arr_count1	&lt;br /&gt;
			incr z&lt;br /&gt;
		}&lt;br /&gt;
	set copy [expr $arr_count%2]&lt;br /&gt;
	if {$copy == 1} {&lt;br /&gt;
		set count2 [expr $arr_count-1]&lt;br /&gt;
		set arr1($arr_count1)  $arr($count2)&lt;br /&gt;
		incr arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	if {$arr_count1 &amp;lt;= 1} {&lt;br /&gt;
		break;&lt;br /&gt;
		}&lt;br /&gt;
	# copy&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $arr_count1} {incr i} {&lt;br /&gt;
		set arr($i) $arr1($i)&lt;br /&gt;
		set arr_count $arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	}&lt;br /&gt;
set z [expr $z-1]&lt;br /&gt;
puts $out1 &amp;quot;if(res$z==$q)&lt;br /&gt;
		res$z=res$z+1;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;end&lt;br /&gt;
assign out = res$z\[$b:0\];&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;module atest_bench();&lt;br /&gt;
	reg  \[$b:0\] inp1,inp2;&lt;br /&gt;
	wire \[$b:0\] out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;	integer fori,forj,i,l;&lt;br /&gt;
	reg dummy;&lt;br /&gt;
		&lt;br /&gt;
mod_multiplier_$q m1(inp1,inp2,out);&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;initial&lt;br /&gt;
	begin&lt;br /&gt;
		begin&lt;br /&gt;
		for (fori=1; fori &amp;lt; $q; fori = fori + 1)&lt;br /&gt;
			for (forj=1; forj &amp;lt; $q; forj = forj+1)&lt;br /&gt;
				begin&lt;br /&gt;
					inp1=fori;&lt;br /&gt;
					inp2=forj;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					#1 dummy = 1;&lt;br /&gt;
					i=(fori * forj)\%$q;&lt;br /&gt;
					//\$display (\&amp;quot;a=(\%d) b=(\%d) Res=(\%d) expect=(\%d)\&amp;quot;,fori,forj,out,i);&lt;br /&gt;
					l = out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					if (l != i)&lt;br /&gt;
						begin&lt;br /&gt;
							\$display (\&amp;quot;Error i=(\%d) l=(\%d)\&amp;quot;,i,l);&lt;br /&gt;
						end&lt;br /&gt;
					#1 dummy = 1;&lt;br /&gt;
				end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
endmodule&amp;quot;	&lt;br /&gt;
}&lt;br /&gt;
close $out1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Библиотека стандартных ячеек ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NangateOpenCellLibrary_typical_conditional_nldm.lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Скрипт для запуска ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
analyze -f verilog &amp;lt;имя модуля&amp;gt;.v&lt;br /&gt;
elaborate &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
uniquify&lt;br /&gt;
current_design &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
check_design&lt;br /&gt;
set_load [load_of [get_lib_pins NangateOpenCellLibrary/INV_X4/A]] [all_outputs]&lt;br /&gt;
set_driving_cell -lib_cell DFFRS_X2 -library NangateOpenCellLibrary -pin Q  [all_inputs] &lt;br /&gt;
set_max_delay -to [all_outputs] 0 &lt;br /&gt;
set_max_area 0 &lt;br /&gt;
compile&lt;br /&gt;
report_timing -significant_digits 6 &amp;gt; timing_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_area &amp;gt; area_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_power -analysis_effort high &amp;gt; power_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
remove_design -all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Модули для эксперимента ==&lt;br /&gt;
&amp;lt;table style='border: 1px solid black; text-align: center;'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Битность&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для индексного умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для DS и 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;15&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;15&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;61&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;63&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;63&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;251&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;255&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;255&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;509&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;511&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;511&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результаты ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:2n-1_area.jpg]]&lt;br /&gt;
[[Изображение:2n-1_power.jpg]]&lt;br /&gt;
[[Изображение:2n-1_timing.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Результаты]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9.</id>
		<title>Сравнение разных методов умножения по модулю - 2^n-1,индексный,по методу разности квадратов и позиционный.</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_-_2%5En-1,%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%BD%D1%8B%D0%B9,%D0%BF%D0%BE_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%83_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%BE%D0%B2_%D0%B8_%D0%BF%D0%BE%D0%B7%D0%B8%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D0%B9."/>
				<updated>2013-02-25T14:13:08Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: Новая страница: «На основе [http://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4…»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;На основе [http://vscripts.ru/w/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D1%80%D0%B0%D0%B7%D0%BD%D1%8B%D1%85_%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D0%BE%D0%B2_%D1%83%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E прошлого исследования] было добавлено сравнение результатов с умножителем по модулю вида 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1.&lt;br /&gt;
Сравнение производилось для модулей с разрядностью от 2 до 10 бит.&lt;br /&gt;
Запуск производился на Synopsys Design Compiler. &lt;br /&gt;
&lt;br /&gt;
== Генератор Verilog-модулей ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
for { set n 2} {$n &amp;lt; 11} {incr n} {&lt;br /&gt;
&lt;br /&gt;
set q [expr round(pow(2,$n)-1)]&lt;br /&gt;
set b [expr $n-1]&lt;br /&gt;
&lt;br /&gt;
set file1 &amp;quot;mod_multiplier_$q.v&amp;quot;&lt;br /&gt;
set out1 [open $file1 &amp;quot;w&amp;quot;]&lt;br /&gt;
puts $out1 &amp;quot;module mod_multiplier_$q (a,b,out);&lt;br /&gt;
output wire \[$b:0\] out;&lt;br /&gt;
input  wire \[$b:0\] a,b;&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
	for {set pt 0} {$pt &amp;lt; $n} {incr pt} {&lt;br /&gt;
		puts $out1 &amp;quot;wire \[$b:0\] p_out$pt;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set r 0} {$r &amp;lt; $b} {incr r} {&lt;br /&gt;
		puts $out1 &amp;quot;reg  \[$n:0\] res$r;&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	puts $out1 &amp;quot;&lt;br /&gt;
	&amp;quot;&lt;br /&gt;
		for {set j 0} {$j &amp;lt; $n} {incr j} {&lt;br /&gt;
			set k [expr ($j -$i + $n)%$n]&lt;br /&gt;
			puts $out1 &amp;quot;assign p_out$i\[$j\] = a\[$k\] &amp;amp;&amp;amp; b\[$i\];&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
puts $out1 &amp;quot;&lt;br /&gt;
always @ (*)&lt;br /&gt;
begin&amp;quot;&lt;br /&gt;
for {set i 0} {$i &amp;lt; $n} {incr i} {&lt;br /&gt;
	set arr($i) &amp;quot;p_out$i&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
	set arr_count $n&lt;br /&gt;
	set z 0&lt;br /&gt;
		&lt;br /&gt;
	while {1} {&lt;br /&gt;
		set arr_count1 0&lt;br /&gt;
		for {set i 0} {$i&amp;lt; [expr $arr_count-1]} {incr i 2} {&lt;br /&gt;
			set p_internal &amp;quot;res$z&amp;quot;&lt;br /&gt;
			set tmp1 [expr $i+1]&lt;br /&gt;
			puts $out1 &amp;quot;	$p_internal=$arr($i)+$arr($tmp1);&amp;quot;&lt;br /&gt;
			set RES &amp;quot;res$z\[$n\]&amp;quot;&lt;br /&gt;
			puts $out1 &amp;quot;	if($RES==1)&lt;br /&gt;
	begin&lt;br /&gt;
	res$z\[$n\]=0;&lt;br /&gt;
	res$z=res$z+1;&lt;br /&gt;
	end&amp;quot;&lt;br /&gt;
			set arr1($arr_count1) $p_internal&lt;br /&gt;
			incr arr_count1	&lt;br /&gt;
			incr z&lt;br /&gt;
		}&lt;br /&gt;
	set copy [expr $arr_count%2]&lt;br /&gt;
	if {$copy == 1} {&lt;br /&gt;
		set count2 [expr $arr_count-1]&lt;br /&gt;
		set arr1($arr_count1)  $arr($count2)&lt;br /&gt;
		incr arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	if {$arr_count1 &amp;lt;= 1} {&lt;br /&gt;
		break;&lt;br /&gt;
		}&lt;br /&gt;
	# copy&lt;br /&gt;
	for {set i 0} {$i &amp;lt; $arr_count1} {incr i} {&lt;br /&gt;
		set arr($i) $arr1($i)&lt;br /&gt;
		set arr_count $arr_count1&lt;br /&gt;
	}&lt;br /&gt;
	}&lt;br /&gt;
set z [expr $z-1]&lt;br /&gt;
puts $out1 &amp;quot;if(res$z==$q)&lt;br /&gt;
		res$z=res$z+1;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;end&lt;br /&gt;
assign out = res$z\[$b:0\];&lt;br /&gt;
endmodule&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;module atest_bench();&lt;br /&gt;
	reg  \[$b:0\] inp1,inp2;&lt;br /&gt;
	wire \[$b:0\] out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;	integer fori,forj,i,l;&lt;br /&gt;
	reg dummy;&lt;br /&gt;
		&lt;br /&gt;
mod_multiplier_$q m1(inp1,inp2,out);&lt;br /&gt;
&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;initial&lt;br /&gt;
	begin&lt;br /&gt;
		begin&lt;br /&gt;
		for (fori=1; fori &amp;lt; $q; fori = fori + 1)&lt;br /&gt;
			for (forj=1; forj &amp;lt; $q; forj = forj+1)&lt;br /&gt;
				begin&lt;br /&gt;
					inp1=fori;&lt;br /&gt;
					inp2=forj;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					#1 dummy = 1;&lt;br /&gt;
					i=(fori * forj)\%$q;&lt;br /&gt;
					//\$display (\&amp;quot;a=(\%d) b=(\%d) Res=(\%d) expect=(\%d)\&amp;quot;,fori,forj,out,i);&lt;br /&gt;
					l = out;&amp;quot;&lt;br /&gt;
puts $out1 &amp;quot;					if (l != i)&lt;br /&gt;
						begin&lt;br /&gt;
							\$display (\&amp;quot;Error i=(\%d) l=(\%d)\&amp;quot;,i,l);&lt;br /&gt;
						end&lt;br /&gt;
					#1 dummy = 1;&lt;br /&gt;
				end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
endmodule&amp;quot;	&lt;br /&gt;
}&lt;br /&gt;
close $out1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Библиотека стандартных ячеек ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NangateOpenCellLibrary_typical_conditional_nldm.lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Скрипт для запуска ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
analyze -f verilog &amp;lt;имя модуля&amp;gt;.v&lt;br /&gt;
elaborate &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
uniquify&lt;br /&gt;
current_design &amp;lt;имя модуля&amp;gt;&lt;br /&gt;
check_design&lt;br /&gt;
set_load [load_of [get_lib_pins NangateOpenCellLibrary/INV_X4/A]] [all_outputs]&lt;br /&gt;
set_driving_cell -lib_cell DFFRS_X2 -library NangateOpenCellLibrary -pin Q  [all_inputs] &lt;br /&gt;
set_max_delay -to [all_outputs] 0 &lt;br /&gt;
set_max_area 0 &lt;br /&gt;
compile&lt;br /&gt;
report_timing -significant_digits 6 &amp;gt; timing_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_area &amp;gt; area_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
report_power -analysis_effort high &amp;gt; power_&amp;lt;имя модуля&amp;gt;.rpt&lt;br /&gt;
remove_design -all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Модули для эксперимента ==&lt;br /&gt;
&amp;lt;table style='border: 1px solid black; text-align: center;'&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Битность&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для индексного умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для DS умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black; padding: 2px;'&amp;gt;Модуль для 2&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;-1 умножителя&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;13&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;15&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;15&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;31&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;61&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;63&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;63&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;127&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;251&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;255&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;255&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;509&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;511&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td style='border: 1px solid black;'&amp;gt;511&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результаты ==&lt;br /&gt;
&lt;br /&gt;
[[Изображение:2n-1_area.jpg]]&lt;br /&gt;
[[Изображение:2n-1_power.jpg]]&lt;br /&gt;
[[Изображение:2n-1_timing.jpg]]&lt;br /&gt;
&lt;br /&gt;
[[Категория:Результаты]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:2n-1_timing.jpg</id>
		<title>Файл:2n-1 timing.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:2n-1_timing.jpg"/>
				<updated>2013-02-25T14:13:02Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:2n-1_power.jpg</id>
		<title>Файл:2n-1 power.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:2n-1_power.jpg"/>
				<updated>2013-02-25T14:12:51Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:2n-1_area.jpg</id>
		<title>Файл:2n-1 area.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:2n-1_area.jpg"/>
				<updated>2013-02-25T14:12:42Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-24T15:30:08Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* АЦП последовательного приближения (Successive Approximation ADC, SAR ADC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости использовать ЦАП.&lt;br /&gt;
**Меньшая входная ёмкость.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькое разрешение.&lt;br /&gt;
**Энергопотребление экспоненциально растёт с ростом разрешения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Меньшая аппаратная сложность.&lt;br /&gt;
**Высокая пропускная способность.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Необходимость калибровки.&lt;br /&gt;
**Необходимость использования устройства выборки/хранения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП с временным уплотнением (Time-Interleaved ADC) ===&lt;br /&gt;
&lt;br /&gt;
В данной архитектуре используется временное распараллеливание вычислений. На рисунке представлен пример реализации 3-канального АЦП.Тактовый сигнал O0 в 3 раза быстрее чем O1,O2,O3.Первый канал обрабатывает текущие входные данные, в то время как 2 и 3 обрабатывают данные с предыдущих циклов. В данной схеме задержка определяется только самым первым тактовым сигналом, поэтому теоретически можно увеличивать скорость работы и точность при наращивании числа каналов и сохраняя линейный рост энергопотребления и занимаемой площади на кристалле. Однако, это сложно реализовать из-за наличия шумов в тактовых сигналов.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Time-interleaved_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП последовательного счёта (Folding ADC) ===&lt;br /&gt;
&lt;br /&gt;
Одним из способов уменьшить количество предусилителей и сложность декодера это применение накопления.Иногда для упрощение общей архитектуры накопление используется совместно с интерполяцией. &lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Достаточно высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости в ЦАП.&lt;br /&gt;
**Уменьшение энергопотребления, площади и входной ёмкости.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Ограниченное разрешение.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Folding ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
== АЦП последовательного приближения (Successive Approximation ADC, SAR ADC) ==&lt;br /&gt;
&lt;br /&gt;
АЦП последовательного приближения реализует [http://www.goldenmuseum.com/2015AMT_rus.html алгоритм «взвешивания»], восходящий еще к Фибоначчи.&lt;br /&gt;
Он измеряет величину входного сигнала, осуществляя ряд последовательных «взвешиваний», то есть сравнений величины входного напряжения с рядом величин, генерируемых следующим образом:&lt;br /&gt;
&lt;br /&gt;
1.На выходе ЦАП устанавливается половина опорного напряжения.&lt;br /&gt;
&lt;br /&gt;
2.Если сигнал больше этой величины, то он сравнивается с напряжением, лежащим посередине оставшегося интервала, т.е., в данном случае, 3/4 опорного. Если сигнал меньше установленного уровня, то следующее сравнение будет производиться с меньшей половиной оставшегося интервала (т.е. с уровнем 1/4 опорного).&lt;br /&gt;
&lt;br /&gt;
3.Шаг 2 повторяется N раз. Число шагов равно числу бит в результате.&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое разрешение.&lt;br /&gt;
**Маленькая входная ёмкость.&lt;br /&gt;
**Аппаратная простота и маленькое энергопотребление.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькая скорость по сравнению с параллельным АЦП.&lt;br /&gt;
**Необходимость в ЦАП.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Successive_approximation_ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-24T15:27:59Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* АЦП последовательного приближения (Successive Approximation ADC, SAR ADC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости использовать ЦАП.&lt;br /&gt;
**Меньшая входная ёмкость.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькое разрешение.&lt;br /&gt;
**Энергопотребление экспоненциально растёт с ростом разрешения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Меньшая аппаратная сложность.&lt;br /&gt;
**Высокая пропускная способность.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Необходимость калибровки.&lt;br /&gt;
**Необходимость использования устройства выборки/хранения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП с временным уплотнением (Time-Interleaved ADC) ===&lt;br /&gt;
&lt;br /&gt;
В данной архитектуре используется временное распараллеливание вычислений. На рисунке представлен пример реализации 3-канального АЦП.Тактовый сигнал O0 в 3 раза быстрее чем O1,O2,O3.Первый канал обрабатывает текущие входные данные, в то время как 2 и 3 обрабатывают данные с предыдущих циклов. В данной схеме задержка определяется только самым первым тактовым сигналом, поэтому теоретически можно увеличивать скорость работы и точность при наращивании числа каналов и сохраняя линейный рост энергопотребления и занимаемой площади на кристалле. Однако, это сложно реализовать из-за наличия шумов в тактовых сигналов.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Time-interleaved_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП последовательного счёта (Folding ADC) ===&lt;br /&gt;
&lt;br /&gt;
Одним из способов уменьшить количество предусилителей и сложность декодера это применение накопления.Иногда для упрощение общей архитектуры накопление используется совместно с интерполяцией. &lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Достаточно высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости в ЦАП.&lt;br /&gt;
**Уменьшение энергопотребления, площади и входной ёмкости.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Ограниченное разрешение.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Folding ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
== АЦП последовательного приближения (Successive Approximation ADC, SAR ADC) ==&lt;br /&gt;
&lt;br /&gt;
АЦП последовательного приближения реализует [http://www.goldenmuseum.com/2015AMT_rus.html алгоритм «взвешивания»], восходящий еще к Фибоначчи.&lt;br /&gt;
Он измеряет величину входного сигнала, осуществляя ряд последовательных «взвешиваний», то есть сравнений величины входного напряжения с рядом величин, генерируемых следующим образом:&lt;br /&gt;
&lt;br /&gt;
1. на первом шаге на выходе встроенного цифро-аналогового преобразователя устанавливается величина, равная 1/2Uref (здесь и далее мы предполагаем, что сигнал находится в интервале (0 – Uref).&lt;br /&gt;
&lt;br /&gt;
2. если сигнал больше этой величины, то он сравнивается с напряжением, лежащим посередине оставшегося интервала, т.е., в данном случае, 3/4Uref. Если сигнал меньше установленного уровня, то следующее сравнение будет производиться с меньшей половиной оставшегося интервала (т.е. с уровнем 1/4Uref).&lt;br /&gt;
&lt;br /&gt;
3. Шаг 2 повторяется N раз. Таким образом, N сравнений («взвешиваний») порождает N бит результата&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое разрешение.&lt;br /&gt;
**Маленькая входная ёмкость.&lt;br /&gt;
**Аппаратная простота и маленькое энергопотребление.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькая скорость по сравнению с параллельным АЦП.&lt;br /&gt;
**Необходимость в ЦАП.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Successive_approximation_ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-24T15:23:33Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости использовать ЦАП.&lt;br /&gt;
**Меньшая входная ёмкость.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькое разрешение.&lt;br /&gt;
**Энергопотребление экспоненциально растёт с ростом разрешения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Меньшая аппаратная сложность.&lt;br /&gt;
**Высокая пропускная способность.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Необходимость калибровки.&lt;br /&gt;
**Необходимость использования устройства выборки/хранения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП с временным уплотнением (Time-Interleaved ADC) ===&lt;br /&gt;
&lt;br /&gt;
В данной архитектуре используется временное распараллеливание вычислений. На рисунке представлен пример реализации 3-канального АЦП.Тактовый сигнал O0 в 3 раза быстрее чем O1,O2,O3.Первый канал обрабатывает текущие входные данные, в то время как 2 и 3 обрабатывают данные с предыдущих циклов. В данной схеме задержка определяется только самым первым тактовым сигналом, поэтому теоретически можно увеличивать скорость работы и точность при наращивании числа каналов и сохраняя линейный рост энергопотребления и занимаемой площади на кристалле. Однако, это сложно реализовать из-за наличия шумов в тактовых сигналов.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Time-interleaved_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП последовательного счёта (Folding ADC) ===&lt;br /&gt;
&lt;br /&gt;
Одним из способов уменьшить количество предусилителей и сложность декодера это применение накопления.Иногда для упрощение общей архитектуры накопление используется совместно с интерполяцией. &lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Достаточно высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости в ЦАП.&lt;br /&gt;
**Уменьшение энергопотребления, площади и входной ёмкости.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Ограниченное разрешение.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Folding ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
== АЦП последовательного приближения (Successive Approximation ADC, SAR ADC) ==&lt;br /&gt;
&lt;br /&gt;
АЦП последовательного приближения реализует [http://www.goldenmuseum.com/2015AMT_rus.html алгоритм «взвешивания»], восходящий еще к Фибоначчи.&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое разрешение.&lt;br /&gt;
**Маленькая входная ёмкость.&lt;br /&gt;
**Аппаратная простота и маленькое энергопотребление.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькая скорость по сравнению с параллельным АЦП.&lt;br /&gt;
**Необходимость в ЦАП.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Successive_approximation_ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Successive_approximation_ADC.jpg</id>
		<title>Файл:Successive approximation ADC.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Successive_approximation_ADC.jpg"/>
				<updated>2013-02-24T15:13:37Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-24T15:08:23Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* АЦП последовательного счёта (Folding ADC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости использовать ЦАП.&lt;br /&gt;
**Меньшая входная ёмкость.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькое разрешение.&lt;br /&gt;
**Энергопотребление экспоненциально растёт с ростом разрешения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Меньшая аппаратная сложность.&lt;br /&gt;
**Высокая пропускная способность.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Необходимость калибровки.&lt;br /&gt;
**Необходимость использования устройства выборки/хранения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП с временным уплотнением (Time-Interleaved ADC) ===&lt;br /&gt;
&lt;br /&gt;
В данной архитектуре используется временное распараллеливание вычислений. На рисунке представлен пример реализации 3-канального АЦП.Тактовый сигнал O0 в 3 раза быстрее чем O1,O2,O3.Первый канал обрабатывает текущие входные данные, в то время как 2 и 3 обрабатывают данные с предыдущих циклов. В данной схеме задержка определяется только самым первым тактовым сигналом, поэтому теоретически можно увеличивать скорость работы и точность при наращивании числа каналов и сохраняя линейный рост энергопотребления и занимаемой площади на кристалле. Однако, это сложно реализовать из-за наличия шумов в тактовых сигналов.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Time-interleaved_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП последовательного счёта (Folding ADC) ===&lt;br /&gt;
&lt;br /&gt;
Одним из способов уменьшить количество предусилителей и сложность декодера это применение накопления.Иногда для упрощение общей архитектуры накопление используется совместно с интерполяцией. &lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Достаточно высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости в ЦАП.&lt;br /&gt;
**Уменьшение энергопотребления, площади и входной ёмкости.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Ограниченное разрешение.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Folding ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-24T14:51:21Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* АЦП последовательного счёта (Folding ADC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости использовать ЦАП.&lt;br /&gt;
**Меньшая входная ёмкость.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькое разрешение.&lt;br /&gt;
**Энергопотребление экспоненциально растёт с ростом разрешения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Меньшая аппаратная сложность.&lt;br /&gt;
**Высокая пропускная способность.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Необходимость калибровки.&lt;br /&gt;
**Необходимость использования устройства выборки/хранения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП с временным уплотнением (Time-Interleaved ADC) ===&lt;br /&gt;
&lt;br /&gt;
В данной архитектуре используется временное распараллеливание вычислений. На рисунке представлен пример реализации 3-канального АЦП.Тактовый сигнал O0 в 3 раза быстрее чем O1,O2,O3.Первый канал обрабатывает текущие входные данные, в то время как 2 и 3 обрабатывают данные с предыдущих циклов. В данной схеме задержка определяется только самым первым тактовым сигналом, поэтому теоретически можно увеличивать скорость работы и точность при наращивании числа каналов и сохраняя линейный рост энергопотребления и занимаемой площади на кристалле. Однако, это сложно реализовать из-за наличия шумов в тактовых сигналов.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Time-interleaved_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП последовательного счёта (Folding ADC) ===&lt;br /&gt;
&lt;br /&gt;
Одним из способов уменьшить количество предусилителей и сложность декодера это применение накопления.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Folding ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Folding_ADC.jpg</id>
		<title>Файл:Folding ADC.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Folding_ADC.jpg"/>
				<updated>2013-02-24T14:29:57Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-24T14:25:32Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Высокое быстродействие.&lt;br /&gt;
**Отсутствие необходимости использовать ЦАП.&lt;br /&gt;
**Меньшая входная ёмкость.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Маленькое разрешение.&lt;br /&gt;
**Энергопотребление экспоненциально растёт с ростом разрешения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Меньшая аппаратная сложность.&lt;br /&gt;
**Высокая пропускная способность.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Необходимость калибровки.&lt;br /&gt;
**Необходимость использования устройства выборки/хранения.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП с временным уплотнением (Time-Interleaved ADC) ===&lt;br /&gt;
&lt;br /&gt;
В данной архитектуре используется временное распараллеливание вычислений. На рисунке представлен пример реализации 3-канального АЦП.Тактовый сигнал O0 в 3 раза быстрее чем O1,O2,O3.Первый канал обрабатывает текущие входные данные, в то время как 2 и 3 обрабатывают данные с предыдущих циклов. В данной схеме задержка определяется только самым первым тактовым сигналом, поэтому теоретически можно увеличивать скорость работы и точность при наращивании числа каналов и сохраняя линейный рост энергопотребления и занимаемой площади на кристалле. Однако, это сложно реализовать из-за наличия шумов в тактовых сигналов.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Time-interleaved_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП последовательного счёта (Folding ADC) ===&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-24T13:51:32Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Меньшая аппаратная сложность.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Необходимость калибровки.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== АЦП с временным уплотнением (Time-Interleaved ADC) ===&lt;br /&gt;
&lt;br /&gt;
В данной архитектуре используется временное распараллеливание вычислений. На рисунке представлен пример реализации 3-канального АЦП.Тактовый сигнал O0 в 3 раза быстрее чем O1,O2,O3.Первый канал обрабатывает текущие входные данные, в то время как 2 и 3 обрабатывают данные с предыдущих циклов. В данной схеме задержка определяется только самым первым тактовым сигналом, поэтому теоретически можно увеличивать скорость работы и точность при наращивании числа каналов и сохраняя линейный рост энергопотребления и занимаемой площади на кристалле. Однако, это сложно реализовать из-за наличия шумов в тактовых сигналов.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Time-interleaved_ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Time-interleaved_ADC.jpg</id>
		<title>Файл:Time-interleaved ADC.jpg</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%A4%D0%B0%D0%B9%D0%BB:Time-interleaved_ADC.jpg"/>
				<updated>2013-02-24T13:51:06Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-24T12:58:14Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Конвейерный АЦП (Pepilined ADC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
*Достоинства:&lt;br /&gt;
**Меньшая аппаратная сложность.&lt;br /&gt;
*Недостатки:&lt;br /&gt;
**Необходимость калибровки.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-23T20:28:21Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Конвейерный АЦП (Pepilined ADC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pipelined ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-23T20:27:49Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: /* Конвейерный АЦП (Pepilined ADC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;br /&gt;
&lt;br /&gt;
[[Изображение:pepilined ADC.jpg]]&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	<entry>
		<id>https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F</id>
		<title>Введение в АЦП</title>
		<link rel="alternate" type="text/html" href="https://vscripts.ru/w/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D0%90%D0%A6%D0%9F"/>
				<updated>2013-02-23T19:52:07Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;АЦП - аналого-цифровой преобразователь(Analog to Digital, ADC), устройство, которое преобразует входной аналоговый сигнал в выходной цифровой сигнал представленный, преимущественно, в двоичном коде. Входным сигналом может быть практически любая физическая величина, но для определённости условимся, что входным сигналом является напряжение. Основными параметрами АЦП является разрядность выходного сигнала и скорость преобразования.&lt;br /&gt;
&lt;br /&gt;
В данной статье будут кратко рассмотрены основные виды АЦП, представляющие информацию в двоичном коде. И более подробно АЦП, которые представляют информацию в системе остаточных классов.&lt;br /&gt;
&lt;br /&gt;
= Виды АЦП =&lt;br /&gt;
== Параллельный АЦП (Flash or parallel ADC) ==&lt;br /&gt;
&lt;br /&gt;
Параллельные АЦП имеют разрядность 6-8 бит при скорости до 1 GSPS (giga samples per seconds). Архитектура данного вида АЦП представленная на рисунке.&lt;br /&gt;
&lt;br /&gt;
Принципе работы относительно прост. На каждый компаратор подаётся входной аналоговый сигнал и доля опорного напряжения. Сравнивая их друг с другом каждый отдельно взятый компаратор вырабатывает логическую 1 или 0 на своём выходе, которые поступают в приоритетный шифратор (priority encoder).&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Простая архитектура и принцип работы.&lt;br /&gt;
** Высокая скорость работы.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Маленькая разрядность. При повышении разрядности потребляемая мощность и площадь на кристалле растут слишком быстро.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Интерполяционный АЦП (Interpolating Flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Является логическим развитием параллельного АЦП и призван упростить аппаратное усложнение при повышении разрядности,а значит повысить общую эффективность преобразования. Основная идея состоит в использовании предусилителей в качестве линейных усилителей. На рисунке представлен 3-битный интерполяционный АЦП.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:Interpolating_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Двухступенчатый АЦП (Two-stage flash ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё одно развитие параллельного АЦП. Наиболее популярная архитектура, обеспечивающая высокую скорость преобразования и среднее разрешение.&lt;br /&gt;
На первом шаге аналоговый сигнал подаётся на n-разрядный АЦП, который делает грубое преобразование и вырабатывает n старших битов кода(MSB - Most Significant Bit). Эта же информация попадает в ЦАП и преобразуется обратно в аналоговый вид, который затем вычитается из первоначального сигнала. Остаток преобразуется АЦП разрядности m и вырабатывается m младших битов (LSB, Lowest Significant Bit). В итоге получается цифровой сигнал разрядности P = n+m.&lt;br /&gt;
&lt;br /&gt;
* Достоинства:&lt;br /&gt;
** Уменьшение аппаратных затрат (30 компараторов в двухступенчатом АЦП против 255 в обычном для получения 8-разрядных чисел).&lt;br /&gt;
** Уменьшение потребления и входной ёмкости.&lt;br /&gt;
* Недостатки:&lt;br /&gt;
** Более высокая задержка в сравнении с обычным параллельным АЦП.&lt;br /&gt;
** Необходимость применения ЦАП большей разрядности чем P.&lt;br /&gt;
&lt;br /&gt;
[[Изображение:two-stage_flash_ADC.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Конвейерный АЦП (Pepilined ADC) ===&lt;br /&gt;
&lt;br /&gt;
Ещё один вид архитектуры получается из развития двухступенчатого варианта АЦП - конвейерный. На каждой стадии используются одноразрядные преобразователи. В итоге получается количество бит в точности равное количеству шагов. Для организации конвейера необходимо использовать устройство [http://en.wikipedia.org/wiki/Sample_and_hold выборки/хранения](S/H).&lt;/div&gt;</summary>
		<author><name>Konstantin</name></author>	</entry>

	</feed>