Forum: FPGA, VHDL & Co. Warum sich Integer in der Entity bei diesem SRAM ?


von peter (Gast)


Lesenswert?

Hallo, warum befinden sich die beiden Integer in der Entity::

write_address:  IN   integer RANGE 0 to 31;
read_address:   IN   integer RANGE 0 to 31;

Ich habe ja nicht so viele Schalter am DE-1 um die Adressen zu Testen.
Kann man die auch irgendwie als Signal in der "ARCHITECTURE rtl OF sram1 
IS" ansprechen um dieses SRAM zu beschreiben/lesen?

Danke.
Gruss
1
LIBRARY ieee;
2
USE ieee.std_logic_1164.ALL;
3
4
ENTITY sram1 IS
5
   PORT
6
   (
7
      clock: IN   std_logic;
8
      data:  IN   std_logic_vector (31 DOWNTO 0);
9
      write_address:  IN   integer RANGE 0 to 31;
10
      read_address:   IN   integer RANGE 0 to 31;
11
      we:    IN   std_logic;
12
      q:     OUT  std_logic_vector (31 DOWNTO 0)
13
   );
14
END sram1;
15
16
ARCHITECTURE rtl OF sram1 IS
17
   TYPE mem IS ARRAY(0 TO 31) OF std_logic_vector(31 DOWNTO 0);
18
   SIGNAL ram_block : mem;
19
   
20
BEGIN
21
  PROCESS (clock)
22
  BEGIN
23
    IF (clock'event AND clock = '1') THEN
24
      IF (we = '1') THEN
25
        ram_block(write_address) <= data;
26
      END IF;
27
      q <= ram_block(read_address);
28
    END IF;
29
   END PROCESS;
30
END rtl;

von Olga (Gast)


Lesenswert?

peter schrieb:
> warum befinden sich die beiden Integer in der Entity

Weil das SRAM nunmal 2 Adressen als Eingang hat.

von peter (Gast)


Lesenswert?

Jup danke.

Könnte man es auch so machen um es mal mit Switch zu testen :
write_address:  IN   integer RANGE 0 to 8;

So das die Anderen "IN" in der Luft hängen?
Bzw wie könnte man die anderen PIN mit einer Variablen setzen?


Danke.
Gruss

von Duke Scarring (Gast)


Lesenswert?

peter schrieb:
> Könnte man es auch so machen um es mal mit Switch zu testen
Man testet schnelle digitale Logik mit einer Testbench.
Dasieht man viel mehr als mit einem Switch und 'ner LED.

Duke

von peter (Gast)


Lesenswert?

Mit Testen meinte ich , mit den Schaltern und RAM spielen.
Ist mein Hobby, ich brauche dieses FPGA nicht zum Beruf und auch nicht 
um Geld zu verdienen, ich bekomme genug Pension.

--------------------------------------
Man testet schnelle digitale Logik mit einer Testbench.
Dasieht man viel mehr als mit einem Switch und 'ner LED.
--------------------------------------

GRuss

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

peter schrieb:
> --------------------------------------
Man zitiert hier im Forum mit einem > am Zeilenanfang. Dafür gibts dann 
kostenlos die Farbe:
> ein Zitat
Bei zwei > und drei > wirds dann bunter:
>> Zwei
>>> Drei

: Bearbeitet durch Moderator
von Duke Scarring (Gast)


Lesenswert?

peter schrieb:
> Mit Testen meinte ich , mit den Schaltern und RAM spielen.
Mit Testbench meine ich: mehr persönliches Aha und weniger nervige 
Fragen im Forum.

Duke

von Fpgakuechle K. (Gast)


Lesenswert?

peter schrieb:

> Könnte man es auch so machen um es mal mit Switch zu testen :
> write_address:  IN   integer RANGE 0 to 8;
>
> So das die Anderen "IN" in der Luft hängen?
> Bzw wie könnte man die anderen PIN mit einer Variablen setzen?


Besser
 write_address:  IN   integer RANGE 0 to 7;

da nur 3 bit

Statt luft hängen lassen (was bei Eingängen eh nicht geht) in der Port 
map einen festen Wert zuweisen. Bspw.:

-..
read_adr => 0;

Falls du statt Simu lieber in echt sehen willst was passiert, wäre ein 
FPGA-interner Logicanalyzer wie dort: 
http://www.mikrocontroller.net/articles/Durchblicker was für Dich.

MfG,

von peter (Gast)


Lesenswert?

Jup danke für den Hinweis.

GRuss

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.