Натхненний недавньою популярністю нандгейму в ТНБ і моїм власним попереднім викликом .
Фон
Щільно упакований десятковий (DPD) - це спосіб ефективно зберігати десяткові цифри у двійкових. Він зберігає три десяткових цифри (000 до 999) в 10 біт, що набагато ефективніше, ніж наївний BCD (який зберігає одну цифру в 4 біти).
Таблиця переходів
DPD призначений для легкого перетворення між бітами та цифрами шляхом простого узгодження шаблону зверху вниз. Кожна бітова схема визначає, скільки високих цифр (8-9) має число, де вони знаходяться, і як переміщати біти, щоб утворити десятковий подання.
Далі наведена таблиця перетворення від 10 біт DPD до трьох десяткових цифр. Кожна десяткова цифра представлена у вигляді 4-розрядного двійкового (BCD). Обидві сторони записуються зліва направо від найбільш значущої цифри до найменшої.
Bits => Decimal (Digit range)
a b c d e f 0 g h i => 0abc 0def 0ghi (0-7) (0-7) (0-7)
a b c d e f 1 0 0 i => 0abc 0def 100i (0–7) (0–7) (8–9)
a b c g h f 1 0 1 i => 0abc 100f 0ghi (0–7) (8–9) (0–7)
g h c d e f 1 1 0 i => 100c 0def 0ghi (8–9) (0–7) (0–7)
g h c 0 0 f 1 1 1 i => 100c 100f 0ghi (8–9) (8–9) (0–7)
d e c 0 1 f 1 1 1 i => 100c 0def 100i (8–9) (0–7) (8–9)
a b c 1 0 f 1 1 1 i => 0abc 100f 100i (0–7) (8–9) (8–9)
x x c 1 1 f 1 1 1 i => 100c 100f 100i (8–9) (8–9) (8–9)
Позначення
- Малі літери
a
вi
ті біти, які копіюються в десятковому поданні. 0
і1
є точними бітами у вхідних або вихідних бітах.x
біти ігноруються при перетворенні.
Завдання
Побудуйте логічну схему, використовуючи два вхідні ворота NAND для перетворення 10 біт DPD в 12 біт BCD.
Приклади
Підкреслені біти - це біти, що відповідають шаблону.
DPD Decimal BCD
0 0 0 0 0 0 0 1 0 1 005 0000 0000 0101
^
0 0 0 1 1 0 0 0 1 1 063 0000 0110 0011
^
0 0 0 1 1 1 1 0 0 1 079 0000 0111 1001
^ ^ ^
0 0 0 0 0 1 1 0 1 0 090 0000 1001 0000
^ ^ ^
0 0 0 1 0 1 1 1 1 0 098 0000 1001 1000
^ ^ ^ ^ ^
1 0 1 0 1 1 1 0 1 0 592 0101 1001 0010
^ ^ ^
0 0 1 1 0 0 1 1 0 1 941 1001 0100 0001
^ ^ ^
1 1 0 0 1 1 1 1 1 1 879 1000 0111 1001
^ ^ ^ ^ ^
1 1 1 0 0 0 1 1 1 0 986 1001 1000 0110
^ ^ ^ ^ ^
0 0 1 1 1 1 1 1 1 1 999 1001 1001 1001
^ ^ ^ ^ ^
1 1 1 1 1 1 1 1 1 1 999 1001 1001 1001
^ ^ ^ ^ ^
Критерій оцінювання та виграшу
Оцінка - це кількість двох вхідних воріт NAND, використаних у вашій схемі. Виграє найнижчий бал.
Ви можете визначити невеликі компоненти за двома вхідними воротами NAND, а потім використовувати їх у своїй остаточній конструкції. Якщо компонент X
включає N
два вхідні ворота NAND, кожне використання X
додає N
до вашої оцінки. Для основних логічних воріт це означає:
- НЕ: +1
- 2-вхід І: +2
- 2-вхід АБО: +3
- 2-вхід XOR: +4
a
в i
увазі і процес перетворення. Пройдіться кроками, а не просто показуйте приклади і сподіваємось, що ми це зрозуміємо.