Counter Design with D Flip-Flop

OP (Company: Hacettepe University) #3943135
I will write a counter code in verilog that counts like this
(with D Flip Flop and some logic gates)

0000 -> 0
0010 -> 2
0100 -> 4
0110 -> 6
1000 -> 8
1010 -> 10
1100 -> 12
1001 -> 9
0110 -> 6
0011 -> 3
0000 -> 0

Can someone help me how I can write it ?  :) thanks
Moderator (Company: Titel)
Cemal Unal wrote:
> Can someone help me how I can write it ?  :)
What comes after the ending '0'?

If the counter loops again from the beginning, then implement a counter 
that counts in cycles from 0 to 9 and decode each counter step to your 
desired output value afterwards:
1
reg [3:0] cnt = 4'h0;
2

3
always @ (posedge clock)
4
begin : COUNTER
5
  if (cnt < 9) 
6
    cnt <= cnt + 1;
7
  else
8
    cnt = 4'h0;
9
end
10

11
always @ (cnt) 
12
begin : DECODER
13
  case (cnt)
14
    4'h0: out = 4'b0000;
15
    4'h1: out = 4'b0010;
16
    4'h2: out = 4'b0100;
17
    :
18
    4'h9: out = 4'b0011;
19
  endcase
20
end

And so you don't have to dig around with D-FFs and logic gates. The 
synthesizer/compiler has to deal with it...
Guest
Lothar wrote a behavioral description of what you wanted... but you 
could write it using  primitives (d-flipflops and gates) to achieve the 
same result... as you wanted... You may wan to draw the circuit on a 
piece of paper, or you could use the schematic editor that some fpga 
packages provide

Reply

A question of your own? This thread is over 11 years old. Ask it in a thread of its own – more people read along there, and it gets answered more often and sooner.

Start a new thread

A fix, an addition or feedback on this thread? Then reply here.

Formatting
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.