Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка АЛУ на мікросхемі ПЛІС

Реферат Розробка АЛУ на мікросхемі ПЛІС





не вичітаніе011 (3) Арифметичне умноженіе100 (4) Розподіл (ціла частина) 101 (5) Логічне «І» 110 (6) Логічне «АБО» 111 (7) Порозрядне інвертування

Серед наявних операцій можна виділити двухоперадние і однооперадние. До перших відносяться додавання, віднімання, множення, ділення, логічне «І» і «АБО». До других - пропуск і поразрядное інвертування. У однооперадних командах використовується тільки перший операнд Operand1 незалежно від другого Operand2.

Вихідний сигнал Result має розрядність в два рази більше, ніж вхідні операнди. Це необхідно у випадку множення, так як дана операція може призвести до подвоєння розрядності результату і запобігає переповнення.

Кожен вихідний результат супроводжується установкою відповідних біт-прапорів переповнення, нуля і від'ємного значення.

Прапор переповнення Flag0 встановлюється в стан «1», якщо сталося переповнення результату. Ця ситуація виникає при діленні на нуль, тобто коли на вхід другого операнда подати «0» і вибрати операцію ділення. Результат буде невідомий. У всіх інших випадках прапор скидається в нульовий стан.

Прапор нуля FlagZ встановлюється в «1», якщо отриманий результат приймає нульове значення. Така ситуація виникає, коли відбувається розподіл нуля на число, відмінне від нуля, або віднімання двох однакових чисел, а також в результаті побітових операцій. Якщо в результаті, не нуль, то встановлюється в нуль.

Прапор від'ємного значення FlagN встановлюється в «1», якщо результат операції негативний. При цьому вихідне значення Result має позитивне значення, рівне по модулю отриманому негативного. Нульове значення цей прапор приймає, якщо значення Result є позитивним.

Сигнал Clock використовується для синхронізації. За його позитивному фронту видається на вихід результат і прапори.

Розробка RS тригера

Для реалізації RS тригера необхідно додати ще одну операцію, яка буде виконувати роль даного тригера. При подачі на вході 00 значення буде зберігатися, при подачі на один з входів одиниці вихідне значення буде змінюватися, а при подачі 11 всі біти будуть встановлюватися в 1. Опис операції буде представлено нижче.


. Структура програми


Програма має наступну структуру: головний модуль ALU ВИКЛИКАЄ завдання-обробники операндів, тобто відповідні частини програми, які описують відповідну операцію. Завдання викликається головним модулем як функція з передачею відповідних параметрів головного модуля.

По результату виклику завдання головний модуль виробляє установку відповідних прапорів.

За позитивному фронту сигналу clock результат і прапори подаються на вихід пристрою.


4. Тіло програми

ALU (command_code, xdata, ydata, clock, result, flagZ, flagO, flagN); numbits=3; [3: 0] command_code; clock; [numbits: 0] xdata, ydata; [2 * numbits + 1:0] result; flagZ, flagO, flagN; [2 * numbits + 1: 0] res; z, o, n, temp; Disable; [2 * numbits + 1: 0] Disable; [numbits: 0] x, y;=x;=x; Summator; [2 * numbits + 1: 0] Summator; [numbits: 0] x, y; c_in; i; a, b, c, d, a1, b1, c1, bit, summa; (i=0; i lt;=numbits; i=i + 1)=~ x [i] amp; y [i] amp; c_in;=~ x [i] amp; y [i] amp; ~ c_in ;=c_in amp; x [i] amp; y [i];=x[i]amp;~y[i]amp;~c_in;[i]=a|b|c|d;=x[i]amp;y[i]amp;~c_in;=x[i]amp;~y[i]amp;c_in;=~x[i]amp;y[i]amp;c_in;=c|a1|b1|c1;_in=bit;[numbits+1]=bit;(i=numbits+2; i lt;=2 * numbits + 1; i=i + 1) [i]=0; Substance; [2 * numbits + 1: 0] Substance; [numbits: 0] x, y; (x gt;=y)=xy;=yx; Multiple; [2 * numbits + 1: 0] Multiple; [numbits: 0] x, y; ((x gt;=0 amp; amp; y gt;=0) || (x lt;=0 amp; amp; y lt;=0)) =x * y; ((x gt; 0 amp; amp; y lt; 0) || (x lt; 0 amp; amp; y gt; 0))=- x * y; Divide; [2 * numbits + 1: 0] Divide; [numbits: 0] x, y; (! y)='bx; ((x gt;=0 amp; amp; y gt; 0) || (x lt;=0 amp; amp; y lt; 0))= x/y; ((x gt; 0 amp; amp; y gt; 0) || (x lt; 0 amp; amp; y gt; 0))=- x/y; Operation_and; [2 * numbits + 1: 0] Operation_and ; [numbits: 0] x, y; i; (i=0; i lt;=numbits; i=i + 1) _and [i]=x [i] amp; amp; y [i]; (i=numbits +1; i lt;=2 * numbits + 1; i=i + 1) _and [i]=0; Operation_or; [2 * numbits + 1: 0] Operation_or; [numbits: 0] x, y; i; ( i=0; i lt;=numbits; i=i + 1) _or [i]=x [i] || y [i]; (i=numbits + 1; i lt;=2 * numbits + 1; i=i +1) _or [i]=0; Operation_not; [2 * numbits + 1: 0] Operation_not; [numbits: 0] x, y; i;=x; (i=0; i lt;=numbits; i=i +1) _not [i]=~ x [i]; (i=numbits + 1; i lt;=2 * numbits + 1; i=i + 1) _not [i]=0; Operation_RS; [2 * numbits + 1: 0] Operation_RS; [numbits: 0] x,y;i;temp;((x[0]==1)amp;amp;(y[0]==0))_RS[0]=0;((x[0]==0)amp;amp;(y[0]==1))_RS[0]=1;((x[0]==0)amp;amp;(y[0]==0))_RS[0]=Operation_RS[0];((x[...


Назад | сторінка 2 з 3 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка електричної схеми макета для дослідження D-тригера MS типу з асинх ...
  • Реферат на тему: Інсайт як результат реалізації творчого завдання
  • Реферат на тему: Значення, завдання, джерела інформації для аналізу виробництва та реалізаці ...
  • Реферат на тему: Розробка алгоритму програми на мові С + +, яка обчислює значення ємності і ...
  • Реферат на тему: Завдання та значення Конституції України