 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Pon Jan 14, 2008 7:25 pm Naslov sporočila: fpga - 7 segmentni prikaz |
|
|
Rad bi preizkusil 7 segmentni prikaz na x bordu. Spisal sem tole:
main.vhd
Koda: |
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 main is
port ( clock : in STD_LOGIC;
tipka : in STD_LOGIC;
ledica1 : out STD_LOGIC;
ledica2 : out STD_LOGIC;
prvi_disp_7seg_led_out : out std_logic_vector (7 downto 1)
);
end main;
architecture Behavioral of main is
signal clk_div : std_logic_vector (20 downto 0);
signal clk_disp_7seg : std_logic_vector (3 downto 0);
component disp_7seg
port ( seg_hex: in STD_LOGIC_VECTOR (3 downto 0);
seg_led: out STD_LOGIC_VECTOR (6 downto 0));
end component;
begin
process (clock)
begin
if rising_edge(clock) then
clk_div <= clk_div + 1;
end if;
end process;
process (clk_div(15))
begin
if rising_edge(clk_div(15)) then
clk_disp_7seg <= clk_disp_7seg + 1;
end if;
end process;
prvi_disp_7seg : disp_7seg port map(seg_hex => clk_disp_7seg, seg_led => prvi_disp_7seg_led_out);
ledica1 <= clk_div(14);
ledica2 <= clk_disp_7seg(1);
end Behavioral;
|
7seg.vhd
Koda: |
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 disp_7seg is
Port ( seg_hex: in STD_LOGIC_VECTOR (3 downto 0);
seg_led: out STD_LOGIC_VECTOR (6 downto 0));
end disp_7seg;
architecture Behavioral of seg is
begin
--
-- segment encoinputg
-- 0
-- ---
-- 5 | | 1
-- --- <- 6
-- 4 | | 2
-- ---
-- 3
with seg_hex SELect
seg_led <= "1111001" when "0001", --1
"0100100" when "0010", --2
"0110000" when "0011", --3
"0011001" when "0100", --4
"0010010" when "0101", --5
"0000010" when "0110", --6
"1111000" when "0111", --7
"0000000" when "1000", --8
"0010000" when "1001", --9
"0001000" when "1010", --A
"0000011" when "1011", --b
"1000110" when "1100", --C
"0100001" when "1101", --d
"0000110" when "1110", --E
"0001110" when "1111", --F
"1000000" when others; --0
end Behavioral;
|
Javi mi napako:
ERROR:NgdBuild:604 - logical block 'prvi_disp_7seg' with type 'disp_7seg' could
not be resolved. A pin name misspelling can cause this, a missing edif or ngc
file, or the misspelling of a type name. Symbol 'disp_7seg' is not supported
in target 'xbr'.
Mogoče kdo ve, kaj bi bilo narobe. Kakšen misspelling, jaz ne vidim nobene napake.
|
|
Nazaj na vrh |
|
 |
icek Član

Pridružen-a: Ned 15 Maj 2005 22:31 Prispevkov: 105 Aktiv.: 0.44 Kraj: Ruše
|
Objavljeno: Tor Jan 15, 2008 8:33 am Naslov sporočila: |
|
|
Narediti moraš še port map s katerim boš povezal signale v main.vhd in 7seg.vhd.
|
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Tor Jan 15, 2008 10:35 am Naslov sporočila: |
|
|
Saj imam, če misliš to:
Koda: |
prvi_disp_7seg : disp_7seg port map(seg_hex => clk_disp_7seg, seg_led => prvi_disp_7seg_led_out);
|
|
|
Nazaj na vrh |
|
 |
icek Član

Pridružen-a: Ned 15 Maj 2005 22:31 Prispevkov: 105 Aktiv.: 0.44 Kraj: Ruše
|
Objavljeno: Tor Jan 15, 2008 10:55 am Naslov sporočila: |
|
|
Pa res, sem spregledal.
|
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Tor Jan 15, 2008 3:59 pm Naslov sporočila: |
|
|
Si dodal tadrugi fajl (disp_7seg) vmes med source?
Meni tale error diši na to, da ne najde podkomponente.
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Tor Jan 15, 2008 4:04 pm Naslov sporočila: |
|
|
Sem (glej priponko), vsaj tako mislim - dal sem "new sorce", in spisal to kar je v 7seg.vhd.
A je potrebno ta fajl (7seg.vhd) kako vključit v glavni fajl (main.vhd) - tako kot se to dela npr. v c-ju (#include ...).
Opis: |
|
Velikost datoteke: |
113.13 KB |
Pogledana: |
15 krat |

|
|
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Tor Jan 15, 2008 8:20 pm Naslov sporočila: |
|
|
Sem našel napako, v 7seg.vhd sem pisal enkrat "disp_7seg", dugič pa "seg".
Koda: |
entity disp_7seg is
Port ( seg_hex: in STD_LOGIC_VECTOR (3 downto 0);
seg_led: out STD_LOGIC_VECTOR (6 downto 0));
end disp_7seg;
architecture Behavioral of seg is
|
Samo ne vem zakaj mi preverjanje sintakse samo za 7seg.vhd ni javilo nobene napake...
|
|
Nazaj na vrh |
|
 |
aly Član



Pridružen-a: Tor 28 Sep 2004 14:51 Prispevkov: 9407 Aktiv.: 39.71 Kraj: Kranj - struževo
|
Objavljeno: Sre Jan 16, 2008 12:38 pm Naslov sporočila: |
|
|
Če gledam tvojo sliko - fajl 7seg se mora postaviti pod Main fajl. Zraven UCF. Sicer ne bo šlo. Ampak očitno si že našel napako.
Pri VHDL-u je potrebno biti pazljiv - marsikdaj se zadeva na videz normalno prevede. In če ne deluje, je potrebno preveriti vse Warning izpise.
Še ena zanimiva funkcija obstaja - izpis mapiranja pinov.
Med projektnimi fajli nadeš eno takšno datoteko: "<ime_top_modula>_pad.csv"
Tam so izpisani vsi pini izbranega čipa.
_________________ I'm going to stand outside, so if anyone asks, I'm outstanding  |
|
Nazaj na vrh |
|
 |
trot Član


Pridružen-a: Čet 18 Jan 2007 20:25 Prispevkov: 1282 Aktiv.: 5.72 Kraj: glej fogl
|
Objavljeno: Sre Jan 16, 2008 1:10 pm Naslov sporočila: |
|
|
aly je napisal/a: |
Če gledam tvojo sliko - fajl 7seg se mora postaviti pod Main fajl. Zraven UCF. Sicer ne bo šlo. Ampak očitno si že našel napako. |
Sej potem ko naredim en "instance" tega modul (in ko ni napak) se postavi spodaj. Najbrž bo to v redu.
|
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|