Page 1 of 1

Десятичный счетчик

PostPosted: 05 Jun 2008, 00:15
by Yellow_Rat
Есть у кого пример десятичного счетчика на AHDL или как в нём Flip-Flopы соеденены, в ХиХе не нашел.

c.

Re: Десятичный счетчик

PostPosted: 05 Jun 2008, 01:03
by deathsoft
http://scitec.uwichill.edu.bb/cmp/online/P10F/asyn_BCD.htm



P.S. Но так лучше не делать, т.к. это счетчик с последовательным переносом и асинхронным сбросом.

Re: Десятичный счетчик

PostPosted: 05 Jun 2008, 11:29
by Yellow_Rat
deathsoft wrote:P.S. Но так лучше не делать, т.к. это счетчик с последовательным переносом и асинхронным сбросом.

А как лучше делать?

Re: Десятичный счетчик

PostPosted: 05 Jun 2008, 12:10
by lvd
АХДЛа не знаю, знаю верилог.

Code: Select all

     reg [3:0] ctr;

     always @(posedge clock)
     begin
     if( ctr[0]&ctr[3] ) // если досчитали до 9
        ctr <= 4'd0;
     else
        ctr <= ctr + 4'd1;
     end


На АХДЛ, думаю, перепишется легко.

Идея - когда досчитало до 9, в следующем такте загрузить 0.

Re: Десятичный счетчик

PostPosted: 05 Jun 2008, 18:43
by KOE
process (clock);

if (clock'event and clock='1') then
if counter < 10 then counter <= counter+'1';
else counter <=0;
end if; end if;

end process;

Re: Десятичный счетчик

PostPosted: 05 Jun 2008, 22:06
by lvd
KOE wrote:process (clock);

if (clock'event and clock='1') thenif counter < 10 then counter <= counter+'1';else counter <=0;end if; end if;

end process;


У тебя будут все 4 бита сравниваться, а у мну только два =)

upd: у ття каунтер по модулю 11 щитает, бугого! 1tooth stinky lol kuku