Flip flop sayıcı

Başlatan eyt, 11 Mart 2020, 11:18:37

eyt

Merhaba, flip flop ile 8 ile 15 arası tekrarlayan geri sayıcı nasıl tasarlayabilirim?

MC_Skywalker

#1
3 adet FF gerekli  4. Bit hep 1 konumunda kalıyor. Diğer 3 FF normal sayacak.



eyt

Tam olarak belirli bir sayıdan başlatmanın mantığı nedir

MC_Skywalker

Soruyu zorlaştırmak için istenmiştir bence.  Ben EML Elektronikte okurken, bize verilen ödev de benzeriydi ama 25'e kadar olacaktı ve 7 segmentte 10'luk sayı sistemi olarak gösterilecek. 

ete

Muhtemelen bir ödev konusu bu iş. Öncelikle detaylı araştırma yapılması gerekir. Bir zamanlar epeyce bir zamanlar yanlız bu tür işlerle epeyce uğraşmıştım. Ancak işlemcilerle tanışınca hepsini rafa kaldırmışım. Bunu şimdi anlıyorum. Aklımda bir şey kalmamış. İnternete şöyle bir bakınca sayıcılar hatta flip flop sayıcılar (counters) konusunda epeyce bilgi mevcut. Öncelikle bunların incelenip bir bilgi birikimi sağlamak sonrada işe özel olan 8-15 arası saydırma işine odaklanıp işi kotarmak gerekiyor. Bunuda yapacak kişi elbette "eyt" olacak.
Bazı linkler veriyorum. Her nedense bütün bulduğum kaynaklar ingilizce. Hatta Eskişehir üniversitesinden bir kaynak var çok hoşuma gitti oda ingilizce. Ama ilmin yolu birdir bakınca da anlaşılıyor her şey.

http://eem.eskisehir.edu.tr/egermen/EEM%20232/icerik/Week%209%20Sequential%20Circuits%20Counters.pdf

https://www.eecs.tufts.edu/~dsculley/tutorial/flopsandcounters/flopsFrame.html

https://www.tutorialspoint.com/digital_circuits/digital_circuits_counters.htm

Hatırladığım eskiden bu işleri 7493 yada 74193 sayıcı entegresi ile yapıyor idik. Bir sayıdan geri dönüş almak için sayıcı o sayıya geldiğinde verdiği bir çıkışı alıp tekrar başa yada reset ucuna girerek saymayı baştan başlatabiliyorduk. İstersen bir incele derim.


ete

MC_Skywalker

Hoçam size donanım tanımla dillerinden birini öğrenmeniz tavsiye ederim. Dijital dünyanın yeni bir dünya açılıyor.

ister 5V luk PAL/GAL ile isterseniz yeni nesil 3.3V CPLD ile. Bazı ticari projelerde gördüğüm MCU çevre birimlerini 74 serisi entegre kullanmayıp hep CPLD ile yapmışlar. Üretimde maliyeti arttırsada kopyalayacak kişi içinde maliyet devereye girince uğraşmak istemiyor. Hatta kod koruma açılınca kopyalamak iyice zorlaşıyor.

ödevin çözümü donanımı. VHDL tanımlama dili kullanılarak tanımlandı. 7 segment displayde 8,9,A,b,C,d,e,F şeklinde sayılan sayıyı gösteriyor. :)


library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity FF8to15 is

		port(Saat  : in std_logic;
		     seg   : out std_logic_vector (6 downto 0));	
			  
end FF8to15;

architecture Behavioral of FF8to15 is
	signal sayac : std_logic_vector(3 downto 0) := "1000";
	signal gecici: std_logic_vector(3 downto 0);
	
	begin
			process (Saat)
			 begin
				if Saat= '1' and Saat'event then
					if sayac = "1111" then
					sayac <= "1000";
					else 
					sayac <= sayac + 1;
					end if;
				end if;	
			end process;
	
	gecici <= sayac;
			
			process (gecici)
			 begin
				case gecici is
		  when "1000" =>  seg <= "0000000"; --8
                  when "1001" =>  seg <= "0001100"; --9
                  when "1010" =>  seg <= "0001000"; --A
                  when "1011" =>  seg <= "1100000"; --b
                  when "1100" =>  seg <= "0110001"; --C
                  when "1101" =>  seg <= "1000010"; --d
                  when "1110" =>  seg <= "0010000"; --e
                  when "1111" =>  seg <= "0111000"; --F
                  when others =>  seg <= "1001000"; --Hata         
                  end case;
    end process;                                         
end Behavioral;


ete

Öğrenme gücünü ve vaktini kendimde bulsam şu C dilini öğrenmek istiyorum.
Bu güne kadar pek çok şeyi kendi başıma öğrendim. Ama bu konuda tıkandım artık.
Her nedense bir isteksizlik var üzerimde bir türlü el atıp da başlayamıyorum. Önceden epeyce okudum kitap vs. Epeyce hakimim konuya ancak programlama dili mentalitesi mantığıma (özellikle program yazım mantığı) ters geliyor her ne hikmet ise. Pek çok tanıdığım var. Hem C dili hemde Basic biliyorlar. Hemen hepsi işini yine basic ile hallediyor ama çok sıkışırlarsa yada basic de kütüphane vs eksikliği olunca C diline geçiyorlar. Buda beni zorluyor açıkçası. Boşver diyorum kendi kendime yapamadığın bir şey mi var yoook. O halde dursun şimdilik diyorum.
Çünki C dilinde de yazsam Basic mantığı ile yazacağımdan korkuyorum. Bu nedenle çıkar bir yol buluncaya kadar beklemede kalacağım.
Ete

Powered by EzPortal