МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра ЕОМ
/
КУРСОВА РОБОТА
з курсу
“Комп’ютерна схемотехніка” і
“моделювання комп’ютерних систем.”
На тему:
«Розробка спеціалізованого обчислювача»
ЗМІСТ
Завдання……………………………………………………………………………..3
Структурна схема спецобчислювача………………………………………………4
Блок схема алгоритму задачі……………………………………………………….5
Мікропрограма у відповідності із заданим варіантом…………………………….6
Граф МПА…………………………………………………………………………...7
Перевірка правильності роботи обчислювача…………………………………….8
Функціональна схема спеціалізованого обчислювача……………………………9
Принципова схема та її опис…………………….………………………………...10
Обчислення загального часу роботи алгоритму множення……………………..17
Опис автомата керування ………………………………………………………...18
9.1. Таблиця прошиття ПЗП……………………………………………………….19
VHDL реалізація проекту………………………………………………………….20
10.1. Результати моделювання…………………………………………………….20
10.2. VHDL опис використаних пристроїв……………………………………….21
ВИСНОВКИ…………………………………………………………………...………29
Список використаної літератури. ………………………………………..…………..30
Додатки
ЗАВДАННЯ:
Розробити спеціалізований обчислювач, що має відповідати наступним вимогам :
структурна схема обчислювача : мікропрограмний автомат Мілі;
робоча формула : див. таблицю (варіант задається керівником проекту);
формат даних : 8 бітний доповняльний код
інформаційний обмін здійснюється через паралельну 8-ти розрядну двонаправлену шину даних за допомогою додаткових сигналів синхронізації ( рівні сигналів сумісні з ТТЛ );
керуючий автомат реалізувати на основі ПЗП та регістра;
напруга живлення та тактові імпульси надходять від зовнішнього джерела а сигнал початкового скидання також формується ззовні.
Згідно варіанту 17 формула: (7Хі-Хі+1)/8
К-сть введених значень: 11
Структурна схема спецобчислювача
На рис 1. подана структурна схема спецобчислювача.
/
Рис.1 Структурна схема спецобчислювача
Схема складається з двох елементів, а саме операційного пристрою, і пристрою керування.
Операційний пристрій виконує обрахунок заданої формули за допомогою значень, що надходять ззовні через двонаправлену шину вводу/виводу даних.
Пристрій керування реалізований на автоматі Мілі, він подає відповідні сигнали керування операційному пристрою для коректного опрацювання даних.
Блок схема алгоритму задачі
Мікропрограма у відповідності із заданим варіантом
Поточний стан
Дія
Наступний стан
Коментар
S0
CLR
Йти до S1
Початок
S1
WR_RDY
Йти до S2
Дозвіл на запис числа
S2
WR
Йти до S3
Запис числа
S3
+1
Йти до S4
Інкремент
S4
I=5
Якщо I<11 йти в S1,
Інакше йти в S5
Виставити в лч число
S5
Read RAM
Йти до S6
Читання з ОЗП
S6
SUM ALU 7
Йти до S7
7*Хі
S7
Write RAM
Йти до S8
Запис в ОЗП
S8
+1
Йти до S9
Інкремент
S9
Read Ram
Йти до S10
Читання з ОЗП
S10
NOT Xi+1
Йти до S11
Інверсія B
S11
(NOT Xi+1)+1
Йти до S12
+1 (Доповняльний код)
S12
Write Ram
Йти до S13
Запис в ОЗП
S13
-1
Йти до S14
Декремент
S14
Read Ram
Йти до S15
Читання з ОЗП
S15
SUM ALU A+B
Йти до S16
А+B
S16
RG3
Йти до S17
Зсув регістра 3 рази (A+B)/8
S17
Write RAM
Йти до S18
Запис в ОЗП
S18
+1
Йти до S19
Інкремент
S19
Out
Якщо І<15 йти в S6, інакше йти до S20
Вивід результату
S20
Restart
Йти до S1
Кінець
Граф МПА
/
Перевірка правильності роботи обчислювача
(1;2) =
7∗1−2
8
=
7−2
8
=
00000111−00000010
00001000
=
00000101
00001000
=00
(2;3) =
7∗2−2
8
=
14−3
8
=
00001110−00000011
00001000
=
00001011
00001000
=01
(3;4) =
7∗3−4
8
=
21−4
8
=
00010101−00000100
00001000
=
00010001
00001000
=02
(4;5) =
7∗4−5
8
=
28−5
8
=
00011100−00000101
00001000
=
00010111
00001000
=02
(5;6) =
7∗5−6
8
=
35−6
8
=
00100011−00000110
00001000
=
00011101
00001000
=03
(6;7) =
7∗6−7
8
=
42−7
8
=
00101010−00000111
00001000
=
00100011
00001000
=04
(7;8) =
7∗7−8
8
=
49−8
8
=
00110001−00001000
00001000
=
00101001
00001000
=05
(8;9) =
7∗8−9
8
=
56−9
8
=
00111000−00001001
00001000
=
00101111
00001000
=05
(9;10) =
7∗9−10
8
=
63−10
8
=
00111111−00001010
00001000
=
00110101
00001000
=06
(10;11) =
7∗10−11
8
=
70−11
8
=
01000110−00001011
00001000
=
00111011
00001000
=07
(11;12) =
7∗11−12
8
=
77−12
8
=
01001101−00001100
00001000
=
01000001
00001000
=08
Функціональна схема спеціалізованого обчислювача
На рис.2 подана функціональна схема спецобчислювача
Рис.2 Функціональна схема спецобчислювача
До складу вищенаведеного спеціалізованого обчислювача входять наступні елементи:
ОЗП;
Арифметико-логічний пристрій;
Регістр зсуву;
Лічильник адреси;
Буфер виводу;
Буфер вводу-виводу;
ПЗП;
Регістр автомата;
Інвертор.
Обмін інформацією виконується через паралельну 8-ми розрядну двонаправлену шину даних. Отримавши потрібний сигнал від пристрою керування, дані проходять через буфер вводу/виводу і записуються в пам’ять. Така послідовність дій повторюється N разів (з кожним повтором лічильник адреси збільшується на одиницю). Далі, в залежності від прошиття автомата керування, відбувається читання даних з пам’яті і обрахунок за допомогою цих пристроїв (додавання, ділення зсувом на 2, інверсія, і.т.д.). Після цього через буфер вводу/виводу виводимо дані порціями N разів.
Автомат керування реалізований на основі постійно запам’ятовуючого пристрою (ПЗП) і регістра. Для керування спецобчислювача потрібно 16 сигналів, також 8 сигналів потрібно для зворотнього зв’язку. Отож, автомат керування складається з поєднання трьох пар восьмирозрядного регістра і ПЗП.
7. Принципова схема та її опис
Принципова схема наведена в додатку А.
Оперативно запам’ятовуючий пристрій
На рис. 3 поданий оперативно запам’ятовуючий пристрій серії CY7C128A .
/
12 – Gnd; 24 - +5V
Рис.3. ОЗП
ОЗП серії IDT611SA являє собою асинхронну оперативну пам’ять об’ємом 16 кбіт. Організація пам’яті 2К х 8.
Таблиця даного ОЗП приведена в таблиці 1.
Таблиця 1
Режим
CE
OE
WE
DQ
Збереження
0
1
1
Z
Запис
0
0
0
DATAin
Читання
0
0
1
DATAout
Неробочий режим
1
X
X
Z
Арифметико-логічний пристрій
На рис. 4 поданий АЛП серії ТТЛ К155ИП3
/
12 – Gnd; 24 - +5VРис.4. АЛП
Мікросхема ИП3 – 4-розрядний швидкісний АЛП. Він може працювати в двох режимах, виконуючи або 16 логічних, або 16 арифметичних операцій. Для отримання максимальної швидкодії при обробці багаторозрядних цифрових слів в схемі.
Таблиця істинності даного АЛП зображена в табл.2.
Таблиця 2
Вибір функції
Пряма логіка
Інверсна логіка
C3
C2
C1
C0
Логічні функції
(M=1)
Арифметичні функції
(M=0)
Логічні функції
(M=1)
Арифметичні функції
(M=0)
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
Регістр зсуву
На рис. 5 подана мікросхема серії ТТЛ К155ИР13 , яка являє собою універсальний, восьми розрядний, синхронний регістр зсуву
/
12 – Gnd; 24 - +5V
Рис.5. Універсальний регістр
Кожна операція триває в регістрі не більше 20 нс, тому він придатний для обслуговування швидкісних процесорів та ЗУ як буферний накопичувач байта. Синхронну роботу регістру забезпечують спеціальні входи вибору режиму S0 і S1. У таблиці вказані поєднання рівнів на цих входах, що дозволяють переводити регістр в режими: зберігання (на входах S0 і S1 напруги низького рівня), паралельної завантаження (на цих входах напруги високого рівня), зсуву вліво (S1-в, S0-н) та зсуву вправо (S1-н, SO-в).
Таблиця істинності даного регістра зображена в табл.3.
Таблиця 3
Режим роботи
Вхід
Вихід
C
/R
S0
S1
DR
DL
Q0
Q1-Q6
Q7
Скид
x
0
x
x
x
x
0
0-0
0
Зберігання
↑
1
0
0
x
x
q0
q1-q6
q7
Зсув вліво
↑
1
0
0
x
1
q1
q2-q7
0
↑
1
1
0
x
1
q1
q2-q7
1
Зсув вправо
↑
1
0
1
0
x
0
q0-q5
q6
↑
1
0
1
1
x
1
q0-q5
q6
Крім універсального регістра зсуву, в схемі є і регістр автомата (D5, D7, D9). Разом з ПЗП вони утворюють керуючий пристрій, який подає відповідні сигнали керування операційному пристрою для коректного опрацювання даних.
Лічильник адрес
На рис. 6 подана мікросхема серії ТТЛ К155ИЕ7, яка являє собою лічильник.
/
8 – Gnd; 16 - +5V
Рис.6. Лічильник
Лічильник представляє із себе двійковий синхронний лічильник. ИЕ7 має асинхронне скидання і асинхронне початкове завантаження.
Таблиця істинності лічильника подана на рис. 7.
/
Рис.7. Таблиця істинності лічильника
Буфер
На рис. 8 подана мікросхема серії SN74LV245 , яка являє собою двонаправлений буфер з можливістю переходу в третій стан.
/
10 – Gnd; 20 - +5V
Рис.8. Буфер
Таблиця істинності показана в табл. 4.
Таблиця 4
Dir
OE
0
0
A<=B
0
1
ZZZZZ
1
0
B<=A
1
1
ZZZZZ
В таблиці 3 символи «ZZZZZ» позначають високий імпеданс.
Вирази «A<=B» означає присвоєння сигналу А значення сигналу В.
Вирази «B<=A» означає присвоєння сигналу B значення сигналу A
Постійний запам’ятовуючий пристрій
Запам'ятовуючі пристрої (ЗП) цифрової техніки призначені для запису, зберігання та видачі така інформація, яка неповинна змінюватись, наприклад, константи, табличні значення, коефіцієнти перетворень і т.ін.
Така інформація записується у постійний запам'ятовуючий пристрій, для якого дозволяється тільки зчитування інформації, яка в нього занесена. Інформація, що представляється у вигляді цифрового коду.
На рис.9 подана мікросхема серії К573РФ2 , яка являє собою постійний запам’ятовуючий пристрій.
/
Рис. 9 ПЗП
В ПЗП за кожною n-розрядною адресою записане одне завчасно визначене m-вимірне слово.
Таким чином, ПЗП є перетворювачем коду адреси в код слова, тобто комбінаційною схемою з n входами та m виходами. Накопичувач ПЗП апаратно виконується у вигляді системи взаємно-перпендикулярних шин, на
перетині яких або присутній (логічна 1), або відсутній (логічний 0) елемент, що пов'язує між собою відповідні горизонтальну та вертикальну шини. Вибірка слів виконується за допомогою дешифратора.
Інвертор
На рис.10 подана мікросхема серії ЛН1 (4-НЕ) , яка являє собою інвертор, для зміни цифрового сигналу на протилежний.
/
Рис.10. Інвертор
Таблиця істинності показана в табл. 5.
Таблиця 5
/
/
0
1
1
0
Обчислення загального часу роботи алгоритму множення
Такт вводу:
Для того, щоб записати одне число в пам’ять необхідно 3 такти.
Ми записуємо 11 чисел, тому для запису чисел необхідно 33 такти.
Щоб закінчити цикл вводу, ми переходимо на 2 старші адреси, тому необхідно ще 2 такти.
Загалом 35 тактів.
Такт виводу:
Для того, щоб вивести одне число в пам’ять необхідно 2 такти.
Ми виводимо 11 чисел, тому для запису чисел необхідно 22 такти.
Щоб закінчити цикл вводу, ми переходимо на 2 старші адреси, тому необхідно ще 2 такти.
Загалом 24 такти.
Такт обчислення:
Для обчислення одного результату необхідно 34 такти.
Ми виконуємо 11 обчислень, тому для множення необхідно 374 такти.
Щоб закінчити цикл вводу, ми переходимо на 2 старші адреси, тому необхідно ще 2 такти.
Загалом 376 тактів.
Додаємо ще 2 такти на виставлення адреси початку роботи, та проміжні 2 такти.
Загальна к-сть тактів: 439 тактів.
Опис автомата керування
Структура регістру керування автоматом подана в табл.6.
Таблиця 6
Буфер вводу/виводу:
Сигнал ОЕ:
Якщо сигнал OE = 0,то буфери відкриваються і дані передаються на
вихід. Якщо OE =1, то буфери установлюються в Z-стан. Сигнал OE не впливає на стан тригерів та функцію записування інформації.
Сигнал DIR:
При значенні сигналу DIR = 0, буфери відкриваються і дані передаються на
вихід. Якщо DIR =1, то буфери установлюються в Z-стан. Сигнал DIR
впливає на стан тригерів та функцію записування інформації.
Лічильник:
+1 - інкремент
-1 - декремент
Load – паралельний запис
Оперативно запам’товуючий пристрій:
WE-режим запису\читання
ОЕ-дозвіл виводу на виходи ОЗП
Регістр :
So – вхід для вибору команди запису/зсуву вправоСLK - синхроімпульс
Арифметично-логічний пристрій:
S0....S3 – входи вибору функціїM – вхід вибору логіки
Ро – вхідний перенос
Таблиця прошиття ПЗП
Таблиця прошиття ПЗП подана в додатку Б.
VHDL реалізація проекту
/
Рис.11 Робоча схема у програмі VHDL
Результати моделювання
Приклад роботи програми при введенні чисел (2;3):
/
Рис. 12 Введення даних
/
Рис. 13 Виведення результату
VHDL опис використаних пристроїв
Лічильник:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_unsigned.all;
entity CNTR is
port(
L : in STD_LOGIC;
INC : in STD_LOGIC;
DEC : in STD_LOGIC;
R : in STD_LOGIC;
D : in STD_LOGIC_VECTOR(3 downto 0);
CO : out STD_LOGIC;
BO : out STD_LOGIC;
Q : out STD_LOGIC_VECTOR(3 downto 0)
);
end CNTR;
--}} End of automatically maintained section
architecture CNTR of CNTR is
signal MEM:std_logic_vector(3 downto 0):="0000";
begin
process(L,INC,DEC,R,MEM,D)
begin
if R='1' then
MEM<=(others=>'0');
CO<='0'; BO<='0';
Q<=(others=>'0');
else
if L='0' then
Q<=D;
MEM<=D; BO<='0'; CO<='0';
elsif rising_edge(INC) and DEC='1' then
MEM<=MEM+1;
Q<=MEM+1;
elsif rising_edge(DEC) and INC='1' then
MEM<=MEM-1;
Q<=MEM-1;
end if;
if INC='1' and MEM="1111" then
CO<='1';
else CO<='0';
end if;
if DEC='1'and MEM="0000" then
BO<='1';
else BO<='0';
end if;
end if;
end process;
end CNTR;
ОЗП:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.std_logic_unsigned.all;
entity RAM_2k_8 is
port(
WE : in STD_LOGIC;
CE : in STD_LOGIC;
OE : in STD_LOGIC;
A : in STD_LOGIC_VECTOR(3 downto 0);
DQ : inout STD_LOGIC_VECTOR(7 downto 0)
);
end RAM_2k_8;
architecture RAM_2k_8 of RAM_2k_8 is
type MEM_2K_4 is array (0 to 15) of std_logic_vector(7 downto 0);
signal RAM_MEM:MEM_2K_4 := ("00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000",
"00000000");
begin
process(OE,WE,A)
begin
if OE='0' then
if WE='0' then
RAM_MEM(conv_integer(A))<=DQ;
end if;
if WE='1' then
DQ<=RAM_MEM(conv_integer(A));
end if;
else
DQ<=(others=>'Z');
end if;
end process;
end RAM_2k_8;
АЛП:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_UNSIGNED.all;
use ieee.std_logic_arith.all;
entity ALU is
port (
MC: in STD_LOGIC;
Cn: in STD_LOGIC;
B: in STD_LOGIC_vector (7 downto 0);
A: in STD_LOGIC_vector (7 downto 0);
S: in STD_LOGIC_vector (3 downto 0);
P: out STD_LOGIC;
G: out STD_LOGIC;
Cn_plus_4: out STD_LOGIC;
AeqB: out STD_LOGIC;
F: out STD_LOGIC_vector (7 downto 0)
)
end ALU;
-}} End of automatically maintained section
architecture ALU of ALU is
begin
process (MC, A, B, Cn, S)
begin
if MC = '1 'then
case S is
when "0000" => F <= not A;
when "0001" => F <= "ZZZZZZZZ";
when "0010" => F <= "ZZZZZZZZ";
when "0011" => F <= "ZZZZZZZZ";
when "0100" => F <= "ZZZZZZZZ";
when "0101" => F <= not B; -
when "0110" => F <= "ZZZZZZZZ";
when "0111" => F <= "ZZZZZZZZ";
when "1000" => F <= "ZZZZZZZZ";
when "1001" => F <= "ZZZZZZZZ";
when "1010" => F <= B; -
when "1011" => F <= "ZZZZZZZZ";
when "1100" => F <= "ZZZZZZZZ";
when "1101" => F <= "ZZZZZZZZ";
when "1110" => F <= A + B;
when "1111" => F <= A; -
when others => F <= "ZZZZZZZZ";
end case;
end if;
if MC = '0 'and Cn = '0' then
case S is
when "0000" => F <= A + conv_std_logic_vector (not Cn, 8); - Cn_inner;
when "0001" => F <= "ZZZZZZZZ";
when "0010" => F <= "ZZZZZZZZ";
when "0011" => F <= "ZZZZZZZZ";
when "0100" => F <= "ZZZZZZZZ";
when "0101" => F <= "ZZZZZZZZ"; -
when "0110" => F <= "ZZZZZZZZ";
when "0111" => F <= "ZZZZZZZZ";
when "1000" => F <= "ZZZZZZZZ";
when "1001" => F <= "ZZZZZZZZ";
when "1010" => F <= "ZZZZZZZZ"; -
when "1011" => F <= "ZZZZZZZZ";
when "1100" => F <= "ZZZZZZZZ";
when "1101" => F <= "ZZZZZZZZ";
when "1110" => F <= "ZZZZZZZZ";
when "1111" => F <= "ZZZZZZZZ"; -
when others => F <= "ZZZZZZZZ";
end case;
end if;
end process;
end ALU;
Універсальний регістр:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity RGUn is
port (
DR: in STD_LOGIC;
DL: in STD_LOGIC;
S0: in STD_LOGIC;
S1: in STD_LOGIC;
R: in STD_LOGIC;
C: in STD_LOGIC;
D: in STD_LOGIC_VECTOR (8 downto 1);
Q: out STD_LOGIC_VECTOR (8 downto 1)
)
end RGUn;
-}} End of automatically maintained section
architecture RGUn of RGUn is
begin
process (C, R, S0)
begin
if R = '0 'then Q (8 downto 1) <= "00000000";
elsif rising_edge (C) then - R = '1 '
if S0 = '1 'then
Q <= D;
else
Q (7 downto 1) <= D (8 downto 2);
Q (8) <= D (8);
end if;
end if;
end process;
- Enter your statements here -
end RGUn;
Буфер даних:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity BUF is
port(
DIR : in STD_LOGIC;
OE : in STD_LOGIC;
A : inout STD_LOGIC_VECTOR(7 downto 0);
B : inout STD_LOGIC_VECTOR(7 downto 0)
);
end BUF;
architecture BUF of BUF is
begin
process(OE,DIR)
begin
if OE='0' and DIR='0' then
A<=B;
elsif OE='0' and DIR='1' then
B<=A;
else A<="ZZZZZZZZ";B<="ZZZZZZZZ";
end if;
end process;
end BUF;
Автомат:
library IEEE;
use IEEE.STD_LOGIC_1164.all;
use IEEE.STD_LOGIC_UNSIGNED.all;
use ieee.std_logic_arith.ALL;
entity ROM is
port(
ESE : in STD_LOGIC;
A : in std_logic_vector(7 downto 0);
AE_15 : in std_logic;
D : out STD_LOGIC_VECTOR(23 downto 0)
);
end ROM;
architecture ROM of ROM is
begin
process (A)
variable A_temp:integer;
begin
A_temp:= conv_integer(AE_15 & A(7 downto 0));
case A_temp is
when 0 => D <= x"01D80F";
when 1 => D <= x"02F80C";
when 2 => D <= x"03600F";
when 3 => D <= x"01F80F";
when 5 => D <= x"06F54F";
when 6 => D <= x"07F77F";
when 7 => D <= x"08F76F";
when 8 => D <= x"09F77F";
when 9 => D <= x"0AF76F";
when 10 => D <= x"0BF77F";
when 11 => D <= x"0CF76F";
when 12 => D <= x"0DF77F";
when 13 => D <= x"0EF76F";
when 14 => D <= x"0FF77F";
when 15 => D <= x"10F76F";
when 16 => D <= x"11F77F";
when 17 => D <= x"12F76F";
when 18 => D <= x"13F77F";
when 19 => D <= x"14FFDB";
when 20 => D <= x"15E7DB";
when 21 => D <= x"167FDF";
when 22 => D <= x"17F2EF";
when 23 => D <= x"18F2FF";
when 24 => D <= x"19F00F";
when 25 => D <= x"1AF01F";
when 26 => D <= x"1BB8CF";
when 27 => D <= x"1CF76F";
when 28 => D <= x"1DF77F";
when 29 => D <= x"1EFFCF";
when 30 => D <= x"1FFFD7";
when 31 => D <= x"20FFCF";
when 32 => D <= x"21FFD7";
when 33 => D <= x"22FFCF";
when 34 => D <= x"23FFD7";
when 35 => D <= x"24FFDB";
when 36 => D <= x"25E7DB";
when 37 => D <= x"26780F";
when 38 => D <= x"05F80F";
when 39 => D <= x"28700F";
when 40 => D <= x"27F80E";
when 42 => D <= x"30F80F";
when 258 => D <= x"04D80F";
when 260 => D <= x"05F80F";
when 280 => D <= x"19D80F";
when 281 => D <= x"27F80F";
when 296 => D <= x"2AD80F";
when 297 => D <= x"29F80F";
when others => D <= "ZZZZZZZZZZZZZZZZZZZZZZZZ";
end case;
end process;
end ROM;
ВИСНОВКИ
В результаті виконання даної роботи я спроектував спеціалізований обчислювач, який обчислює наперед задану формулу, використовуючи вхідні дані. Даний обчислювач є восьмирозрядний. Оскільки фізично я його не реалізовував, то для перевірки роботи я промоделював його в середовищі “Active-HDL 9.1”. В результаті моделювання я переконався, що обчислювач спроектований правильно і працює коректно.
Список використаної літератури
Архітектура комп’ютера ./ Під ред. Мельник А.О., 2008;
Datasheets for electronics components www.datasheetcatalog.com
Компьютерная схемотехніка, Бабич Н.П., 2004;
Structured computer organiztion, Andrew S.Tanenbaum, 2007;
Цифровые интегральные схемы: Справочник./ Под ред. П.П. Мальцева. — М.: Радио и связь, 1994;
Новейшая энциклопедия компьютера, Леонтьев В.П.,2011;
МИКРОЭЛЕКТРОНИКА, А.В. Шарапов, 2007;
Схемотехника электронных средств, Лаврентьев Б.Ф., 2010
Цифровая схемотехніка, Угрюмов Е.