2016-03-31 31 views
1

Bir IP Çekirdeği yazıyorum ve kullanıcının tüm OUT/IN Bağlantı Noktalarına gerek duymadığı genel parametre parametrelerine bağlıyım. İsteğe bağlı Port'lara sahip olmak mümkün mü? Benzer bir şey olabileceğini biliyorum, çünkü Xilinx IP-Cores kullandığımda, tüm PORT'ları içermeyen parametrelere bağlı olarak.İsteğe Bağlı PORTlar?

+0

Tüm bağlantı noktaları dahil _not ile ne demek istiyorsunuz? VHDL jeneratör aracı tarafından mı bırakılmışlar? –

+0

Tekrar baktım ve IP-Core'un Vivado sargısının otomatik olarak oluşturduğu PORT'lara dahil olmadıkları görülüyor, ancak ambalajın bileşen beyanında yer alıyorlar. IP-Core'umda da aynısı olacak mı diye merak ediyorum. – refDL

cevap

4

Bağlantı noktaları isteğe bağlı değildir, ancak tasarımcı için olduğu gibi orada olan bağlantı noktaları kullanılabilir.

Eşlenmeyen (kullanılan) giriş kapıları, varlıkta varsayılan bir değere sahip olmalı ve çıkış bağlantı noktalarının eşleştirilmemiş olması gerekir.

bir varlık gibi örneğin ilan edilmesi:

sonra modül portların kullanımı, daha sonra yapılandırmasına göre farklılık aşağıda gibi farklı yapılandırma kullanılabilir
entity mdl_sub is 
    generic(
    A_C_USE : boolean := FALSE; 
    B_D_USE : boolean := FALSE); 
    port(
    clk_i : in std_logic; 
    rst_i : in std_logic; 
    a_i : in std_logic := 'X'; 
    b_i : in std_logic := 'X'; 
    c_o : out std_logic; 
    d_o : out std_logic); 
end entity; 

:

-- Using port a_i and c_o 
mdl_sub_0 : entity work.mdl_sub 
    generic map(
    A_C_USE => TRUE) 
    port map(
    clk_i => clk_i, 
    rst_i => rst_i, 
    a_i => m0_a_i, 
    c_o => m0_c_o); 

-- Using port b_i and d_o 
mdl_sub_1 : entity work.mdl_sub 
    generic map(
    B_D_USE => TRUE) 
    port map(
    clk_i => clk_i, 
    rst_i => rst_i, 
    b_i => m1_b_i, 
    d_o => m1_d_o); 

Tüm sinyaller ve bağlantı noktaları std_logic'dir.

+1

Bu GENERATE ifadesine benzer güzel bir çözümdür. Umarım, Vivado, Limanlar kullanılmadığı konusunda uyarıda bulunmaz. – refDL

+1

.... – Paebbels