23 Ağustos 2016 Salı

VHDL : clock divider

Merhaba arkadaşlar;

   Şu ana kadar paylaşmış olduğum kodlardan up_down_counter'ı ele alalım. Diyelim ki bu kodu FPGA board'una uygulamak istiyoruz. Board'a uygulayıp çıkışı da ledlere verirsek, devrenin saydığını görebiliriz. Ancak şöyle bir sıkıntı var. Boardların saat frekansı çok hızlı. Örneğin Nexys4 DDR boardunun saat frekansı 100 MHz. Bu hız insan gözünün algılaması için çok yüksek. Dolayısıyla bu hızdaki bir clock ile kodu FPGA'e gönderirsek ledlerdeki değişimi, ve sayma işlemini gözümüz göremeyecektir. Bu nedenle bu frekansı biraz yavaşlatmamız gerekecek. Bunun için aşağıda yazmış olduğum clock_divider (saat bölücü) kodunu kullanabilirsiniz.


   Bu kodu incelediğinizde frekansın artık 1Hz 'e düşürülmüş olduğunu göreceksiniz. Bu frekans insan gözünün algılaması için yeterli. Buradaki kodda clock_divider'ı component olarak tanımladım. Ama siz isterseniz bunu component olarak tanımlamayadabilirsiniz. Burdaki process i yazıp aşağısına yeni bir process koyabilirsiniz ve o process'e de  "if rising_edge(clock_out) then"  ile kodunuza bu yeni frekanstaki saati uygulamış olacaksınız. Kolay gelsin.

1 yorum:

  1. 100000 bunun yerine if içinde 100 mhz için 100000000 kullanmamız gerekmiyor mu?

    YanıtlaSil