module d_ff(
	// module inputs
	D, // Data inputs
	CLK, // Clock inputs
	// module outputs
	Q, // Noninverting data outputs
	Qn // Inverting data outputs
	);
	
	input D, CLK;		// Deklaration von D und CLK als inputs des d_ff module. Inputs und outputs sind per default wires.
	output reg Q;	// Deklaration von Q und Qn als outputs des d_ff module. Anstatt des defaults "wire" werden Q und Qn regs.
	output wire Qn;
	assign Qn = ~Q;
	
	always @ (posedge CLK) begin
		Q <= D;
		//Qn <= ~D;
	end

endmodule // d_ff