Ralph H. schrieb:
> da brauchste ja ewig um alle Signale in der
> Testbench richtig zu definieren und das Ding zum laufen zu bekommen !
Mit einem guten Editor, der vertikale Blöcke verarbeiten kann, geht es
eingentlich ziemlich schnell:
Die Entity in die Testbench kopieren:
1 | entity top is
|
2 | port (
|
3 | -- ==== Pushbuttons (BTN) ====
|
4 | BTN_EAST : in std_logic;
|
5 | BTN_NORTH : in std_logic;
|
6 | BTN_SOUTH : in std_logic;
|
7 | BTN_WEST : in std_logic;
|
8 | -- ...
|
Das ganze etwas umformatieren (ich lass in den Instanzierungen immer die
Definition als Kommentar mit dran):
1 | top_i0: top
|
2 | port map (
|
3 | BTN_EAST => tb_BTN_EAST , -- : in std_logic;
|
4 | BTN_NORTH => tb_BTN_NORTH , -- : in std_logic;
|
5 | BTN_SOUTH => tb_BTN_SOUTH , -- : in std_logic;
|
6 | BTN_WEST => tb_BTN_WEST , -- : in std_logic;
|
7 | -- ...
|
Und fix die Signale definieren:
1 | -- ==== Pushbuttons (BTN) ====
|
2 | signal tb_BTN_EAST : std_logic;
|
3 | signal tb_BTN_NORTH : std_logic;
|
4 | signal tb_BTN_SOUTH : std_logic;
|
5 | signal tb_BTN_WEST : std_logic;
|
Dann muß man sich noch sinnvolle Stimuli überlegen...
1 | tb_BTN_EAST <= '0';
|
2 | tb_BTN_NORTH <= '0';
|
3 | tb_BTN_SOUTH <= '0';
|
4 | tb_BTN_WEST <= '0', '1' after 600 us, '0' after 650 us;
|
Alles in allem nicht wirklich viel Arbeit. (Außer vielleicht Du
verwendest den ISE-Editor...)
Duke