Конвейерный сумматор и (отдельно) self-timed схемы из Digital Arithmetic 1st Edition by Milos D. Ercegovac and Tomás Lang

Перед началом семинара по MIPSfpga в МИФИ один из инструкторов стал спрашивать меня на тему race conditions в некоей схеме для специализированных вычислений, которая возникла у них как студенческий проект. Я не уверен, что его правильно понял, но высказал, что в правильно организованном синхронном дизайне таких проблем не возникает и пообщал прислать в качестве примера фотографию страницы из книжки «Цифровая арифметика», на которой разбирается организация конвейерного сумматора, который содержит малое количество комбинаторной логики (такое же как в сумматоре с последовательным переносом), но при этом размещает регистры (D-триггеры) таким образом, что сумматор может запускать новую операцию сложения каждый такт, с частотой тактового сигнала, определяемой задержкой однобитного полного комбинационного сумматора.

Заодно сфотографировал пару страниц про self-times асинхронные схемы (они не имеют отношения к конвейерному сумматору, просто оказались на соседних страницах и заодно являются альтернативным ответом на исходный вопрос):

Digital Arithmetic 1st Edition by Milos D. Ercegovac and Tomás Lang

digital_arithmetic_by_milos_ercegovac_and_tomas_lang_cover

digital_arithmetic_by_milos_ercegovac_and_tomas_lang_91

digital_arithmetic_by_milos_ercegovac_and_tomas_lang_92

digital_arithmetic_by_milos_ercegovac_and_tomas_lang_93

digital_arithmetic_by_milos_ercegovac_and_tomas_lang_94

digital_arithmetic_by_milos_ercegovac_and_tomas_lang_95