Уровень 42: Взгляд сквозь кремний (Verilog)

Задание

Перед вами двухуровневая иерархия: модуль CPU инстанцирует 8 модулей FullAdder. Все файлы доступны только для чтения — код менять нельзя. Ваша задача: исследовать схему через RTL Viewer.

Дважды кликните по блоку субмодуля в RTL-вьюере, чтобы «провалиться» внутрь и увидеть его внутреннюю структуру. Используйте хлебные крошки для навигации назад. Найдите примитив, подключённый неверно, и ответьте на вопрос.

Подсказка: обратите внимание на вентиль, формирующий сигнал w3 внутри FullAdder.

Материалы по теме

Решение

В файле fulladder.v вентиль g4 использует примитив nand вместо and:

nand g4(w3, w1, c_in);  // ошибка — должно быть and

Сигнал w3 = w1 AND c_in нужен для корректного формирования бита переноса: c_out = w2 OR w3, где w2 = a AND b. Использование nand инвертирует результат, ломая логику переноса.

Ответ на вопрос: nand.