lab5
This commit is contained in:
43
iverilog/tobb/lab5/ayarliSayac.v
Normal file
43
iverilog/tobb/lab5/ayarliSayac.v
Normal file
@ -0,0 +1,43 @@
|
||||
module ayarliSayac (
|
||||
input clk, rst, en,
|
||||
input [2:0] sayma_miktari,
|
||||
input sayma_yonu,
|
||||
output reg [5:0] sayac
|
||||
);
|
||||
|
||||
reg [2:0] miktar;
|
||||
reg [1:0] clk_divider;
|
||||
|
||||
initial begin
|
||||
sayac = 6'b0000_00;
|
||||
miktar = 3'b001;
|
||||
clk_divider = 2'b00;
|
||||
end
|
||||
|
||||
always @(negedge clk or posedge rst) begin
|
||||
if (rst) begin
|
||||
sayac <= 6'b0000_00;
|
||||
clk_divider <= 2'b00;
|
||||
end else begin
|
||||
clk_divider <= clk_divider + 1;
|
||||
end
|
||||
if (clk_divider == 2'b11) begin
|
||||
if (en) begin
|
||||
miktar <= sayma_miktari;
|
||||
if (sayma_yonu == 1) begin
|
||||
if (sayac + miktar >= 6'b1111_11) begin
|
||||
sayac <= 6'b1111_11;
|
||||
end else begin
|
||||
sayac <= miktar + sayac;
|
||||
end
|
||||
end else begin
|
||||
if (sayac - miktar <= 6'b0000_00) begin
|
||||
sayac <= 6'b0000_00;
|
||||
end else begin
|
||||
sayac <= sayac - miktar;
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
endmodule
|
Reference in New Issue
Block a user