Если не жалко функциональных генераторов, делаем на комбинаторике структура боевая, работает в живую: /************************************************************************** ** Двухпороговый компаратор 6/5-битного аргумента с ** ** порогом/инв.порогом результат: Solution=1 - превышен один из порогов, ** ** nInverse='1' - прямой порог, nInverse='0' - инверсный порог ** **************************************************************************/ module Comparator (input wire [5:0] InputArgument, InputThreshold, input wire Mode63_n31, output reg Solution, nInverse );
always @(InputArgument, InputThreshold, Mode63_n31) if ( {Mode63_n31 & InputArgument[5], InputArgument[4:0]} >= {Mode63_n31 & (~ InputThreshold[5]), ~ InputThreshold[4:0]} ) begin Solution = 1'b1; nInverse =1'b1; end else if ( {Mode63_n31 & InputArgument[5], InputArgument[4:0]} <= {Mode63_n31 & InputThreshold[5], InputThreshold[4:0]} ) begin Solution = 1'b1; nInverse =1'b0; end else begin Solution = 1'b0; nInverse =1'b0; end
endmodule
--------------------
всё можно наладить, если достаточно долго вертеть в руках /Законы Мерфи/
|