VHDL...

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

VHDL...

Beitrag von RedGuy »

Hi !

Bin derzeit unter Anderem mit VHDL für mein FPGA - Board beschäftigt ;) .

Jetzt hat sich folgendes Problem aufgetan:

Code: Alles auswählen

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

ENTITY InstructionDevice1 IS
	PORT(
		DATA_internal : INOUT std_logic_vector(0 to 7);
		);
END InstructionDevice1;

ARCHITECTURE Behav OF InstructionDevice1 IS
type SRAM is array (Natural range <>) of Std_Logic;
VARIABLE SRAM_MEMORY : SRAM (0 to 7);
BEGIN
		SRAM_MEMORY := DATA_internal;

		DATA_internal <= ('0','0','0','0','0','0','0','0');
END Behav;
In diesem Fall wird ja SRAM_MEMORY über DATA_internal die 8 Nullen zugewiesen.

Was ist, wenn man einen zweidimensionalen Array hat und einen Vektor darin adressiert:

Code: Alles auswählen

ARCHITECTURE Behav OF InstructionDevice1 IS
type SRAM is array (Natural range <>,Natural range <>) of Std_Logic;
VARIABLE SRAM_MEMORY : SRAM (0 to 7, 0 to 7);
BEGIN
		SRAM_MEMORY(0) := DATA_internal;

		DATA_internal <= ('0','0','0','0','0','0','0','0');
END Behav;
Werden im zweiten Beispiel dem RAM-Vektor 0 tatsächlich wieder die 8 Nullen zugewiesen ?
Oder muss ich explizit

Code: Alles auswählen

SRAM_MEMORY(0) := ('0','0','0','0','0','0','0','0');
schreiben ?

Gruss
RedGuy
Zuletzt geändert von xq am 11.05.2017, 08:29, insgesamt 1-mal geändert.
Grund: Syntax-Highlighting
DerAlbi
Establishment
Beiträge: 269
Registriert: 20.05.2011, 05:37

Re: VHDL...

Beitrag von DerAlbi »

Ein Post ohne exzessive Ausrufezeichen. :shock:

Ich verstehe aber dein Problem nicht:
google: "VHDL 2 dimensional vector"
2. Treffer: http://www.ics.uci.edu/~jmoorkan/vhdlref/arrays.html

Was konkret blieb unbeantwortet, nachdem du google aufgegeben hattest und hier einen Thread aufmachst?
Verstehe ich das richtig, dass es dir einzig und allein darum geht ob du das "(0)" weglassen kannst?
Da tendiere ich zum Nein, denn ein 2D-Array sollte aus logischen Gründen offensichtlich kein 1D-Array zugewiesen werden können.
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

Re: VHDL...

Beitrag von RedGuy »

Hallo!

Mein Problem ist manchmal das ggf. nicht sequentielle Kompilieren des VHDL codes.

Wird der Array SRAM_MEMORY nun in erstem Beispiel mit den Nullen beschrieben, oder nicht.

@Albi: die Site hab ich schon gesehen.

Gruss
Red
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: VHDL...

Beitrag von xq »

Das Problem ist, dass du deinem std_logic_vector, der im Array liegt, nur einen std_logic-Wert zuweißt.

Code: Alles auswählen

DATA_internal <= (std_logic_vector(to_unsigned(0, DATA_internal[0]'length)), std_logic_vector(to_unsigned(0, DATA_internal[0]'length)),…);

War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

Re: VHDL...

Beitrag von RedGuy »

Hallo !

Für das Problem habe ich noch keine Anwort/Lösung :( .


Noch ein zweites Problem:

Wie adressiert man einen Array binär (in meinem Fall über einen std_logic_vector) ?


Gruss
RedGuy
Benutzeravatar
xq
Establishment
Beiträge: 1581
Registriert: 07.10.2012, 14:56
Alter Benutzername: MasterQ32
Echter Name: Felix Queißner
Wohnort: Stuttgart & Region
Kontaktdaten:

Re: VHDL...

Beitrag von xq »

Ebenfalls: Typwandlung, nur umgekehrt wie oben in meinem Beispiel
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…

Programmiert viel in ⚡️Zig⚡️ und nervt Leute damit.
RedGuy
Establishment
Beiträge: 111
Registriert: 17.09.2002, 17:27
Echter Name: Manuel Hofmann
Wohnort: Rottweil
Kontaktdaten:

Re: VHDL...

Beitrag von RedGuy »

Hi !

Dank an masterQ32.

Hab auch ne Site gefunden: https://www.xilinx.com/support/answers/45213.html

Gruss
Red
Antworten