Я использую сумматор Carry Lookahead, используя Chisel3. Чтобы сократить время ожидания, мне нужно использовать логический вентиль с несколькими входами.
Однако, даже если я напишу код, подобный
io.out:= a | b | c | d | e
, сгенерированный код verilog будет похож на
assign _T = a | b
assign _T_1 = _T | c
assign _T_2 = _T_1 | d
assign io_out = _T_2 | e
, который использует 4 ИЛИ, и приводит к 4xЗадержка затвора.
Мне интересно, есть ли способ генерировать логические вентили с несколькими входами? Например,
assign io_out = a | b | c | d | e
или
or (io_out, a, b, c, d,e)