?

Log in

No account? Create an account
 

Июль, 3, 2019 - No Xians Here — ЖЖ

About Июль, 3, 2019

worklog: двоичный компаратор - работает! 08:38
Это просто великолепно, несмотря даже на то, что в плате оснастки дефект (то ли металлизации в переходнике нет, то ли одно из двух -- нет контакта в одном сигнале; решил пробросом навесного проводка прям внутрь платы компаратора). Всё равно этот блок буду переделывать, чтобы добавить проверку платы CSR, заодно и закажу в более надёжном месте*.

Операции EQ, NEQ, LT, GE, ULE, UGE (равно, не равно, меньше, больше или равно, беззнаковое меньше, беззнаковое больше или равно; всё это нужно для условных переходов) фунциклируют как надо; флаги TRUE/FALSE выдаются; константы для инструкций SLT/SLTU формируется.

Вообще сравнение можно было бы сделать и на арифметике, но я решил, что так будет проще - два разных отдельных блока могут работать одновременно, например, чтобы вычислять условные переходы: компаратор сравнивает регистры, а арифметика в этот момент вычисляет предполагаемый адрес. Если сравнение не сработало, вычисленное значение просто отбрасывается, а если сработало - загружается в Program Counter. Поэтому отдельный флажок COND_TRUE очень даже нужен и полезен.

Отступать некуда - надо собирать АЛУ, а потом ещё блок регистров общего назначения; затем дешифратор команд (с поддержкой сжатых инструкций, так уж и быть); program counter с костылями для branch prediction; блоки выборки памяти инструкций и данных; блок форвардинга и ожидания; прочую мелочь...

----

* у китайцев, с электротестом. Этот экземпляр я заказал в Дефолт-Сити и пожадничал на электротест - вот мне и урок: экономия пары сотен рублей (или сколько он там стоит, я не помню) оборачивается бессонной ночью и бессильными злобными матюками в никуда.
Top of Page Разработано LiveJournal.com