ChipScope Pro Analyzer kullanarak basit bir sayıcı modülü tasarımı
Bu örnekte basit bir sayıcı modülü tasarlayacağız. Daha sonra tasarımımızı FPGA’e yükleyik, Chipscope Pro Analyzer kullanarak, tasarımımızın iç sinyallerini inceleyeceğiz.
Sayıcı modülü start, stop ve clk sinyallerinden oluşacak.
Start sinyali “1” olduğunda sayıcı aktif hale gelecek ve sayma işlemine başlayacak.
Bu örneğimizde ChipScope Pro Core’larından ILA (Integrated Logic Analyzer) ‘yı kullanacağız. ILA tetikleme (trigger) mantığına göre çalışan soft bir ChipScope Pro core’dur.
ILA ‘da tetikleme sinyali olarak modülümüzün start sinyalini kullanacağız. Start sinyali “1” olduğunda ILA sayıcıdan örnekler yakalayıp, kendi içerisinde kaydedecek. ChipScope Analyzer yardımıyla da depolanan örnekleri bilgisayarımızda görebileceğiz.
Aşağıda örneğimizde kullanacağımız VHDL kodunu bulabilirsiniz.
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity simple_counter is Port ( clk : in STD_LOGIC; start : in STD_LOGIC; output : out STD_LOGIC_VECTOR (7 downto 0)); end simple_counter; architecture Behavioral of simple_counter is signal counter:STD_LOGIC_VECTOR (7 downto 0):=(others=>'0'); begin process(clk,start) begin if start = '1' then if rising_edge(clk) then counter<=counter +1; end if; else counter<=(others=>'0'); end if; end process; output <= counter; end Behavioral;
output <= counter;
Tasarıma ChipScope Pro ILA Core Ekleme
Öncelikle ISE de bir proje oluşturalım ve bir önceki bölümde vermiş olduğumuz sayıcı VHDL kodunu projeye dahil edip, projeyi kaydedelim.
Şimdi projeye ILA core’nu dahil edelim. Bunun için,
Sources penceresinde projeye tıklayarak seçelim. Daha sonra sağ tıklayıp pop-up menüsünden New Source’u tıklayalım.
Açılan yeni pencerede, sağ kısımdan “ChipScope Definition and Connection File” ı seçelim. File Name kısmına Core’un ismini yazıp Next’e basalım.
Açılan pencerede Core’un ait olduğu kaynak kodu seçip Next’e basalım. Açılan yeni pencerede Finish’e basıp Core ekleme işini tamamlayalım.
Yukarıdaki işlemler ile tasarımımıza Chipscope Pro Core’u eklemiş olduk. Sıradaki işlemde Core ayarlarını yapıp, hangi sinyalleri izleyeceğimizi belirleyeceğiz.
ChipScope Pro ILA Core Ayarları – 1. Kısım
ChipScope Pro ILA Core ayarlarına geçmeden önce Netlist oluşturmak zorundayız. Bunun için de tasarımı sentezlemeliyiz.
Projenin önündeki “+” işaretine tıklayark, projeyi genişletelim. Projenin altında oluşturduğumuz .cdc dosyasına çift tıklayalım.
Açılan ChipScope Pro Core Inserter diyalog kutusunda , Edit > New ILA Unit ‘e tıklayalım.
Sağ pencerede U0:ILA seçelim. Pencerenin sol tarafında Trigger Parameters seçelim. Bu kısımda tetikleyici sinyalleri belirleyeceğiz. Bizim örneğimizde bir adet tetikleyici olduğu için Number of Input Trigger Ports kısmına “1” girdik. Ayrıca tetikleyici 1-bitlik bir sinyal olduğu için Trigger Width kısmına da “1” girdik. Siz bu kısımları tasarımınıza göre istediğiniz gibi ayarlayabilirsiniz.
Daha sonra Capture Parameters kısmını seçelim.
Capture Parameters kısmında yakalayacağımız (izleyeceğimiz) sinyalleri seçeceğiz. Öncelikle Data Same As Trigger kutucuğundaki tik işaretini kaldıralım. Böylece yakalayacağımız sinyallerin tetikleyici sinyaller olmadığını programa belirtmiş olduk. Biz projemizde counter sinyallerini yakalayacağımız için Data Width kısmına “8” girdik. Daha sonra bir uygulamada kaç adet örnek alacağımızı belirlemek gerekecek. Bunun içinde Data Depth kısmını kullanacağız. Biz bu projemizde 512 örnek alacağız.
Daha sonra Net Connections sekmesine tıklayalım.
ChipScope Pro ILA Core Ayarları – 2. Kısım
Net Connections kısmında ChipScope’ da oluşturduğumuz portlara sayıcı modülündeki sinyalleri atayacağız. Bunun için Modify Connection simgesine tıklayalım.
Öncelikle örnekleme hızını belirleyecek olan clock sinyalini seçelim. Net Sections kısmında Clock Signals sekmesini seçelim. Pattern kutucuğunun içerisine *clk* yazalım ve Filter simgesine tıklayalım. Daha sonra clk_BUFGP seçip, Make Connections simgesine tıklayalım.
Not: Clk ifadesinin önündeki ve arkasındaki yıldız (*) simgesi clk ifadesinin önünde ve arkasında herhangi bir harf ya da rakam olabilir anlamındadır. Eğer aranan sinyal tam olarak biliniyorsa yıldız işareti koymaya gerek yok.
Yukarıdaki işlemleri Trigger Signals için de yapalım ve start_IBUF sinyalini ekleyelim.
Data Signals sekmesini seçip counter sinyallerini ekleyelim ve OK’e basıp Select Net diyalog kutusunu kapatalım.
ChipScope Pro Core Inserter diyalog kutusunda bütün birimlerin kırmızıdan siyaha döndüğünü görebilirsiniz. Tasarımı kaydedip, Return to Project Navigator simgesine tıklayarak, ISE’ye geri dönelim.
Artık tasarımımızı FPGA’e yükleyip, sinyalleri gözlemleyebiliriz.
Örneğimizin bu kısmında tasarımımızı FPGA’ye yükleyip, ChipScope Pro Analyzer ile izlemek istediğimiz sinyallerin davranışlarını gözlemleyeceğiz.
Öncelikle tasarımı FPGA’e yükleyelim.
ChipScope Analyzer’ı açalım.
(Start > Programs > Xilinx Ise Design Suite > ChipScope Pro > Analyzer )
Analyzer’da simgesine tıklayalım ve analizer ile FPGA arasındaki bağlantıyı kuralım.
Açılan diyalog kutusunda OK’e basalım.
ChipScope Analyzer penceresindeki Trigger Setup kısmında Value değerine “1 girelim. Bu işlem tetikleyici sinyalimiz “1” olduğunda verilerin yakalanmasını sağlar.
Trigger Setup > Run tıklayalım.
Ve start sinyalini board’umuzda 1’e çekelim ve değişimleri gözlemleyelim. İyi eğlenceler…..
KAYNAK : http://fpganedir.com/
EtiketlerChipScope fpga sayıcı modülü vhdl
Önceki PIC16F84 ile DC Motor Hız Kontrol Devresi Yapımı
Sonraki Proteus 6.2 Kullanım Kılavuzu
Tekrar Düzenlenebilir Mimariler
16F84 2003 8051 arduino aydınlatma ayrık matematik ağ bilgisayar c cpu DC deney föyü ders notu devre dijital elektronik direnç elektrik elektronik enerji fpga güneş enerjisi güvenlik güç kaynağı Hilmi Kuşçu kablo led lojik mantık matematik mcu mikrodenetleyici mikroişlemci motor otomatik kontrol pic plc programlama robot sayı sistemleri sensör tez windows yenilenebilir enerji ysa İstanbul