SlideShare a Scribd company logo
1 of 2
module updown(clk,sync_rst,cnt);
inputclk,sync_rst;
output[2:0] cnt;
wire [2:0] b7,b6,b8,b5,b4;
wire s5,s6;
reg [2:0] cnt;
wire s4,s3,s2;
reg dir;
assignb7 = cnt - 2;
assignb8 = cnt + 2;
assignb6 = dir? b8 : b7;
assignb5 = s5 ? 2 : b6;
assigns5 = cnt == 0;
assigns6 = cnt == 6;
assignb4 = s6 ? 4 : b5;
always@(posedge clk)
begin
if (sync_rst) cnt<=0;
else cnt<=b4;
end
assigns4 = s5 ? 1 : 0;
assigns3 = s6 ? 0 : 1;
assigns2 = dir? s3 : s4;
always@(posedge clk)
begin
if (sync_rst) dir<= 1;
else dir<= s2;
end
endmodule

More Related Content

What's hot (10)

M3 - Banfi Cavallo - Fila di sedie
M3 - Banfi Cavallo - Fila di sedieM3 - Banfi Cavallo - Fila di sedie
M3 - Banfi Cavallo - Fila di sedie
 
How To Crack RSA Netrek Binary Verification System
How To Crack RSA Netrek Binary Verification SystemHow To Crack RSA Netrek Binary Verification System
How To Crack RSA Netrek Binary Verification System
 
4Developers 2018: Beyond c++17 (Mateusz Pusz)
4Developers 2018: Beyond c++17 (Mateusz Pusz)4Developers 2018: Beyond c++17 (Mateusz Pusz)
4Developers 2018: Beyond c++17 (Mateusz Pusz)
 
Basics of Cryptography
Basics of CryptographyBasics of Cryptography
Basics of Cryptography
 
block diagram reduction with examples
block diagram reduction with examplesblock diagram reduction with examples
block diagram reduction with examples
 
Practica54
Practica54Practica54
Practica54
 
Pert2 management
Pert2 managementPert2 management
Pert2 management
 
H onors hw solutions on free fall
H onors hw solutions on free fallH onors hw solutions on free fall
H onors hw solutions on free fall
 
Geo distance search with my sql presentation
Geo distance search with my sql presentationGeo distance search with my sql presentation
Geo distance search with my sql presentation
 
Sample document
Sample documentSample document
Sample document
 

Even up and down counter

  • 1. module updown(clk,sync_rst,cnt); inputclk,sync_rst; output[2:0] cnt; wire [2:0] b7,b6,b8,b5,b4; wire s5,s6; reg [2:0] cnt; wire s4,s3,s2; reg dir; assignb7 = cnt - 2; assignb8 = cnt + 2; assignb6 = dir? b8 : b7; assignb5 = s5 ? 2 : b6; assigns5 = cnt == 0; assigns6 = cnt == 6; assignb4 = s6 ? 4 : b5; always@(posedge clk) begin if (sync_rst) cnt<=0; else cnt<=b4; end
  • 2. assigns4 = s5 ? 1 : 0; assigns3 = s6 ? 0 : 1; assigns2 = dir? s3 : s4; always@(posedge clk) begin if (sync_rst) dir<= 1; else dir<= s2; end endmodule