Chapter 1: Q18P (page 2)
What is the function implemented by the following Verilog modules:
Module FUNC1 (I0, I1, S, out):
input I0, I1;
input S;
output out;
out = S? I1: I0;
endmodule
module FUNC2 (out, ctl, clk,reset);
output [7:0] out;
input ctl, clk, reset;
reg [7:0] out;
always @(posedge clk)
if (reset) begin
out <= 8’b0;
end
else if (ctl) begin
out <= out+1;
end
else begin
out <= out-1;
end
endmodule
Short Answer
The FUNC1 is the implementation of multiplexer. The FUNC2 is the implementation of an 8-bit up-down counter.