Warum sich Integer in der Entity bei diesem SRAM ?

Gast #3647270
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;
Gast #3647364
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
Gast #3647897
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
Gast #3648344
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,

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