VHDL: Aufsteigende Adresse an Port ausgeben

Gast #596191
Lesenswert?
• ▲
▼
Hallo Miteinander!

Ich habe folgendes Problem:
Ich möchte an 4 Ports eine aufsteigende Adresse ausgeben.
Dafür hab ich folgendes Programm mit einem Zähler, der Zählerstand soll 
an dann an den Ports ausgegeben werden.
Bei der Simulation wird folgende Fehlermeldung ausgegeben:

WARNING:Simulator:29 - at 0 ns: Warning: There is an 'U'|'X'|'W'|'Z'|'-' 
in an arithmetic operand, the result will be 'X'(es).

Code:

ENTITY MAIN IS
   PORT (CLK:      IN std_logic;
  Output:   OUT STD_LOGIC_VECTOR(3 downto 0) := "0000");
END;


ARCHITECTURE BEHAVIOR OF M200_MASTER IS
   signal Count : std_logic_vector (3 downto 0);

BEGIN

   PROCESS (CLK)
   BEGIN
      IF CLK='1' AND CLK'event THEN
      Output <= Count;
      END IF;
   END PROCESS;

   PROCESS
   BEGIN
      Count <= Count + 1;
   END PROCESS;

END BEHAVIOR;




Entwicklungsumgebung: Xilinx ISE 9.1i

Bin für Hilfe wirklich dankbar!
Gast #596360
Lesenswert?
• ▲
▼
Also, ich würde es so machen:
1
library ieee;
2
use ieee.std_logic_1164.all;
3
use ieee.numeric_std.all;
4

5
ENTITY MAIN IS
6
  PORT (
7
    clk   : in  std_logic;
8
    Output: out std_logic_vector(3 downto 0)
9
  );
10
END;
11

12

13
ARCHITECTURE BEHAVIOR OF M200_MASTER IS
14

15
  signal Count : unsigned(3 downto 0) := "0000";
16

17
begin
18
  process (clk)
19
  begin
20
    if rising_edge(clk) then
21
      Count <= Count + 1;
22
    end if;
23

24
    Output <= std_logic_vector(Count);
25
  end process;
26
end behavior;

Die Syntax habe ich nicht überprüft. Hoffe trotzdem dass
es richtig ist. Zähler sind bei mir immer unsigned.

Gruß

Ralf

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren