fpganedir.com'da ara

fpganedir mail

CONFIGURATON

Configuration, alt komponentlerin nasıl bir araya gelerek komple bir tasarım oluşturduğunu, blokların birbirine nasıl bağlandığını belirleyen yapıdır.

configuration configuration_ismi of entity_ismi is
   -- configuration deklarasyonları
    for architecture_ismi
      for çağırma_etiketi : component_ismi
        use entity kütüphane_ismi.entity_ismi(arch_ismi);
      end for;
    -- diğer ifadeler
    end for;
end [configuration] [configuration_ismi];

NOT :

ÖRNEK 1 (INVERTER):

entity INVERTER is
            generic (PropTime : TIME := 5 ns);
            port ( IN1 : in BIT; OUT1 : out BIT);
end INVERTER;

architecture STRUCT_I of INVERTER is
begin
            OUT1 <= not IN1 after PropTime;
end STRUCT_I;

entity TEST_INV is end TEST_INV;

architecture STRUCT_T of TEST_INV is
signal S1, S2 : BIT := '1';

component INV_COMP is   -- INV_COMP component deklarasyonu:
     generic (TimeH : TIME);
     port ( IN_A : in BIT; OUT_A : out BIT );
end component;

begin
  LH:INV_COMP generic map (10 ns) port map (S1,S2);   --  INV_COMP component'inin çağrılması
end STRUCT_T;

configuration
CONFIG_TINV of TEST_INV is
for STRUCT_T
  for LH : INV_COMP    --INV_COMP component'inin LH ismiyle çağrılması
    use entity WORK.INVERTER (STRUCT_I)     -- generic map ve port map'ler:
    generic map (PropTime => TimeH)
    port map (IN1 => IN_A, OUT1 => OUT_A);
  end for;
end for ;
end CONFIG_TINV;

CONFIG_INV isimli configuration basit bir configuration deklarasyonu örneğidir. Burada sadece bir blok configuration bulunmaktadır. Bu blok içinde de INV_COMP isimli bir adet component deklarasyonu vardır. Bu component daha sonra çağrılırken LH etiketiyle tanımlanmıştır ve INVERTER isimli entity de INV_COMP component’i ile ilişkilendirilmiştir.

Sadece bir blok configuration olduğundan, STRUCT_T architecture’ı kullanılır. INV_COMP component configuration’ı da blok konfigurasyonu içinde görünür. TEST_INV entity’sinin CONFIG_INV configuration’u, LG component’inin ilişkilendirilmesinde kullanılır. (INV_COMP’u INVERTER entity’si ve STRUCT_1 architecture’ı ile)

ÖRNEK 2:

for STRUCT
   for SPEECH_CPU: SPEECH
    use entity SP_LIB.DIG_REC(ISD)
    generic map (TimeRec => 20 sec);
            for ISD
               for AD_CONV : ADC_1
          use entity ANALOG_DEV.ADC;
        end for; -- for AD_CONV
      end for; -- for ISD
  end for; -- for SPEECH_CPU
end for; -- for STRUCT


STRUCT architecture’una işaret eden blok konfigurasyonu, configuration deklarasyonu bölümünde görünüyor. Block configuration’u içinde, SPEECH isimli component configuration’u bulunuyor. IST isimli block configuraiton’u, IST architecture’unu tanımlıyor. Bu architecture da ise AD_CONV etiketli bir kullanım içerir. blok’un tamamı burada  hiyerarşik olarak belirtilir.

ÖRNEK 3:

configuration Conf_Test of Test is
  for STRUCTURE_T
    for T_1 : DEC use configuration CONF_E;
    end for;
  end for;
end configuration Conf_Test;

Bu örnekte, EXAMPLE entity’sine ait configuration deklarasyonu görülüyor. DEC component’i EXAMPLE entity’sine bağlanıyor. STRUCT_T architecture’ı içinde T_1 component’i çağrılırken CONF_E configuration’u kullanılıyor.

DETAYLI AÇIKLAMA

Her component kullanımı, bir entity/architecture çiftine (design entity) işaret eder. Component tanımlaması deklarasyon bölümünde yapılır. İlk önce configuration ismi, ardından verilen entity ile ilişkilendirilir. Deklarasyon bölümünde use, attribute ve group kullanmak mümkündür. Bu bölümün ana gövdesini block configuration oluşturur. Bu da; tanımlı entity ile birlikte angi architecture’un kullanılacağını ve component çağrılmasında hangi configuration elementinin kullanılacağını belirtir.

Basit bir configuration, sadece bir architecture içinde referans verilir. (Örnek 1)

Birbirinin içine girmiş block configuration’lardan oluşan hiyerarşik yapılar sayesinde component kullanım ifadeleri ile entity’leri birbirine bağlayabiliriz. (Örnek 2)

Configuration deklarasyonu bölümündeki portlar ve generic’ler, entity deklarasyonundaki karşılıklarıyla uyuşmak zorundadır. Bunu sağlamak için port map ve generic map ifadeleri kullanılır. (Örnek 1)

 

Anasayfa | Fpga | VHDL | VHDL Sözlüğü | Embedded Sistem | Android | Sayısal Tasarım | Simulasyon | PCB | Örnekler | Forum | İletişim
Copyright © 2010-2013 FPGAnedir. All Rights Reserved.