Hallo,
Ich möchte eine Komponente simulieren, die ich in VHDL geschrieben habe.
Dafür habe ich folgende Testbench erstellt:
1 | library ieee;
|
2 | use ieee.std_logic_1164.all;
|
3 | use ieee.numeric_std.all;
|
4 |
|
5 | -- leere entity
|
6 | entity bfg_tb is
|
7 | end entity bfg_tb;
|
8 |
|
9 | architecture bhv of bfg_basic_tb is
|
10 |
|
11 | -- Moduldeklaration
|
12 | component bfg_basic is
|
13 | port (
|
14 | --Ports genau so deklariert wie im bfg_basic modul
|
15 | rx_clk : IN STD_LOGIC;
|
16 | reset : IN STD_LOGIC;
|
17 |
|
18 | stop_fifo_read: OUT STD_LOGIC; --0 fifo wird gelesen, 1 fifo wird nicht gelesen
|
19 |
|
20 | PHY_data_in : IN STD_LOGIC_VECTOR(3 downto 0);
|
21 | PHY_RX_DV_in : IN STD_LOGIC;
|
22 | PHY_data_out : OUT STD_LOGIC_VECTOR(3 downto 0);
|
23 | PHY_TX_EN_OUT : OUT STD_LOGIC;
|
24 |
|
25 | -- AVALON Slave Interface
|
26 | as_address : in std_logic_vector(7 downto 0);
|
27 | as_chipselect : in std_logic;
|
28 | as_write : in std_logic;
|
29 | as_writedata : in std_logic_vector(31 downto 0);
|
30 | bfg_output_msg : out std_logic_vector(31 downto 0)
|
31 | );
|
32 | end component;
|
33 |
|
34 | -- input
|
35 | signal rx_clk : std_logic := '0';
|
36 | signal reset : std_logic;
|
37 |
|
38 | -- output
|
39 | signal PHY_data_out : std_logic_vector(3 downto 0);
|
40 |
|
41 | begin
|
42 | clk <= not clk after 20 ns; -- 25 MHz Taktfrequenz
|
43 | reset <= '1', '0' after 100 ns; -- erzeugt Resetsignal: --__
|
44 | PHY_RX_DV_in = '1';
|
45 | PHY_data_in(0) = '0';
|
46 | PHY_data_in(1) = '1';
|
47 | PHY_data_in(2) = '0';
|
48 | PHY_data_in(3) = '1';
|
49 |
|
50 | as_address = b"00000000";
|
51 | as_writedata = x"00000001";
|
52 | as_chipselect = '1';
|
53 | as_write = '1';
|
54 |
|
55 | generate_data process (rx_clk)
|
56 | PHY_data_in(0) = not PHY_data_in(0);
|
57 | PHY_data_in(1) = not PHY_data_in(1);
|
58 | PHY_data_in(2) = not PHY_data_in(2);
|
59 | PHY_data_in(3) = not PHY_data_in(3);
|
60 | end process generate_data;
|
61 |
|
62 | -- Modulinstatziierung
|
63 | dut : bfg_basic
|
64 | port map (
|
65 | rx_clk => rx_clk,
|
66 | reset => reset
|
67 | );
|
68 |
|
69 | end architecture;
|
Leider kann ich das in ModelSim nicht kompilieren. Ich möchte an die
Eingänge meiner Entity PHY_data_in 4 Bit Daten anlegen. Zusätzlich muss
das DV Signal angelegt werden. Das alles muss synchron mit einem 25MHz
Takt geschehen. Wie mache ich das? Im Prinzip würde es mir reiche, wenn
eine vorher festgelegte Bitfolge von vllt 10 Nibble hintereinander an
den Port angelegt wird. Ich möchte mir dann das PHY_data_out anschauen.
Danke