Elettronica dei Sistemi Digitali

Docente: Prof. Fabio Campi (Tutore Aldo Romani )

Esercitazioni:


Come utilizzare tipi di dati definiti dall'utente

Per utilizzare tipi di dato definiti dall'utente nelle porte di I/O di una entity, è possibile creare un package contenente la definizione di tipo. Il package dovrà poi essere caricato in maniera analoga a quanto viene fatto con i packages della libreria IEEE (ad esempio std_logic_1164).
E' possibile:

Nel primo caso, il package verrà incluso nella libreria work. La libreria work è la libreria che contiene i risultati della compilazione corrente, compresa la entity/architecture principale.
Il codice VHDL è il seguente.

miopackage.vhd:
------------------------------------
-- definizione di un package utente

package miopackage is

   type tipo_utente is (uno, due, tre, quattro);
end miopackage;

--
------------------------------------



------------------------------------
-- utilizzo del package utente

library IEEE;
   use IEEE.std_logic_1164.all;
   use IEEE.std_logic_arith.all;

-- occorre caricare prima la libreria
-- e poi selezionare il package
library work;
   use work.miopackage.all;

entity esempio_package is
   port ( d : in tipo_utente;
          q : out std_logic);
end esempio_package;

architecture A of esempio_package is
begin
   q <= '1' when d = uno else '0';
end A;



In alternativa è possibile creare separatamente una libreria utente contenente il package in questione.
I passi da compiere sono i seguenti.
  1. Creare un direttorio di progetto per la libreria
  2. Creare un file VHD, con la definizione di package, ad esempio:
    miopackage.vhd
    package miopackage is
       type tipo_utente is (uno,due,tre,quattro);
    end miopackage;

  3. In Maxplus, impostare il progetto corrente su questo file (File, Project Name...)
  4. Compilare con il comando File, Project, Save&Compile. (nella finestra messaggi vedrete un avviso che vi informa che il file non contiene entity o architectures. E' normale.) Dovrebbe essere creato un file con estensione DLS.
  5. Creare un nuovo progetto, assegnando un nome logico alla libreria appena creata, ad esempio "mialibreria". Istanziare la libreria nel codice VHDL, e caricare il package.
    esempio_package.vhd
    library IEEE;
       use IEEE.std_logic_1164.all;
       use IEEE.std_logic_arith.all;

    library mialibreria;
       use mialibreria.miopackage.all;

    entity esempio_package is
       port ( d : in tipo_utente;
              q : out std_logic);
    end esempio_package;

    architecture A of esempio_package is
    begin
       q <= '1' when d = uno else '0';
    end A;
  6. Prima di compilare, occorre però dire a Maxplus dovre trovare la libreria "mialibreria". Attivate il Compiler, selezionate Interfaces, VHDL Netlist Reader Settings...,  in project libraries aggiungete "mialibreria" in Library Name, e selezionate il direttorio che contiene la library. Poi cliccate Add. La libreria è stata aggiunta.
  7. Compilate e continuate il flusso di progetto normalmente.

NOTA: Le librerie utente possono ospitare, oltre a definizioni di tipi, anche descrizioni di componenti (FF, contatori, etc.), e funzioni, etc.


Microelectronics Group Home Page Staff
Research Activities Teaching Activity
Publications Local Stuff
DEIS Home Page University of Bologna Home Page


External link, Local link, For local sites only, Stiil empty.