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

Postby Yellow_Rat » 05 Jun 2008, 00:15

Есть у кого пример десятичного счетчика на AHDL или как в нём Flip-Flopы соеденены, в ХиХе не нашел.

c.
Last edited by Yellow_Rat on 05 Jun 2008, 00:15, edited 1 time in total.
Yellow_Rat
 
Posts: 51
Joined: 01 Jun 2008, 16:00
Group: Registered users

Postby deathsoft » 05 Jun 2008, 01:03

http://scitec.uwichill.edu.bb/cmp/online/P10F/asyn_BCD.htm



P.S. Но так лучше не делать, т.к. это счетчик с последовательным переносом и асинхронным сбросом.
Last edited by deathsoft on 05 Jun 2008, 01:05, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4744
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby Yellow_Rat » 05 Jun 2008, 11:29

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

А как лучше делать?
Yellow_Rat
 
Posts: 51
Joined: 01 Jun 2008, 16:00
Group: Registered users

Postby lvd » 05 Jun 2008, 12:10

АХДЛа не знаю, знаю верилог.

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.
Last edited by lvd on 05 Jun 2008, 12:13, edited 1 time in total.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby KOE » 05 Jun 2008, 18:43

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;
Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
User avatar
KOE
 
Posts: 4682
Joined: 15 Apr 2007, 13:06
Group: Registered users

Postby lvd » 05 Jun 2008, 22:06

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
Last edited by lvd on 06 Jun 2008, 00:00, edited 1 time in total.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7262
Joined: 07 Apr 2007, 21:28
Group: Registered users


Return to Hardware

Who is online

Users browsing this forum: No registered users and 31 guests

cron