Jestem nowym użytkownikiem forum .
Z VHDL'em mam styczność jedynie na studiach, więc nie jestem biegły w programowaniu w tym języku, proszę o wyrozumiałość. Właśnie natrafiłem na (zapewne) trywialny problem, do którego nie wiem jak podejść.
Chcę wyświetlić na 2 wyświetlaczach 7-segmentowych wartość ustawianą przełącznikami SW(7-0), przy czym wartości ustawiane przez SW(7-4) i SW(3-0) mają być wyświetlane niezależnie na wyświetlaczach hex0 i hex1. Stany od 1010 do 1111 mają być nieaktywne. Oto kod:
Proszę o wskazówki, jakiej instrukcji użyć.library ieee;
use ieee.std_logic_1164.all;
entity drugie is
port (
sw: in std_logic_vector(7 downto 0);
hex0: out std_logic_vector(0 to 6);
hex1: out std_logic_vector(0 to 6)
);
end drugie;
architecture program of drugie is
component glowny
port (
a,s,d,f,g,h,j,k : in std_logic;
z,w : out std_logic_vector(3 downto 0)
);
end component;
component dekoder
port (
dekoderIN : in std_logic_vector(3 downto 0);
dekoderOUT: out std_logic_vector(0 to 6)
);
end component;
signal d1 : std_logic_vector(3 downto 0);
signal d2 : std_logic_vector(3 downto 0);
begin
modul1 : glowny port map (sw(7),sw(6),sw(5),(sw(4),sw(3),sw(2),sw(1),sw(0), d1,d2;
e1 : dekoder port map (d1,hex0);
e2 : dekoder port map (d2,hex1);
end program;
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity glowny is
port (
a,s,d,f,g,h,j,k : in std_logic;
z,w : out std_logic_vector(3 downto 0);
);
end glowny;
architecture nazwa of glowny is
begin
-- Problem leży w tym miejscu poniżej
-- Nie wiem jak 'skojarzyć' bity wejściowe: a,s,d,f
-- w jeden 'sygnał' 4-bitowy 'z'
-- with select
z <= a,s,d,f
w <= g,h,j,k
end nazwa;
---------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------
library ieee;
use ieee.std_logic_1164.all;
entity dekoder is
port (
dekoderIN: in std_logic_vector(3 downto 0);
dekoderOUT: out std_logic_vector(0 to 6)
);
end dekoder;
architecture dekoder of dekoder is
begin
with dekoderIN select
dekoderOUT <= "1001111" when "0001", -- 1
"0010010" when "0010", -- 2
"0000110" when "0011", -- 3
"1001100" when "0100", -- 4
"0100100" when "0101", -- 5
"0100000" when "0110", -- 6
"0001111" when "0111", -- 7
"0000000" when "1000", -- 8
"0000100" when "1001", -- 9
"0000001" when "0000", -- 0
"1001111" when others; -- ERROR: E
end dekoder;