worklog: двоичный компаратор

Nov 24, 2018 18:36

Компаратор нужен для операций сравнения и для условных переходов. Сравнивает 32-битные двоичные числа при помощи функций "РАВНО", "НЕ РАВНО", "МЕНЬШЕ", "БОЛЬШЕ ИЛИ РАВНО" (две последние - в вариантах для чисел без знака и со знаком).

В июле он выглядел так:


А сейчас - вот эдак:


Схемотехнически почти что одно и то же, только добавился буфер для честного формирования результата операции типа SLT (slt, sltu, slti, sltiu) - выглядит расточительно, конечно, с учётом того, что из 32-битной выходной шины будет использоваться только младший разряд... с другой стороны, если я применю bus keeper на шине результата, то от лишних микросхем будет избавиться проще, чем их вкорячивать куда-то, если они вдруг окажутся нужны.
Переделка, в основном, под краевые разъёмы: когда я посчитал, во сколько мне обойдутся коннекторы типа DIN, то раздумал их использовать - если такой разъём всего один в конструкции, это ещё ладно, а если их штук десять, то уже не ладно, а совсем даже наоборот. Где их купить подешевле, так и не нашёл, но зато купил пару десятков слотов с шагом 1.27: по конструктиву похожи на PCI, дешёвые, удобные. Правда, тоже дефицит - похоже, я купил всё, что было у продавца и не могу найти, где бы прикупить ещё, про запас.

Скорее всего, будет одним из самых медленных узлов в конвейере - из-за трёхкаскадной схемы на 74HC85. Попробовал прикинуть схемку на отдельных логических элементах - выигрыш по скорости будет процентов 30..50% (наверное), но схема получается слишком уж громоздкой.

risc-v, worklog

Previous post Next post
Up