How the always block could be replaced with a continuous assignment statement using the ‘{ }’ and ‘? :’?
module mux16to8 (input [7:0] secsa, minsa, secsb, minsb,
output reg [7:0] secs, mins,
input sela, selb, hold, seldisp,
output reg leda, ledb);
always @(*)
begin
if (hold == 1'b1)
if (seldisp == 1'b1) begin
secs = secsa;
mins = minsa;
leda = 1'b0;
ledb = 1'b1;
end else begin
secs = secsb;
mins = minsb;
leda = 1'b1;
ledb = 1'b0;
end
else
if (sela == 1'b1) begin
secs = secsa;
mins = minsa;
leda = 1'b0;
ledb = 1'b1;
end else if (selb == 1'b1) begin
secs = secsb;
mins = minsb;
leda = 1'b1;
ledb = 1'b0;
end else begin
secs = 0;
mins = 0;
leda = 1'b1;
ledb = 1'b1;
end
end
endmodule
I thought at something like
assign secs={seldisp?{hold?1:0}:0}?secsa:secsb
assign mins={seldisp?{hold?1:0}:0}?minsa:minsb..
I know that this is not enough because the secs and mins variables are in an always loop, so for continous assignment i should get something similar as always loop and right now i don't even know if my statements are fine.
alwaysblock? Can you give a small example of the original statement?