Реферат: Разработка управляющей части автомата для сложения двух чисел с плавающей запятой в дополнительном коде с помощью модели Мура
СодержаниеСтр.
Задание............................................................... .3
1йраздел. Разработка машинного алгоритма выполнения операций............... 3
1.1.Построение алгоритмаопераций....................................... 3
1.2.Пример выполнения сложения,оценка погрешности....................... 5
2йраздел. Разработка ГСА и функциональной схемы ОА........................ 5
2.1. Разработка ГСА..................................................... .5
2.2. Построение функциональной схемы ОА................................. 7
3йраздел. Разработка логической схемы управляющей части автомата............ .8
3.1. Составление таблицы переходов-выходов............................... .8
3.2. Граф автомата Мура................................................. 9
3.3.Построение функций возбуждения входов триггеров и логической схемы... .10
4йраздел. Оценка времени выполнения микропрограммы...................... .12
Заключение.............................................................. 14
ЗаданиеРазработать управляющуючасть автомата для сложения двух чисел с плавающей запятой в дополнительномкоде с помощью модели Мура. Логическую схему реализовать в базисе «И-НЕ» наD-триггерах.
Раздел 1.Разработка машинного алгоритма выполнения операции.
Шаг 1. Сравнить порядки чисел A и B. Вычислитьразность порядков чисел. Если Dp³14, то выдать число A и закончить выполнение.Если Dp£-14,то выдать число B и закончить выполнение. Если 0 £Dp <14,то сдвинуть мантиссу числа B на çDpç разрядов вправо. Если 0 >Dp >-14,то сдвинуть мантиссу числа А на çDpç разрядов вправо. Порядокответа равен большему порядку.
Шаг 2. Сложить мантиссы поправилам ДК.
Шаг 3. Проверить условиенормализации g.Если оно не выполняется,сдвинуть сумму на один разряд вправо, к порядку результата прибавить единицу иперейти к п. 5.
Шаг 4. Циклически проверятьусловие нормализации d.Еслионо не выполняется, сдвинуть сумму на один разряд влево, от порядка результатаотнять единицу.
Шаг 5. Проверить сумматорпорядков на переполнением. Если возникло переполнение, установить флаг №1. Есливозникла ошибка типа «машинный ноль», установить флаг №2.
Блок-схема имеет следующийвид.
1
1
<img src="/cache/referats/8087/image001.gif" v:shapes="_x0000_s1259"> <img src="/cache/referats/8087/image002.gif" v:shapes="_x0000_s1260 _x0000_s1292"> <div v:shape="_x0000_s1296"> <img src="/cache/referats/8087/image003.gif" v:shapes="_x0000_s1261 _x0000_s1294"> <div v:shape="_x0000_s1297"> <div v:shape="_x0000_s1295">1
<div v:shape="_x0000_s1298">3
<img src="/cache/referats/8087/image004.gif" v:shapes="_x0000_s1086">1
<img src="/cache/referats/8087/image005.gif" v:shapes="_x0000_s1084"><img src="/cache/referats/8087/image006.gif" v:shapes="_x0000_s1083"><img src="/cache/referats/8087/image007.gif" v:shapes="_x0000_s1082"><img src="/cache/referats/8087/image008.gif" v:shapes="_x0000_s1078"><img src="/cache/referats/8087/image009.gif" v:shapes="_x0000_s1077"><img src="/cache/referats/8087/image010.gif" v:shapes="_x0000_s1076"><img src="/cache/referats/8087/image011.gif" v:shapes="_x0000_s1075"><img src="/cache/referats/8087/image012.gif" v:shapes="_x0000_s1074"><img src="/cache/referats/8087/image013.gif" v:shapes="_x0000_s1073"><img src="/cache/referats/8087/image001.gif" v:shapes="_x0000_s1072"><img src="/cache/referats/8087/image014.gif" v:shapes="_x0000_s1071">СМП(0)=0
<img src="/cache/referats/8087/image015.gif" СМП(0)=«0» v:shapes="_x0000_s1070"><div v:shape="_x0000_s1069">СММ:=РгВ(0:15);
СМП:=РгВ(16:21)
<div v:shape="_x0000_s1068">СММ:=РгА(0:15);
СМП:=РгА(16:21)
[СМП]<=-14
<img src="/cache/referats/8087/image016.gif" [СМП]<="-14" v:shapes="_x0000_s1067"><div v:shape="_x0000_s1066">СМП:=РгА(16:21) -РгВ(16:21)
[СМП]>=14
<img src="/cache/referats/8087/image017.gif" [СМП]>=«14» v:shapes="_x0000_s1065"><div v:shape="_x0000_s1064">РгА:=А; РгB:=В; СММ:=0; F1:=0; F2:=0
Начало <img src="/cache/referats/8087/image018.gif" v:shapes="_x0000_s1063">2
<img src="/cache/referats/8087/image019.gif" v:shapes="_x0000_s1085"><img src="/cache/referats/8087/image020.gif" v:shapes="_x0000_s1081">
<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">[СМП]=0
[СМП]=0
РгА(0:15);
СМП:=[СМП]+1
РгВ(0:15);
СМП:=[СМП]-1
СМП:=РгВ(16:21)
СМП:=РгА(16:21)
СММ:=РгА(0:15)+РгВ(0:15); F1:=СМП(0)
g
[СММ];
СМП:=[СМП]+1
[СММ];
СМП:=[СМП]-1
d
F1&ùСМП(0)
ùF1&СМП(0)
F1:=0;
F2:=1
F1:=0
F1:=1
Конец
1
1
1
1
1
1
<img src="/cache/referats/8087/image021.gif" v:shapes="_x0000_s1183 _x0000_s1184 _x0000_s1185 _x0000_s1186 _x0000_s1187 _x0000_s1189 _x0000_s1190 _x0000_s1191 _x0000_s1192 _x0000_s1194 _x0000_s1195 _x0000_s1196 _x0000_s1198 _x0000_s1199 _x0000_s1200 _x0000_s1201 _x0000_s1202 _x0000_s1203 _x0000_s1204 _x0000_s1205 _x0000_s1206 _x0000_s1207 _x0000_s1208 _x0000_s1209 _x0000_s1210 _x0000_s1211 _x0000_s1212 _x0000_s1213 _x0000_s1214 _x0000_s1216 _x0000_s1217 _x0000_s1218 _x0000_s1219 _x0000_s1220 _x0000_s1221 _x0000_s1222 _x0000_s1223 _x0000_s1224 _x0000_s1225 _x0000_s1226 _x0000_s1227 _x0000_s1228 _x0000_s1229 _x0000_s1230 _x0000_s1231 _x0000_s1232 _x0000_s1233 _x0000_s1234 _x0000_s1235 _x0000_s1236 _x0000_s1237 _x0000_s1238 _x0000_s1239 _x0000_s1240 _x0000_s1241 _x0000_s1242 _x0000_s1243 _x0000_s1244 _x0000_s1245 _x0000_s1246 _x0000_s1247 _x0000_s1248 _x0000_s1249 _x0000_s1250 _x0000_s1251 _x0000_s1252 _x0000_s1253 _x0000_s1254 _x0000_s1255 _x0000_s1256 _x0000_s1299 _x0000_s1300 _x0000_s1302 _x0000_s1303 _x0000_s1304 _x0000_s1305 _x0000_s1306 _x0000_s1307 _x0000_s1308 _x0000_s1309 _x0000_s1310 _x0000_s1311 _x0000_s1312 _x0000_s1830 _x0000_s1831">3
<img src="/cache/referats/8087/image022.gif" v:shapes="_x0000_s1182">2
<img src="/cache/referats/8087/image023.gif" v:shapes="_x0000_s1181">1
<img src="/cache/referats/8087/image024.gif" v:shapes="_x0000_s1180"> <img src="/cache/referats/8087/image026.gif" v:shapes="_x0000_s1262">
Рассмотрим примервыполнения операции.
<img src="/cache/referats/8087/image028.gif" v:shapes="_x0000_s1263">
При сдвиге мантиссычисла В получается погрешность, равная:
Раздел 2. Разработка ГСА и функциональной схемы ОА.
Регистры РгА и РгВ имеют 22разряда: биты 0-1 – знак числа, биты 2-15 – мантисса, бит 16 – знак порядка, бит17-21 – порядок. Сумматор мантисс СММ имеет следующую структуру: биты 0-1 –знак, биты 2-15 – мантисса. Сумматор порядков СМП имеет следующую структуру:бит 0 – знак, биты 1-5 – порядок. Используются два одноразрядныхрегистра в качестве флагов переполнения F1 и машинного нуля F2. Типы слов,используемых в микропрограмме, представлены в таблице.
Тип Слово Пояснение IA(0:21)
Первое слагаемое
I
B(0:21)
Второе слагаемое
L
PrA(0:21)
Регистр А
L
PrB(0:21)
Регистр В
LO
CMM(0:15)
Сумматор мантисс
LO
CMП(0:5)
Сумматор порядков
LO
F1(0)
Флаг переполнения
LO
F2(0)
Флаг машинного нуля
Список микроопераций илогических условий представлен в таблице.
Y1
РгА:=А
X1
ùT0&T2&T3&T4 ÚùT0&T1 Ú
ÚùРгА(16)&РгВ(16)&T0
Y2РгВ:=В
X2
T0&ùT2&ùT3&(ùT4 ÚùT5) Ú Ú T0&ùT1 Ú РгА(16)&ùРгВ(16)&ùT0
Y3
СММ:=0
X3
T0=0
Y4
F1:=0
X4
СМП=0
Y5
F2:=0
X5
Z0&ùZ1ÚùZ0&Z1
Y6
СМП:=РгА(16:21)+ù РгВ(16:21)+1
X6
Z0&Z1 ÚùZ0&ùZ1
Y7
СММ:=РгА(0:15)
X7
ùF1&T0
Y8
СМП:=РгА(16:21)
X8
F1&ùT0
Y9
СММ:=РгВ(0:15)
Y10
СМП:=РгВ(16:21)
Y11
РгА(0:15):=R1(РгА(0).РгА(0:15))
Y12
СМП:=СМП+1
Y13
РгВ(0:15):=R1(РгВ(0).РгВ(0:15))
Y14
СМП:=СМП-1
Y15
СММ:=РгА(0:15)+РгВ(0:15)
Y16
F1:=СМП(0)
Y17
СММ:=R1(СММ(0).СММ(0:15))
Y18
СММ:=L1(СММ(0:15).0)
Y19
F1:=1
Y20
F2:=1
Ti – разряды СМП, Zi –разряды СММ. Условия X5 и X6 соответствуют условиям g иd вблок-схеме.
ГСА имеет вид:
Начало
Y1, Y2, Y3, Y4, Y5
Y6X1
X21
Y7, Y8
Y9, Y10
2
1
1
b0
b1
b2
b3
b4
<img src="/cache/referats/8087/image029.gif" v:shapes="_x0000_s1313 _x0000_s1314 _x0000_s1315 _x0000_s1316 _x0000_s1317 _x0000_s1318 _x0000_s1319 _x0000_s1320 _x0000_s1321 _x0000_s1322 _x0000_s1323 _x0000_s1324 _x0000_s1325 _x0000_s1326 _x0000_s1327 _x0000_s1328 _x0000_s1329 _x0000_s1330 _x0000_s1331 _x0000_s1332 _x0000_s1415 _x0000_s1416 _x0000_s1417 _x0000_s1419 _x0000_s1467 _x0000_s1468 _x0000_s1469 _x0000_s1470 _x0000_s1471">
1
X3 X4 X4Y11, Y12
Y13, Y14
Y10
Y8
Y15, Y16
X5Y17, Y12
X62
1
1
1
1
1
Y18, Y14
X8 X7Y4
Y19
Y4, Y20
Конец
1
1
b5
b6
b7
b8
b9
b10
b11
b12
b13
b14
b0
<img src="/cache/referats/8087/image030.gif" v:shapes="_x0000_s1334 _x0000_s1336 _x0000_s1339 _x0000_s1340 _x0000_s1343 _x0000_s1344 _x0000_s1345 _x0000_s1346 _x0000_s1347 _x0000_s1348 _x0000_s1349 _x0000_s1350 _x0000_s1352 _x0000_s1353 _x0000_s1354 _x0000_s1355 _x0000_s1356 _x0000_s1357 _x0000_s1359 _x0000_s1361 _x0000_s1362 _x0000_s1363 _x0000_s1364 _x0000_s1365 _x0000_s1366 _x0000_s1368 _x0000_s1370 _x0000_s1371 _x0000_s1372 _x0000_s1373 _x0000_s1375 _x0000_s1381 _x0000_s1382 _x0000_s1383 _x0000_s1384 _x0000_s1385 _x0000_s1386 _x0000_s1393 _x0000_s1396 _x0000_s1397 _x0000_s1400 _x0000_s1401 _x0000_s1411 _x0000_s1412 _x0000_s1420 _x0000_s1421 _x0000_s1422 _x0000_s1423 _x0000_s1424 _x0000_s1425 _x0000_s1426 _x0000_s1427 _x0000_s1428 _x0000_s1429 _x0000_s1430 _x0000_s1431 _x0000_s1437 _x0000_s1438 _x0000_s1439 _x0000_s1440 _x0000_s1441 _x0000_s1442 _x0000_s1443 _x0000_s1444 _x0000_s1445 _x0000_s1446 _x0000_s1447 _x0000_s1448 _x0000_s1449 _x0000_s1450 _x0000_s1451 _x0000_s1452 _x0000_s1453 _x0000_s1454 _x0000_s1455 _x0000_s1456 _x0000_s1457 _x0000_s1458 _x0000_s1459 _x0000_s1460 _x0000_s1461 _x0000_s1462 _x0000_s1463 _x0000_s1464 _x0000_s1465 _x0000_s1466 _x0000_s1472 _x0000_s1473 _x0000_s1474 _x0000_s1475 _x0000_s1476 _x0000_s1477 _x0000_s1478 _x0000_s1479 _x0000_s1480 _x0000_s1481 _x0000_s1482">Функциональная схема ОАимеет вид:
<div v:shape="_x0000_s1695">
X5, X6
<div v:shape="_x0000_s1693">Y16
<img src="/cache/referats/8087/image031.gif" v:shapes="_x0000_s1692"><img src="/cache/referats/8087/image032.gif" v:shapes="_x0000_s1691"><img src="/cache/referats/8087/image033.gif" v:shapes="_x0000_s1690"><img src="/cache/referats/8087/image034.gif" v:shapes="_x0000_s1689"><img src="/cache/referats/8087/image035.gif" v:shapes="_x0000_s1688"><img src="/cache/referats/8087/image036.gif" v:shapes="_x0000_s1687"><div v:shape="_x0000_s1686">Y14
<img src="/cache/referats/8087/image037.gif" v:shapes="_x0000_s1685"><div v:shape="_x0000_s1684">Y12
<img src="/cache/referats/8087/image038.gif" v:shapes="_x0000_s1683"><div v:shape="_x0000_s1682">Y17
<div v:shape="_x0000_s1681">Y18
<img src="/cache/referats/8087/image039.gif" v:shapes="_x0000_s1680"><img src="/cache/referats/8087/image040.gif" v:shapes="_x0000_s1679"><img src="/cache/referats/8087/image041.gif" v:shapes="_x0000_s1678"><img src="/cache/referats/8087/image042.gif" v:shapes="_x0000_s1677"><div v:shape="_x0000_s1676">Y3
<img src="/cache/referats/8087/image043.gif" v:shapes="_x0000_s1675"><div v:shape="_x0000_s1674">Y9
<img src="/cache/referats/8087/image044.gif" v:shapes="_x0000_s1673"><img src="/cache/referats/8087/image045.gif" v:shapes="_x0000_s1672"><img src="/cache/referats/8087/image046.gif" v:shapes="_x0000_s1671"><div v:shape="_x0000_s1670">Y7
<img src="/cache/referats/8087/image047.gif" v:shapes="_x0000_s1669"><img src="/cache/referats/8087/image048.gif" v:shapes="_x0000_s1668"><img src="/cache/referats/8087/image049.gif" v:shapes="_x0000_s1667"><div v:shape="_x0000_s1666">Y1
<img src="/cache/referats/8087/image050.gif" v:shapes="_x0000_s1665"><div v:shape="_x0000_s1664">Y11
<img src="/cache/referats/8087/image051.gif" v:shapes="_x0000_s1663"><img src="/cache/referats/8087/image052.gif" v:shapes="_x0000_s1662"><div v:shape="_x0000_s1661">Y8
<img src="/cache/referats/8087/image053.gif" v:shapes="_x0000_s1660"><img src="/cache/referats/8087/image054.gif" v:shapes="_x0000_s1659"><img src="/cache/referats/8087/image055.gif" v:shapes="_x0000_s1658"><div v:shape="_x0000_s1657">Y5
<div v:shape="_x0000_s1656">Y20
<div v:shape="_x0000_s1655">Y19
<div v:shape="_x0000_s1654">Y4
<div v:shape="_x0000_s1653">Y10
<img src="/cache/referats/8087/image056.gif" v:shapes="_x0000_s1652"><img src="/cache/referats/8087/image057.gif" v:shapes="_x0000_s1651"><img src="/cache/referats/8087/image058.gif" v:shapes="_x0000_s1650"><div v:shape="_x0000_s1649">Y2
<img src="/cache/referats/8087/image059.gif" v:shapes="_x0000_s1648"><div v:shape="_x0000_s1647">Y13
<img src="/cache/referats/8087/image060.gif" v:shapes="_x0000_s1646"><img src="/cache/referats/8087/image061.gif" v:shapes="_x0000_s1645"><div v:shape="_x0000_s1644">X3
<img src="/cache/referats/8087/image062.gif" v:shapes="_x0000_s1643"><img src="/cache/referats/8087/image063.gif" v:shapes="_x0000_s1642"><img src="/cache/referats/8087/image064.gif" v:shapes="_x0000_s1641"><img src="/cache/referats/8087/image065.gif" v:shapes="_x0000_s1640"><img src="/cache/referats/8087/image066.gif" v:shapes="_x0000_s1639"><img src="/cache/referats/8087/image038.gif" v:shapes="_x0000_s1638"><div v:shape="_x0000_s1637">X4
<img src="/cache/referats/8087/image067.gif" v:shapes="_x0000_s1636"><div v:shape="_x0000_s1635">F2
<div v:shape="_x0000_s1634">F1
<div v:shape="_x0000_s1633">СММ
<div v:shape="_x0000_s1632">15
<div v:shape="_x0000_s1631">2
<img src="/cache/referats/8087/image068.gif" v:shapes="_x0000_s1630"><div v:shape="_x0000_s1629">0 1
<img src="/cache/referats/8087/image069.gif" v:shapes="_x0000_s1628"><div v:shape="_x0000_s1627">СМП
<div v:shape="_x0000_s1626">5
<div v:shape="_x0000_s1625">1
<img src="/cache/referats/8087/image068.gif" v:shapes="_x0000_s1624"><div v:shape="_x0000_s1623">0
<img src="/cache/referats/8087/image070.gif" v:shapes="_x0000_s1622"><div v:shape="_x0000_s1621">РгВ
<div v:shape="_x0000_s1620">21
<div v:shape="_x0000_s1619">17
<img src="/cache/referats/8087/image068.gif" v:shapes="_x0000_s1618"><div v:shape="_x0000_s1617">16
<div v:shape="_x0000_s1616">15
<img src="/cache/referats/8087/image071.gif" v:shapes="_x0000_s1615"><div v:shape="_x0000_s1614">2
<img src="/cache/referats/8087/image068.gif" v:shapes="_x0000_s1613"><div v:shape="_x0000_s1612">0 1
<img src="/cache/referats/8087/image072.gif" v:shapes="_x0000_s1611"><div v:shape="_x0000_s1610">РгА
<div v:shape="_x0000_s1609">21
<div v:shape="_x0000_s1608">17
<img src="/cache/referats/8087/image068.gif" v:shapes="_x0000_s1607"><div v:shape="_x0000_s1606">16
<div v:shape="_x0000_s1605">15
<img src="/cache/referats/8087/image061.gif" v:shapes="_x0000_s1604"><div v:shape="_x0000_s1603">2
<img src="/cache/referats/8087/image073.gif" v:shapes="_x0000_s1602"><div v:shape="_x0000_s1601">0 1
<img src="/cache/referats/8087/image074.gif" v:shapes="_x0000_s1600"><img src="/cache/referats/8087/image075.gif" v:shapes="_x0000_s1694">Раздел 3. Разработка логической схемы управляющей части автомата.
Каждое состояния автоматакодируется двоичным числом, равным индексу данного состояния. Например, b12 =1100. Таблица переходов-выходов имеет вид:
Код ABCD
Исх. сост.
Входной набор
Выходной набор
След. сост.
0000
B0
--
--
B1
0001
B1
--
Y1…Y5
B2
0010
B2
X1
Y6
B3
0010
B2
ùX1&X2
Y6
B4
0010
B2
ùX1&ùX2&ùX3&ùX4
Y6
B5
0010
<td