// nandgame counter `timescale 1us/1us module counter #( parameter DATA_WIDTH = 16 ) ( input [(DATA_WIDTH-1):0] X, input wire st, // probably opposed to nandgame, // which "stores" on rising clock // and "outputs" on falling clock, // use "regular" stuff??? input wire cl, output reg [(DATA_WIDTH-1):0] RES ); /* A counter component increments a 16-bit number for each clock cycle. If st (store) is 1, then the input value X is used as the new counter value. If st is 0, then the previous counter value is incremented by 1. The counter output changes when cl (clock signal) changes to 0. Input Effect st cl 0 0 set next to output + 1 1 0 set next to X output is the current output of the component. next becomes the current output when cl changes to 0. */ endmodule