1. A semiconductor device, comprising: an e-fuse module including an array of electrically programmable e-fuse elements; and a programming current generator including a set of reference transistor elements, a selector for actuating said reference transistor elements to generate a selected reference current, and a current mirror for applying a programming current that is a function of said selected reference current to a selected e-fuse element of said array to program a resistance of said selected e-fuse element, and wherein the current mirror includes, a first transistor (M 7 ) having a first terminal connected to a supply voltage (Vcc), a second transistor (M 8 ) having a first terminal connected to a second terminal of the first transistor (M 7 ), a second terminal connected to ground, and a control terminal connected to the second terminal of the first transistor (M 7 ), and a third transistor (M 9 ) having a first terminal connected to the e-fuse module for providing the programming current thereto, a second terminal connected to ground, and a control terminal connected to the control terminal of the second transistor (M 8 ), and wherein the programming current generator further comprises, a current follower transistor (M 11 ) having a first terminal connected to the supply voltage (Vcc), a second terminal connected to the set of reference transistor elements, and a control terminal connected to a control terminal of the first transistor (M 7 ) of the current mirror, and an amplifier having a first input that receives a bandgap voltage, a second input connected to the second terminal of the current follower transistor (M 11 ), and an output connected to the gate of the current follower transistor (M 11 ).