Sapientia EMTE
Digitális elektronika gyakorlat A VHDL leírástípusok
1. A funkcionális leírásmód --------------------------------------------------------------------------------- Company: SAPIENTIA EMTE -- Engineer: Domokos József --- Create Date: 08:48:48 03/21/06 -- Design Name: -- Module Name: Logikai es kapuk funkcionalis leirasa- Behavioral -- Project Name: FPGA gyakorlat -- Target Device: SPARTAN 2 -- Tool versions: Xilinx ISE 7.1 -- Description: --- Dependencies: --- Revision: -- Revision 0.01 - File Created -- Additional Comments: --------------------------------------------------------------------------------library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity funkcionaliseskapuk is Port ( x1 : in std_logic; x2 : in std_logic; x3 : in std_logic; y : out std_logic); end funkcionaliseskapuk; architecture Behavioral of funkcionaliseskapuk is signal temp : std_logic; begin kapuk : process (x1, x2, x3) begin temp <= x1 and x2; y <= temp and x3; end process kapuk; end Behavioral; 1. Ábra: Funkcionális leírásmód
Ez a leírásmód az áramkör működését veszi alapul. Használható szekvenciális logikai áramkörök tervezésénél, hiszen figyelembe veszi az időt.
1
Sapientia EMTE
Digitális elektronika gyakorlat
2. A strukturális leírásmód --------------------------------------------------------------------------------- Company: SAPIENTIA EMTE -- Engineer: Domokos József --- Create Date: 08:28:32 03/21/06 -- Design Name: -- Module Name: Logikai es kapuk strukturalis leirasa- Behavioral -- Project Name: -- Target Device: SPARTAN 2 -- Tool versions: Xilinx ISE 7.1 -- Description: --- Dependencies: --- Revision: -- Revision 0.01 - File Created -- Additional Comments: --------------------------------------------------------------------------------library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity strukteskapuk is Port ( x1 : in std_logic; x2 : in std_logic; x3 : in std_logic; y : out std_logic); end strukteskapuk; architecture Behavioral of strukteskapuk is component es Port ( be1 : in std_logic; be2 : in std_logic; ki : out std_logic); end component es; signal temp : std_logic; begin U1 : es port map (x1, x2, temp); U2 : es port map (temp, x3, y); end Behavioral; 2. Táblázat: Strukturális leírásmód
2
Sapientia EMTE
Digitális elektronika gyakorlat
A strukturális leírásmód, amelyet az egyszerű logikai kapuk esetében is használtunk, a legkézenfekvőbb leírásmód. Egyszerű logikai áramkörök esetén használatos. Az egymáshoz kötődő áramköri elemek leírásait és a köztük létező kapcsolatokat tartalmazza. A strukturális leírásmód hátránya, hogy nem veszi figyelembe az időt. Ebből kifolyólag a szekvenciális logikai áramköröket nem lehet tervezni ezzel a leírásmóddal. Az alábbi két példa egy logikai ÉS kapu és egy logikai NEM kapu strukturális leírásmódját szemlélteti. library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity es is Port ( be1 : in std_logic; be2 : in std_logic; ki : out std_logic); end es; architecture Behavioral of es is begin ki<=(be1 and be2); end Behavioral; 3. Táblázat: Logikai ÉS kapu strukturális leírása
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity nem is Port ( be : in std_logic; ki : out std_logic); end nem; architecture Behavioral of nem is begin ki<=not(be); end Behavioral; 4. Táblázat: Logikai NEM kapu strukturális leírása
3
Sapientia EMTE
Digitális elektronika gyakorlat
3. Az adatfolyam típusú leírásmód --------------------------------------------------------------------------------- Company: SAPIENTIA EMTE -- Engineer: Domokos József --- Create Date: 08:22:39 03/21/06 -- Design Name: -- Module Name: Logikai es kapuk adatfolyam tipusu leirasa - Behavioral -- Project Name: FPGA gyakorlat -- Target Device: SPARTAN 2 -- Tool versions: Xilinx ISE 7.1 -- Description: --- Dependencies: --- Revision: -- Revision 0.01 - File Created -- Additional Comments: --------------------------------------------------------------------------------library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; --use UNISIM.VComponents.all; entity eskapuk is Port ( x1 : in std_logic; x2 : in std_logic; x3 : in std_logic; y : out std_logic); end eskapuk; architecture Behavioral of eskapuk is signal temp : std_logic; begin temp <= x1 and x2; y <= temp and x3; end Behavioral; 5. Táblázat: Adatfolyam típusú leírás
Ez a leírástípus a legegyszerűbb és legrövidebb. Lényegében véve, a funkcionális leírás egy 4
Sapientia EMTE
Digitális elektronika gyakorlat
rövidített változata. Meg kell adni a kimenet, vagy kimenetek leírását a bemeneti adatok függvényében, és nem kell figyelembe venni a belső felépítést. Ez a leírásmód hasonlít leginkább a strukturált programozásra.
1. Ábra: Logikai és kapukat tartalmazó áramkör tervezése a Schematic Editor segítségével
Felhasználva az előző gyakorlaton megírt logikai kapukat, írjátok meg az 1. Ábrán látható áramkör strukturális, funkcionális és adatfolyam leírásait. A logikai kapuknak készítsetek szimbólumot a Design Utilities → Create Schematic Symbol parancs segítségével, majd rajzoljátok meg az 1. Ábrán látható áramkört a Schematic Editort használva. Tervezzetek a Schematic Editort és az előre értelmezett logikai kapukat használva, egy MUX 2:1 áramkört mindhárom le1rásmodot használva, majd rajzoljátok meg az áramkört a Schematic Editor segítségével.
5