Аппаратная реализация модулярного сумматора и умножителя на базе ПЛИС - Коммуникации, связь, цифровые приборы и радиоэлектроника дипломная работа

Аппаратная реализация модулярного сумматора и умножителя на базе ПЛИС - Коммуникации, связь, цифровые приборы и радиоэлектроника дипломная работа




































Главная

Коммуникации, связь, цифровые приборы и радиоэлектроника
Аппаратная реализация модулярного сумматора и умножителя на базе ПЛИС

Обзор системы остаточных классов и основные теоретические сведения. Выбор оптимальных оснований СОК. Общая структура цифровых устройств. Разработка модулярного сумматора и умножителя, алгоритм работы и структурная схема, работа в Altera Quartus II v10.1.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


Нужна помощь с учёбой? Наши эксперты готовы помочь!
Нажимая на кнопку, вы соглашаетесь с
политикой обработки персональных данных

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/ 13
Размещено на http://www.allbest.ru/
МОДУЛЯРНАЯ АРИФМЕТИКА, МОДУЛЯРНЫЙ СУММАТОР, МОДУЛЯРНЫЙ УМНОЖИТЕЛЬ, СОК, ALTERA, QUARTUS.
Объект разработки - модулярный сумматор и умножитель на базе системы остаточных классов.
Цель работы - аппаратная реализация модулярного сумматора и умножителя, удовлетворяющих техническому заданию.
В настоящее время невозможно представить себе сложную автоматическую систему без того, чтобы ее центральную часть не составляли вычислительные машины, выполняющие функции обработки информации и управления. Поэтому очевидна ценность исследований методов ускорения расчетов и повышения производительности вычислительных машин.
Задачу повышения скорости и надёжности вычислений можно рассматривать с двух сторон. С одной стороны это аппаратный уровень, фундаментальными ограничениями на котором являются технические возможности создания элементной базы - уменьшение размеров кристаллов, увеличение частоты синхронизации (тактовой частоты), решение проблем теплоотвода и др. Во многом этот уровень определяется современным состоянием фундаментальных наук, прежде всего, физики. С другой стороны это - математико-алгоритмический уровень вычислений, и фундаментальными ограничивающими факторами здесь выступают, в числе прочих, необходимость последовательного вычисления, когда следующий этап (шаг) частично или полностью зависит от предыдущих шагов. Даже простейшие арифметические операции сложения и умножения (не говоря уже о делении) при реализации их вычислителями с архитектурой фон-Неймана осуществляются побитово, и вычисление каждого последующего бита зависит от результата операции над предыдущими битами. Существуют и другие вычислительные архитектуры, в которых акцент сделан на параллельность и массовость вычислений. Большую популярность сейчас имеют нейронные сети, которые, обладая алгоритмической универсальностью машины Тьюринга, уже доказали своё преимущество в слабо формализованных задачах, связанных с необходимостью обучения. Использование системы остаточных классов (СОК) и модулярных вычислений позволяет существенно увеличить скорость арифметических вычислений за счёт параллельного выполнения операций над остатками.
Долгое время модулярная арифметика рассматривалась как интересный сугубо теоретический вопрос из-за сложности производства вычислительных структур для её реализации. Современное развитие технологии интегральных схем сделало возможным использование модулярной арифметики для многих областей цифровой обработки сигналов, распознавания образов и других задач, требующих интенсивных вычислений [1].
1 . Обзор системы остаточных классов и основные теоретические сведения
1.1 Основные понятия системы остаточных классов
Если задан ряд положительных целых чисел p 1 , p 2 , . . ., р n , называемых в дальнейшем основаниями системы, то под системой счисления в остаточных классах принято понимать такую систему, в которой целое положительное число представляется в виде набора остатков (вычетов) по выбранным основаниям N = (a 1 , a 2 , ..., a n ), причем образование цифр a i осуществляется следующим процессом
Т.е. цифра i-го разряда a i числа N есть наименьший положительный остаток от деления N на p i .
Здесь в отличие от обобщенной позиционной системы образование цифры каждого разряда проводится независимо друг от друга. Цифра i-го разряда a i представляет собой наименьший положительный остаток от деления самого числа N, а не предыдущего частного, как это имело место в позиционной системе, на i-e основание i . Очевидно, что a i < p i .
В теории чисел доказано, что если числа p i взаимно простые между собой, то описанное цифрами a 1 , a 2 , ..., a n представление числа N является единственным.
Объем диапазона представимых чисел в этом случае как легко видеть, равен
Здесь, как и в обобщенной позиционной системе, диапазон представимых чисел растет как произведение оснований, а разрядность чисел N растет как сумма разрядностей тех же оснований.
Далее следует рассмотреть правила выполнения операций сложения и умножения в системе остаточных классов в случае, если оба числа и результат операции находятся в диапазоне [0, P). Пусть операнды А и В представлены соответственно остатками a i и i по основаниям p i при i = 1, 2, . . ., n.
Результаты операций сложения и умножения А + В и АВ представлены соответственно остатками i и i по тем же основаниям р i т. е.
A < P, B < P, A + B < P, AB < P. (1.6)
Утверждается, что i сравнимо с а i + i по модулю р i , а i сравнимо с а i i по тому же модулю, т. е.
при этом в качестве цифры результата берется соответственно
Необходимо охарактеризовать в общих чертах достоинства и недостатки введенной системы счисления в остаточных классах.
К достоинствам следует отнести [4]:
· независимость образования разрядов числа, в силу чего каждый разряд несет информацию обо всем исходном числе, а не о промежуточном числе, получающемся в результате образования более младших разрядов. Отсюда вытекает независимость разрядов числа друг от друга и возможность их независимой параллельной обработки. При введении дополнительного контрольного основания остаток, взятый по этому основанию, несет избыточную информацию об исходном числе, что позволяет обнаруживать и исправлять ошибки в цифрах по рабочим основаниям системы;
· малоразрядность остатков, представляющих число. Ввиду малого количества возможных кодовых комбинаций открывается возможность построения табличной арифметики, благодаря чему большинство операций, выполняемых арифметическим устройством, превращаются в однотактные, выполняемые простой выборкой из таблицы.
К основным недостаткам системы счисления в остаточных классах следует отнести:
· невозможность визуального сопоставления чисел, так как внешняя запись числа не дает представления о его величине;
· отсутствие простых признаков выхода результатов операций за пределы диапазона [0, P);
· ограниченность действия системы сферой целых положительных чисел;
· получение во всех случаях точного результата операции, что исключает возможность непосредственного приближенного выполнения операций, округления результата и т. п.
1.2 Выбор оптимальных оснований СОК
Пусть диапазон представления чисел в СОК равен P = p 1 p 2 ... p n . Поскольку желательно, чтобы P было как можно большим, проще всего принять p 1 наибольшим нечетным числом, соответствующим машинному слову, в качестве p 2 принять наибольшее нечетное число < p 1 , взаимно простое с p 1 , а в качестве p 3 - наибольшее нечетное число < p 2 , взаимно простое как с p 1 , так и с p 2 , и т.д., пока не наберется столько p j , сколько будет достаточно для образования нужного P [1].
При работе на двоичных компьютерах иногда желательно выбирать модули p j иным образом:
Другими словами, значение каждого модуля на единицу меньше очередной степени двойки. Такой выбор значения модуля p j зачастую упрощает выполнение основных арифметических операций, т.к. выполнять вычисления с числами, представленными по модулю 2 ej - 1, несколько проще, чем с числами, представленными в обратном коде. После того, как значения модулей выбраны таким образом полезно несколько ослабить условие 0 ? a i < p j и потребовать только, чтобы
N = (а 1 , а 2 , ..., а n ). (1.14)
Таким образом, значение p j = 2 ej - 1 принимается в качестве оптимального, поскольку это означает, что p j может быть любым e j - битовым двоичным числом [1].
Для работы с модулями вида 2 ej - 1 необходимо знать, при каких условиях число 2 e - 1 является взаимно простым с числом 2 f - 1. К счастью для этого существует очень простое правило
gcd(2 e - 1, 2 f - 1) = 2 gcd(e, f) - 1. (1.15)
Формула (2.15) утверждает в частности, что 2 e - 1 и 2 f - 1 взаимно просты тогда и только тогда, когда взаимно просты e и f. Формула (1.15) следует из алгоритма Евклида и тождества
(2 e - 1) (mod(2 f - 1)) = 2 e(mod f) - 1. (1.16)
Поэтому на компьютере с длиной слова 2 32 можно выбрать p 1 = 2 29 - 1, p 2 = 2 25 - 1, p 3 = 2 23 - 1, p 4 = 2 19 - 1, p 5 = 2 17 - 1, p 6 = 2 13 - 1, p 7 = 2 11 - 1, p 8 = 2 7 - 1 что обеспечивает эффективность сложения, вычитания и умножения целых чисел в интервале вплоть до p 1 p 2 p 3 p 4 p 5 p 6 p 7 p 8 < 2 144 . В данном курсовом проекте для представления 64-х битных чисел используется следующая система модулей: (13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61) - все они взаимно просты друг с другом, их произведение равно 50 774 191 064 678 342 417> 18 446 744 073 709 551 616. Каждый из модулей не превышает 6 бит, то есть операции сложения и умножения будут производиться над 6-битными числами.
Основным достоинством СОК является то, что арифметические операции производятся в ней независимо по каждому из модулей, следовательно, они могут выполняться параллельно по L вычислительным каналам:
Обобщенная структура устройств цифровой обработки сигналов в модулярной арифметике представлена на рисунке 1.1. Число X на входе преобразовываются из позиционной системы счисления (ПСС) в модулярное представление в СОК в базисе модулей { m 1 , m 2 ,…, m l }, после чего выполняются независимые вычисления для каждого модуля i m . На выходе происходит обратное преобразование из СОК в ПСС [1].
Рисунок 1.1 - Общая структура обработка данных в СОК
Однако в данном курсовом проекте преобразование из ПСС в СОК и обратно не выполняются по условиям ТЗ.
1.4 Общая структура цифровых устройств
Общая функциональная схема цифровых устройств приведена на рисунке 1.4 (а).
Рисунок 1.4 (а) - Общая функциональная схема цифровых устройств
В состав любого цифрового устройства входят операционный автомат и управляющий автомат.
Операционный автомат объединяет функциональные модули, производящие непосредственную обработку поступающей информации. Операционный автомат имеет информационные входы I и входы z управления; информационные выходы D, а также выходы u, которые сигнализируют о результатах выполнения операций. Сигналы, формируемые на этих выходах, называются осведомительными сигналами или внутренними логическими условиями устройства. Операционный автомат составляется из типовых функциональных модулей, таких, как параллельные и последовательные регистры, счетчики, комбинационные сумматоры, схемы сравнения, мультиплексоры шифраторы, дешифраторы и др. В робототехнических системах и комплексах частью операционного автомата можно считать функциональные блоки, производящие определенные действия, например перемещение манипулятора, опрос датчиков и т.п. Результатом функционирования указанных блоков должно являться появление сигналов, имеющих два состояния: 0 и 1.
Управляющий автомат вырабатывает символы z управления операционным автоматом по заданной программе с учетом значений внутренних u и внешних v логических условий, которые для него являются входными переменными. Внешние логические условия, задают одну из нескольких возможных в данном устройстве микропрограмм. На выходах у управляющего автомата могут быть сформированы символы, несущие информацию для внешних устройств о состоянии цифрового устройства. Управляющий автомат определяет логику работы устройства, т.е. последовательность и тип операций, выполняемых операционным автоматом над исходными данными.
Общими управляющими входами автомата являются вход тактирования c и вход сброса r. По входу с осуществляется синхронизация работы операционного и управляющего автомата. По входу r производится установки внутренних элементов памяти автоматов в состояние, которое считается исходным (начальным).
Управляющий автомат проектируется на основании понятия абстрактного автомата. Существуют следующие схемы абстрактных автоматов.
Автомат Мили, или автомат первого рода, приведен на рисунке 1.4 (б). Он описывается следующей системой функций
w(t + 1) = L 1 (u(t), q(t)); z(t) = L 2 (u(t), q(t)),
где u(t) - управляющие символы; q(t) - внутреннее состояние автомата; w(t + 1) - следующее состояние автомата; z(t) - выходной символ.
В этом абстрактном автомате выдача символа z(t) происходит сразу, при старом значении внутреннего состояния q(t). Поэтому переход в новое состояние отстает по времени на один такт от изменения выходного символа. Это свойство автомата Мили поясняет рисунок 1.4 (б)
Автомат Мура, или автомат второго рода, приведен на рисунке 1.4 (в). Он имеет функцию переходов такую же, как у автомата Мили, а функцию выходов, не зависящую непосредственно от входной переменной u(t).
Система функций для автомата Мура имеет вид
w(t + 1) = L 1 (u(t), q(t)); z(t) = L 2 (q(t)),
Можно сказать, что у автомата Мура сначала меняется внутреннее состояние, и только после этого изменение состояния отражается на состоянии выходного символа. Функция выходов получается сдвинутой на один интервал времени.
При проектировании управляющих блоков на практике чаще применяется более простая модель Мура. Функциональная схема управляющего автомата на базе абстрактного автомата Мура приведена на рисунке 1.4 (г).
Рисунок 1.4 (г) - Функциональная схема управляющего автомата
На рисунке 1.4 (г) приведены следующие обозначения:
вектор v внешних управляющих символов;
вектор у символов, несущих информацию о состоянии устройства;
вектор u осведомительных символов, поступающих с операционного автомата;
вектор управляющих символов z, подаваемых на операционный автомат;
вектор q текущих состояний управляющего автомата;
вектор w выходных символов комбинационной схемы (вектор возбуждения), формирующих очередное (следующее) состояние управляющего автомата;
r - сигнал сброса, переводящий управляющий автомат в исходное состояние;
с - сигнал тактирования управляющего автомата.
Вектор возбуждения w представляет собой совокупность структурных переменных, которые должны поступать на входы триггеров регистра RG, чтобы обеспечить их переключение в состояния, определенные алгоритмом функционирования автомата.
Комбинационная схема автомата (элемент L) объединяет все логические элементы, участвующие в формировании вектора управления z выходного вектора у и вектора возбуждения w на основании вектора осведомительных символов u, вектора внешнего управления v и вектора текущих состояний автомата q.
Если количество состояний цифрового управляющего устройства заранее известно, в управляющий автомат может быть включен счетчик состояний в соответствии с функциональной схемой, приведенной на рисунке 1.4 (д). Указанный счетчик может быть реализован и в виде части регистра RG, однако в этом случае существенно возрастает сложность структуры логического блока L. При включении счетчика в структуру управляющего автомата используется комбинационная схема Lcu, назначение которой - обеспечить прохождение тактирующих импульсов с на выход с' в процессе отработки управляющим автоматом его программы и заблокировать прохождение импульсов после отработки программы. По входу r схема переводится в исходное состояние, при этом комбинационная схема должна снимать блокировку в прохождении импульсов.
Рисунок 1.4 (д) - Включение счетчика в структуру управляющего автомата
Управляющий автомат можно строить двумя способами: как автомат с жесткой логикой, или как автомат со специальной встроенной памятью микропрограмм. Оба принципа формирования УА применяются в робототехнических системах, причем при реализации сложных алгоритмов используется микропрограммное управление, а при реализации простых алгоритмов - схемная логика.
Настоящая курсовая работа предполагает разработку операционного устройства, в качестве которого выступает сумматор/умножитель и пример исполнения абстрактного управляющего автомата с жесткой логикой без минимизации аппаратурных и ценовых затрат.
2. Разработка сумматора и умножителя
2.1 Выбор модели сумматора по модулю m
Существует достаточно большое количество подходов к реализации сумматоров по модулю m. Далее будут рассмотрены наиболее типичные и простые схемы модулярного суммирования. Первая из них вычисляет модульную сумму |x+y| m с помощью таблицы размером n*2 2 n , n=[log 2 m]. Для двух соответствующих элементов просто выбирается ответ из большой таблицы. Это решение очень хорошо подходит для случаев, когда длина слова мала, например, n < 5 [1].
Рисунок 2.1 (а) - Модулярное суммирование с помощью большой LUT-таблицы
Для больших модулей, память LUT была бы значительного размера и другие схемы для суммирования оказываются в этом случае более предпочтительными. Следующее предложение основывается на обычном суммировании x+y и одной таблицы, содержащей все возможные значения для |x+y| m .
При этом существенно сокращается размер подстановочной таблицы с n*2 2 n до n*2 n +1 , что даёт возможность расширять набор модулей в случае необходимости большего динамического диапазона или избыточных модульных каналов для коррекции ошибок [1].
Рисунок 2.1 (б) - Модулярное суммирование с предварительным обычным суммированием.
Третья схема суммирования является самой распространённой и наиболее предпочтительной в большинстве случаев. В этой схеме используется два сумматора и мультиплексор для выбора результата в соответствии с выражением:
Рисунок 2.1 (в) - Модулярное суммирование без использования LUT-таблиц
В данном курсовом проекте используется последняя схема суммирования без использования LUT-таблиц ввиду простоты реализации и минимальных аппаратурных затрат.
2.2 Выбор модели умножителя по модулю m
Умножители на основе закона квадратов (рис. 2.2 (а)) вычисляют модулярное произведение |x*y| m с помощью следующего равенства (закон квадратов):
где 0 ? x, y < m . Модулярное умножение на основе (3.1) можно записать следующим образом:
и произведение |x*y| m можно вычислять по формуле:
Рисунок 2.2 (а) - Схема модулярного умножителя по модулю m на основе закона квадратов
Существование операции деления на 2 ставит под угрозу целочисленность промежуточных вычислений и, соответственно, правильность результата после использования таблиц подстановок. Более того, существование обратного по умножению по модулю m для 2 элемента, , гарантируется только в случае, если 2 не делит m (т.е. m - нечётно). Тэйлор в работе [11] привёл доказательство теоремы, показав, что даже если при вычислении (2.2) будут промежуточные дроби, они взаимно уничтожатся.
Умножители, основанный на арифметике указателей [12, 13] является сравнимой альтернативой по сложности и скорости умножителям, основанным на законе квадратов. Их использование ограничено простыми модулями и основывается на осуществлении преобразования в степенную форму (так называемое степенное исчисление), в котором умножение может более быстро осуществляться посредством операции суммирования.
Метод работы этого умножителя связан с математическими свойствами полей Галуа [14, 15], обозначаемых GF(p) , где p - простое число. Все ненулевые элементы поля Галуа могут быть получены путём многократного возведения в степень примитивного элемента - порождающего поле GF(p) элемента g j . Это свойство полей Галуа можно использовать для умножения в GF(m j ) благодаря использованию изоморфизма между мультипликативной по модулю m j группой Q = {1,2,…,m - 1}, и аддитивной по модулю (m j -1)- группой I ={0,1,…,m - 2}. Этот изоморфизм может быть установлен следующим образом:
и умножение над полем GF(m) может производиться по формуле:
Таким образом, умножение двух чисел q j и q k можно производить вычисляя модулярную сумму соответствующих указателей i j и i k , а затем проводя обратное преобразование из степенного пространства в исходный вид. Необходимо специально обрабатывать случаи, когда один из операндов на входе умножителя равен нулю и в этом случае назначать нулевой результат произведения. Это происходит потому, что не определён элемент в степенном пространстве, соответствующий нулевому элементу группы Q .
Степени i j и i k для q j и q k , соответственно, могут быть заранее вычислены и помещены в LUT. Сложение степеней выполняет сумматор по модулю m j -1. Обратное преобразование из степенного представления i j и i k в исходное q j и q k также может быть выполнено с помощью предварительно вычисленных LUT.
Рисунок 2.2 (б) - Схема модулярного умножителя, основанного на исчислении степеней (умножитель Галуа)
Рассмотрим в качестве примера работу этого умножителя на примере умножения двух чисел 14 и 28 по модулю 31.
Так как 31 - простое число, существует порождающий элемент g , дающий возможность ассоциировать каждый элемент мультипликативной группы
Q = {1,2,…,31} с элементом аддитивной группы I ={0,1,…,30} . Соответствие задаётся выражением . В табл.1 рассчитано соответствие между элементами группы Q и соответствующей степенью из аддитивной группы I . Эта таблица в сущности и представляет собой содержание LUT размером 2 5 ?5 прямого и обратного преобразования в умножителе, изображенном на рис. 2.2 (б).
Рассмотрим работу умножителя Галуа (рис. 2.2 (б), рис. 2.2 (в), табл. 1) на примере умножения |14 ? 28 | 31 . Итак, q j = 14 и q k = 28, а произведение |q j ? q k | 31 получается посредством суммирования соответствующих им элементов i j и i k , выбранных из табл. 1. Таким образом, указатели оказываются i j = 22 и i k = 16 и | i j + i k | 30 = 8. Элементу i n = 8 в табл. 1 соответствует q n = 20, следовательно, |14 ? 28| 31 = 20 .
Рисунок 2.2 (в) - Схема работы 5-битного умножителя Галуа
На рис. 2.2 (в) показано, каким образом происходит умножение чисел 14 и 28 по модулю 31 по схеме, изображённой на рис. 2.2 (б). Для простоты две таблицы LUT1 и LUT2 объединены в одну и представляют собой таблицы, переводящие умножаемые числа в степенное представление по табл. 1, а в качестве сумматора выступает простой модулярный сумматор, изображённый на рис. 2.1 (а). LUT3 выполняет сложение по модулю 30, а LUT4 переводит результат из степенного представления обратно в первоначальный. LUT4 представляет собой табл. 1, только отсортированную по i n . На рис. 2.2 (и) ADDR на входе таблицы и [ADDR] на выходе показывают, что значение, поступившее на вход таблицы, рассматривается в качестве линейного адреса элемента, который будет выдан на выход таблицы, т.е. [ADDR] - это содержимое ячейки таблицы по адресу ADDR.
Недостатками данной схемы являются: большие размеры LUT-таблиц для больших оснований, при каждом включении устройства необходимо вычислять значения таблиц и записывать их в память. Главное преимущество перед предыдущей схемой - точность вычислений. Недостаток больших LUT-таблиц можно избежать, заменив LUT3 на схему сумматора, приведённого выше.
Также нельзя исключать использования стандартных схем умножения чисел с фиксированной запятой. Их применение целесообразно при малой разрядности операндов. На рис. 2.2 (г) приведена схема умножения чисел I способом с ФЗ в ПК. Главным недостатком данной схемы является после то, что после перемножения чисел, результат, выходящий за пределы основания, нуждается в корректировке, т.е. выделении остатка от деления.
Пример: А = 120 = (59), В = 104 = (43), p = 61.
А*В = (59*43) mod 61 = 2537 mod 61 = (36).
В данном примере для получения произведения необходимо было бы 41 раз вычесть основание 61 из 2537 или разделить 2537 на 61, что впоследствии привело бы к значительному усложнению схемы.
Исходя из недостатков первой и третьей схем, в данном курсовом проекте используется вторая - схема умножителя Галуа.
Рисунок 2.2 (г) - Схема умножения чисел I способом с ФЗ в ПК
Реализовать модулярный сумматор и умножитель на базе ПЛИС со следующими характеристиками:
· формат данных - 64-разрядные целочисленные данные;
· входные данные поступают в СОК в формате вектора состоящего из тринадцати 6-разрядных значений, соответственно заданным основаниям;
· выходные данные также находятся в СОК;
· сумматор и умножитель разместить на отдельных/одной ПЛИС фирмы Altera;
· разработать алгоритмы функционирования сумматора и умножителя;
· разработать алгоритмы самотестирования сумматора и умножителя;
· произвести проверку работоспособности разрабатываемого устройства на контрольных примерах.
4 . Разработка сумматора по модулю m
Модулярный сумматор должен содержать:
· два 78-разрядных входных регистра для приёма операндов с ШИВх,
· 78-разрядный регистр для выдачи результата на ШИВых,
· двадцать шесть 7-разрядных сумматоров для сложения и корректировки операндов,
· тринадцать 7-разрядных мультиплексора.
Операнды поступают в сумматор по 77-разрядной ШИВх и записываются в соответствующие регистры. На первом сумматоре происходит сложение операндов, а на втором - коррекция результата. Управление мультиплексором т.е. выбор результата зависит от единицы переноса, возникающая на втором сумматоре, если таковая возникла - снимается результат с 1 плеча и записывается в выходной регистр.
На рис. 4 (а) представлен фрагмент функциональной схемы сумматора для основания 13.
Рисунок 4 (а) - Фрагмент функциональной схемы модулярного сумматора
На рис. 4 (б) изображён модулярный сумматор.
Назначение входных и выходных сигналов:
· CLK - системный синхроимпульс (вырабатывается тактовым генератором),
· А [77..0] - порт А для входных 78-разрядных данных,
· В [77..0] - порт В для входных 78-разрядных данных,
· Q [77..0] - порт Q для выходных 78-разрядных данные.
Рисунок 4 (б) - УГО модулярного сумматора
4.1 Примеры функционирования сумматора по модулю m
Произведём проверку работоспособности сумматора суммированием чисел по модулю 13.
Дано: А = 9 = 001001 2 , В = 8 = 001000 2 , Корректировка 51 = 110011 2 .
При возникновении единицы переноса результат снимается с плеча мультиплексора data1x[6..0] и он равен 000100 2 = 4.
На рис. 4.1 (а) представлена временная диаграмма решения данного примера в QUARTUS II.
Рисунок 4.1 (а) - Решение Примера 1 в QUARTUS II
Дано: А = 2 = 000010 2 , В = 5 = 000101 2 , Корректировка 51 = 110011 2
Единицы переноса нет - результат снимается с плеча мультиплексора data0x[6..0] и он равен 000111 2 = 7.
На рис. 4.1 (б) представлена временная диаграмма решения данного примера в QUARTUS II.
Рисунок 4.1 (б) - Решение Примера 2 в QUARTUS II
4.2 Пример управляющего устройства сумматором по модулю m
Пример управляющего устройства сумматором приведён на рисунке 4.2. На входы поступают осведомительные сигналы p[12..0], а на выходе появляются соответствующие управляющие сигналы S[3..0]. Сигнал Z - обозначает окончание операции.
Рисунок 4.2 - Управляющее устройство сумматором
// {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE!
// {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE!
// {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!
// {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!
integer pc=1; //Объявление счетчика тактов, переменная типа integer
reg [3:0] S; //Объявление регистра для хранения массива управляющих сигналов
reg Z=0; //Объявление регистра для хранения признака окончания операции
always @(posedge clk) //Данная функция срабатывает при положительном (pos) перепаде (edge) сигнала clk (по фронту)
if (p[0]==1) and (p[1]==1) and ... (p[13]==1) begin
5 . Разработка умножителя по модулю m
Модулярный умножитель должен содержать:
· два 78-разрядных входных регистра для приёма операндов с ШИВх,
· 78-разрядный регистр для выдачи результата на ШИВых,
· тринадцать 7-разрядных модулярных сумматоров для сложения и корректировки операндов,
· тридцать девять 6-разрядных LUT-таблиц.
Операнды поступают в умножитель по 78-разрядной ШИВх и записываются в соответствующие регистры. Производится выборка значений из таблиц LUT1и LUT2. Таблица LUT3 была заменена на 6-разрядный сумматор из пункта 3.3 данного курсового проекта. Это решение было принято в связи с уменьшением временных затрат на вычисления значений данной таблицы и простотой реализации сумматора. Его работа описана в пункте 4. Результат сложения подаётся в таблицу LUT4, записывается в выходной 78-разрядный регистр с последующей выдачей на ШИВых. Содержание таблиц LUT1, LUT2, LUT4 помещено в приложение.
На рис. 5 (а) представлен фрагмент функциональной схемы умножителя для основания 31.
Рисунок 5 (а) - Фрагмент функциональной схемы модулярного умножителя
На рис. 5 (б) изображён модулярный умножитель.
Назначение входных и выходных сигналов:
· Y3 - выдача результата умножения,
· S1 - запись данных в сумматор по порту А,
· S2 - запись данных в сумматор по порту В,
· CLK - системный синхроимпульс (вырабатывается тактовым генератором),
· С [77..0] - порт D для входных 78-разрядных данных,
· D [77..0] - порт C для входных 78-разрядных данных,
· Out [77..0] - порт Out для выходных 78-разрядных данные.
Рисунок 5 (б) - УГО модулярного умножителя
5.1 Примеры функционирования умножителя по модулю m
Произведём проверку работоспособности умножителя умножением чисел по модулю 13.
Дано: С = 7 = 000111 2 , D = 10 = 001010 2 .
Значению 000111 2 = 7 в таблице LUT1 соответствует 011100 2 = 28, а значению 001010 2 = 10 - 001110 2 = 14 в таблице LUT2. При сложении 28 и 14 по модулю 30 получаем результат 12. Данному числу в таблице LUT4 соответствует значение 001000 2 = 8.
(С * D) mod 31 = (7 * 10) mod 31 = 8.
На рис. 5.1 (а) представлена временная диаграмма решения данного примера в QUARTUS II.
Рисунок 5.1 (а) - Решение Примера 1 в QUARTUS II
Дано: С = 28 = 011100 2 , D = 15 = 001111 2 .
Значению 011100 2 = 28 в таблице LUT1 соответствует 010000 2 = 16, а значению 001111 2 = 15 - 010101 2 = 21 в таблице LUT2. При сложении 16 и 21 по модулю 30 получаем результат 7. Данному числу в таблице LUT4 соответствует значение 010001 2 = 17.
(С * D) mod 31 = (28 * 15) mod 31 = 17.
На рис. 5.1 (б) представлена временная диаграмма решения данного примера в QUARTUS II.
Рисунок 5.1 (б) - Решение Примера 2 в QUARTUS II
5.2 Пример управляющего устройства умножителем по модулю m
Пример управляющего устройства умножителем приведён на рисунке 5.2. На входы поступают осведомительные сигналы p[12..0], а на выходе появляются соответствующие управляющие сигналы S[5..0]. Сигнал Z - обозначает окончание операции.
Рисунок 5.2 - Управляющее устройство сумматором
// {{ALTERA_ARGS_BEGIN}} DO NOT REMOVE THIS LINE!
// {{ALTERA_ARGS_END}} DO NOT REMOVE THIS LINE!
// {
Аппаратная реализация модулярного сумматора и умножителя на базе ПЛИС дипломная работа. Коммуникации, связь, цифровые приборы и радиоэлектроника.
Курсовая Работа На Тему Advertising And Popular Culture
Реферат по теме "Болеро" Равеля
Культура Как Смысловой Мир Человека Реферат
Реферат: Сегодня газета, Латвия
Синонимия русского и немецкого языков. Проблематика подбора, перевода и классификации синонимов на материале романа Г. Фаллады "Каждый умирает в одиночку
Реферат по теме Роль растения Крассула в гармонизации среды помещения
Курсовая работа: Проектирование фундамента в открытом котловане на естественном основании мелкого заложения для здания с подвалом
Реферат: Языковая картина мира в лингвокультурологии и этнопсихолингвистике
Курсовая работа по теме Пути совершенствования процесса планирования новой продукции
Контрольная работа по теме Использование земли и ее оценка
Методическая Разработка Лабораторной Работы
Налог На Прибыль Организаций Курсовая 2022
Контрольная работа по теме Обоснование выбора цветного сплава для изготовления конкретного изделия
Отчет По Практике Права Социального Обеспечения
Курсовая работа по теме Бухгалтерський облік на підприємстві оптової торгівлі ЧП "Ядрихінський"
Реферат по теме Сутність дискреційної та автоматичної фіскальної політики та її інструменти
Почему Жить Значит Любить Сочинение
Реферат: Естествознание XX века
Реферат: Таможенные платежи
Контрольная работа по теме Стили семейного воспитания детей
Бухгалтерский учет и налогообложение малых предприятий - Бухгалтерский учет и аудит курсовая работа
Історичний процес становлення бухгалтерської професії - Бухгалтерский учет и аудит контрольная работа
Види заохочень і порядок їх застосування - Государство и право реферат


Report Page