mikrocontroller.net

Forum: FPGA, VHDL & Co. Testbench in VHDL für MII Schnittstelle


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich möchte eine Komponente simulieren, die ich in VHDL geschrieben habe. 
Dafür habe ich folgende Testbench erstellt:
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
 
-- leere entity
entity bfg_tb is
end entity bfg_tb;
 
architecture bhv of bfg_basic_tb is
 
  -- Moduldeklaration
  component bfg_basic is
    port (
    --Ports genau so deklariert wie im bfg_basic modul
    rx_clk : IN STD_LOGIC;
    reset : IN STD_LOGIC;
    
    stop_fifo_read: OUT STD_LOGIC;  --0 fifo wird gelesen, 1 fifo wird nicht gelesen
                
    PHY_data_in : IN STD_LOGIC_VECTOR(3 downto 0);
    PHY_RX_DV_in : IN STD_LOGIC;
    PHY_data_out : OUT STD_LOGIC_VECTOR(3 downto 0);
    PHY_TX_EN_OUT : OUT STD_LOGIC;
    
    -- AVALON Slave Interface
    as_address       : in  std_logic_vector(7 downto 0);
    as_chipselect    : in  std_logic;
    as_write         : in  std_logic;
    as_writedata     : in  std_logic_vector(31 downto 0);
    bfg_output_msg   : out std_logic_vector(31 downto 0)
    );
  end component;
 
  -- input
  signal rx_clk   : std_logic := '0';
  signal reset : std_logic;
 
  -- output
  signal PHY_data_out : std_logic_vector(3 downto 0);
  
begin
  clk   <= not clk  after 20 ns;  -- 25 MHz Taktfrequenz
  reset <= '1', '0' after 100 ns; -- erzeugt Resetsignal: --__
  PHY_RX_DV_in = '1';
  PHY_data_in(0) = '0';
  PHY_data_in(1) = '1';  
  PHY_data_in(2) = '0';
  PHY_data_in(3) = '1';
  
  as_address = b"00000000";
  as_writedata = x"00000001";
  as_chipselect = '1';
  as_write = '1';
  
  generate_data process (rx_clk)
    PHY_data_in(0) = not PHY_data_in(0);
    PHY_data_in(1) = not PHY_data_in(1);
    PHY_data_in(2) = not PHY_data_in(2);
    PHY_data_in(3) = not PHY_data_in(3);
  end process generate_data;
  
  -- Modulinstatziierung
  dut : bfg_basic
    port map (
      rx_clk       => rx_clk,
      reset     => reset    
      );
 
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.