//clock divider module timer(input inClk, inTaste, inEN, output reg outReadTemp, outTasteAktiv); int divide1 = 30000000; int divide2 = 60000; logic state = 0; logic [31:0] count1 = 32'b0; logic [31:0] count2 = 32'b0; initial begin outReadTemp = 0; outTasteAktiv = 0; end always @(posedge inClk or posedge inEN) begin if(inEN) begin count1 <= 0; count2 <= 0; outReadTemp <= 0; end else begin count1 <= count1 +1; if(count1>=((2**32)-1)) count1 <= 32'b0; if(count1 % divide1 == 0) outReadTemp <= ~outReadTemp; if(inTaste) begin count2 <= count2 +1; if(count2 >= 6000000) outTasteAktiv = 1; end else begin outTasteAktiv <= 0; count2 <= 0; end end end endmodule // clk_divider module parallelport(input inClk, inTimerMeas, inEndOfConv, [7:0] inData, output reg outDataValid, [7:0] outData); logic [7:0] storage = 8'b0; initial begin outDataValid <= 0; outData <= 8'b0; end always @(posedge inClk) begin if(inEndOfConv) storage <= inData; if(inTimerMeas == 1 && outDataValid == 0) begin outData = storage; outDataValid <= 1; end else if(inTimerMeas == 0) outDataValid <= 0; end endmodule