rendered paste body`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 16:22:12 11/25/2006
// Design Name:
// Module Name: szamlalo_mod10
// Project Name:
// Target Devices:
// Tool versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module szamlalo_mod10(CLK, RESET, CE, C_E, DIN, COUNT, CY ); //engedélyezhető lefele számláló
input CLK;
input RESET;
input CE; //CE=Counter enable, külső vezérlés.
input C_E; //ez is Counter enable, de ez a rategenes órajelhez.
input [3:0] DIN; //DIN=input
output reg [3:0] COUNT;
output reg CY; //carry.
always @(posedge CLK or posedge RESET) //aszinkron törlésű mert itt van a reset
begin
if (RESET) begin
if (DIN>4'd9) COUNT<=9; //nem specifikációnak megfelelő értékadás esetén, 10-15-ig adott értéknél is 9-re áll be
else COUNT <= DIN; //BTN3 visszaviszi alapállapotba, azaz a kapcsolók által megadott értékbe
end
else if (CE && C_E) begin
CY = (COUNT == 4'd0);
if (CY) COUNT <= 4'd9;
else COUNT <= COUNT - 1;
end
end
endmodule