Как использовать логические вентили с несколькими входами в Chisel3? - PullRequest
1 голос
/ 08 ноября 2019

Я использую сумматор 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)

1 Ответ

0 голосов
/ 08 ноября 2019

Обходной путь может состоять в создании класса с несколькими входами ИЛИ, в котором вы можете определить, как вы хотите, чтобы соединения выполнялись так, чтобы переводы происходили так, как вы хотите.

...