1HZ, 30HZ elde etmek. Nasıl?

Başlatan MC_Skywalker, 07 Ekim 2017, 17:55:20

MC_Skywalker

Sorun 1Hz ve 50Hz üretmeyel ilgili değil. Doğru kristal rezanatör ile elede etmek sorunsuz oluyor. Buradaki sorun benin kotu kod yazmam nedeniye VHDL ile oluşturduğum componetleri bağlayamam. 

EML deyken 7490 ve 7446 ile saat yapmıştım onu elimde kalan 32 marcro celli CPLD ile yapmak.

MC_Skywalker

Uzun zaman ara verdiğim 7 segment LCD sürücüye geri döndüm LCD de 0 sayısını görmeyi başardım lakin 4 bit saycı ilerletemdim he 0 da kalıyor.

sayacı kodunu sanırım düzenleme yaparken bozdum ama nereyi bozdum bulamadım. Hızlıca bakıp fikir verebilecek birini tavsiyesine ihtiyacım var.


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

entity Sayac is
 Port ( Bcd: out STD_LOGIC_VECTOR(3 downto 0));
 
end Sayac;

architecture Behavioral of Sayac is
 signal sayi : std_LOGIC_VECTOR(3 downto 0);
 signal Clk_1Hz : std_logic;

Component Saat_bolme is
 
 port (Clk_1Hz: out std_logic);  -- out

 end Component Saat_bolme; 
 
 begin
 Saat_bolme_unit: Saat_bolme port map
 (
 Clk_1Hz => Clk_1Hz
 );

 process(Clk_1Hz)
 begin
 
 if Clk_1Hz= '1' and Clk_1Hz'event then
 if sayi = "1111" then
 sayi <= "0000";
 else
 sayi <= sayi +1;
 end if;
 end if; 
 end process; 
 Bcd <= sayi;
end Behavioral;
 


RaMu

Donanım hayatta mı hocam,
kabloların yerini değiştirip "g" segmentini yakabiliyormusunuz kontrol ettiniz mi...
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

MC_Skywalker

denemek için
"1111110" when "0000",

kısnını
"0000001" when "0000",

yaptım g segmenti yandı dşğer tümü söndü





devrecii

#19
Şematik verirsen daha iyi anlaşılır.


port (Clk_1Hz: out std_logic);  -- out  bu doğru değil input değil mi bu;


entity Sayac is
 Port ( Bcd: out STD_LOGIC_VECTOR(3 downto 0));
 
end Sayac;     vdll bilmiyorum ama burada clk1 i de tanımlaman gerekir bence.

MC_Skywalker

port (Clk_1Hz: out std_logic);  -- out  bu doğru değil input değil mi bu;

O saat bölme kompentinde Clk_1HZ çıkışı olduğunu gösteriyor

Saat_bolme_unit: Saat_bolme port map
 (
 Clk_1Hz => Clk_1Hz
 );
Saatbölme komponentinden gelen sinyali

signal Clk_1Hz : std_logic;
burada sayaç komponetine bağladım.


devrecii

Hocam şemada gördüğün gibi sayaç modulüne clocku bağlamamış.

MC_Skywalker

#22
Evet bende onu farkettim. fakat nerede hata yaptığımı anlayamadım.

Clk_1Hz i sinyal yerine, entity kısmında Clk_1Hz i port olarak tanımlayıp syntsize et dediğimde sorun oluyor ve Clk_1Hz ile ilgili hata veriyor.

Şemada ki sayac compenetine baktığımda Clk_1Hz girişi var görünüyor.

Yarın tüm kodu sıfırdan temiz yazacağım.  Nerede hata yaptığımı bulurum. şansa büyük proje değil :) :)

MC_Skywalker

#23
quartusta hille yapı componetleri şematikte birleştirip yapınca  32 Macrocell yetmedi.

Viadoya geçip basts için düzenleyip top lvl'i yeniden yazdım. sonuç sorunsuz.



Fikir verenlere teşekürler.

MC_Skywalker

#24