The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Design Languages >> Verilog-AMS >> Verilog counter (newbie) https://designers-guide.org/forum/YaBB.pl?num=1135159021 Message started by athlon on Dec 20th, 2005, 9:07pm |
Title: Verilog counter (newbie) Post by athlon on Dec 20th, 2005, 9:07pm Hi, This is my first post, so I hope it's not a bad question or anything. I'm trying to learn Verilog, and I wanted to ask if the following 2 are identical in making a 4 bit counter. Thank you! Jason *********** #1 *********** module counter(clk, rst, ld, q3, q2, q1, q0); input clk; input rst; input ld; output q3; output q2; output q1; output q0; always @ (posedge clk) begin if (rst == 1'b1) [q3,q2,q1,q0] = 4'd0; else if (ld == 1'b1) [q3,q2,q1,q0] = 4'b1; else [q3,q2,q1,q0] = ([q3,q2,q1,q0] + 1) % 16; end endmodule *********** #2 *********** module counter(clk, rst, ld, q3, q2, q1, q0); input clk; input rst; input ld; output q3; output q2; output q1; output q0; wire [3:0] Q; reg [3:0] C; assign Q = {q3,q2,q1,q0}; always@(posedge clk or posedge rst) // reset begin if(rst) C <= {4'b0000}; else C <= Q + 1; end assign q3 = C[3:3]; assign q2 = C[2:2]; assign q1 = C[1:1]; assign q0 = C[0:0]; endmodule :-/ |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |