// File: counter_4bit.v // Generated by MyHDL 0.11 // Date: Mon Jun 7 19:39:23 2021 `timescale 1ns/10ps module counter_4bit ( clk, rst, data, updown, load, data_out ); input clk; input rst; input [3:0] data; input updown; input load; output [3:0] data_out; reg [3:0] data_out; always @(posedge clk) begin: COUNTER_4BIT_CYCLE if (rst) begin data_out <= 0; end else if (load) begin data_out <= data; end else begin if (updown) begin data_out <= (data_out + 1); end else begin data_out <= (data_out - 1); end end end endmodule