lendo1
Newbie level 3
- Joined
- Feb 12, 2013
- Messages
- 3
- Helped
- 0
- Reputation
- 0
- Reaction score
- 0
- Trophy points
- 1,281
- Activity points
- 1,298
Hello everyone, I am working on a simple program that creates an output Pulse every (input) N clock cycles. The logic is very simple, but I am new to Verilog and am having problems assigning my output (Pulse.) Any ideas? Thanks!
Code:
module pulse_atN(Clk, Reset, Pulse, N);
parameter WIDTH = 10;
input Clk, Reset;
input [WIDTH-1:0] N;
reg [WIDTH-1:0] Nlast;
reg [WIDTH-1:0] Count;
output Pulse;
assign Pulse = (Count == N-1) && (N != 0);
always @ (posedge Clk, posedge Reset)
begin : PULSE_GENERATOR
if(Reset)
Count <= 0;
else
begin
// nonblocking so check occurs with old Nlast
Nlast <= N;
if(Nlast != N)
Count <= 0;
else if(Count == N-1)
begin
Count <= 0;
Pulse = 1;
end
else
begin
Count <= Count + 1;
Pulse = 0;
end
end
end
endmodule
Last edited: