OpenCores
URL https://opencores.org/ocsvn/ethmac/ethmac/trunk

Subversion Repositories ethmac

[/] [ethmac/] [tags/] [rel_11/] [bench/] [verilog/] [tb_ethernet.v] - Diff between revs 121 and 156

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 121 Rev 156
Line 39... Line 39...
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
//
//
// CVS Revision History
// CVS Revision History
//
//
// $Log: not supported by cvs2svn $
// $Log: not supported by cvs2svn $
 
// Revision 1.3  2002/07/23 16:34:31  mohor
 
// gsr added for use when ETH_XILINX_RAMB4 define is set.
 
//
// Revision 1.2  2002/07/19 14:02:47  mohor
// Revision 1.2  2002/07/19 14:02:47  mohor
// Clock mrx_clk set to 2.5 MHz.
// Clock mrx_clk set to 2.5 MHz.
//
//
// Revision 1.1  2002/07/19 13:57:53  mohor
// Revision 1.1  2002/07/19 13:57:53  mohor
// Testing environment also includes traffic cop, memory interface and host
// Testing environment also includes traffic cop, memory interface and host
Line 243... Line 246...
begin
begin
  wb_clk_o=0;
  wb_clk_o=0;
//  forever #2.5 wb_clk_o = ~wb_clk_o;  // 2*2.5 ns -> 200.0 MHz    
//  forever #2.5 wb_clk_o = ~wb_clk_o;  // 2*2.5 ns -> 200.0 MHz    
//  forever #5 wb_clk_o = ~wb_clk_o;  // 2*5 ns -> 100.0 MHz    
//  forever #5 wb_clk_o = ~wb_clk_o;  // 2*5 ns -> 100.0 MHz    
//  forever #10 wb_clk_o = ~wb_clk_o;  // 2*10 ns -> 50.0 MHz    
//  forever #10 wb_clk_o = ~wb_clk_o;  // 2*10 ns -> 50.0 MHz    
  forever #12.5 wb_clk_o = ~wb_clk_o;  // 2*12.5 ns -> 40 MHz    
//  forever #12.5 wb_clk_o = ~wb_clk_o;  // 2*12.5 ns -> 40 MHz    
//  forever #15 wb_clk_o = ~wb_clk_o;  // 2*10 ns -> 33.3 MHz    
//  forever #15 wb_clk_o = ~wb_clk_o;  // 2*10 ns -> 33.3 MHz    
//  forever #20 wb_clk_o = ~wb_clk_o;  // 2*20 ns -> 25 MHz    
  forever #20 wb_clk_o = ~wb_clk_o;  // 2*20 ns -> 25 MHz    
//  forever #25 wb_clk_o = ~wb_clk_o;  // 2*25 ns -> 20.0 MHz
//  forever #25 wb_clk_o = ~wb_clk_o;  // 2*25 ns -> 20.0 MHz
//  forever #31.25 wb_clk_o = ~wb_clk_o;  // 2*31.25 ns -> 16.0 MHz    
//  forever #31.25 wb_clk_o = ~wb_clk_o;  // 2*31.25 ns -> 16.0 MHz    
//  forever #50 wb_clk_o = ~wb_clk_o;  // 2*50 ns -> 10.0 MHz
//  forever #50 wb_clk_o = ~wb_clk_o;  // 2*50 ns -> 10.0 MHz
//  forever #55 wb_clk_o = ~wb_clk_o;  // 2*55 ns ->  9.1 MHz    
//  forever #55 wb_clk_o = ~wb_clk_o;  // 2*55 ns ->  9.1 MHz    
end
end
 
 
// Generating mtx_clk clock
// Generating mtx_clk clock
initial
initial
begin
begin
  mtx_clk=0;
  mtx_clk=0;
//  #3 forever #20 mtx_clk = ~mtx_clk;   // 2*20 ns -> 25 MHz
  #3 forever #20 mtx_clk = ~mtx_clk;   // 2*20 ns -> 25 MHz
  #3 forever #200 mtx_clk = ~mtx_clk;   // 2*200 ns -> 2.5 MHz
//  #3 forever #200 mtx_clk = ~mtx_clk;   // 2*200 ns -> 2.5 MHz
end
end
 
 
// Generating mrx_clk clock
// Generating mrx_clk clock
initial
initial
begin
begin
  mrx_clk=0;
  mrx_clk=0;
//  #16 forever #20 mrx_clk = ~mrx_clk;   // 2*20 ns -> 25 MHz
  #16 forever #20 mrx_clk = ~mrx_clk;   // 2*20 ns -> 25 MHz
  #16 forever #200 mrx_clk = ~mrx_clk;   // 2*200 ns -> 2.5 MHz
//  #16 forever #200 mrx_clk = ~mrx_clk;   // 2*200 ns -> 2.5 MHz
end
end
 
 
reg [31:0] tmp;
reg [31:0] tmp;
initial
initial
begin
begin
  wait(StartTB);  // Start of testbench
  wait(StartTB);  // Start of testbench
 
 
 
 
  eth_host.wb_write(`ETH_MODER, 4'hf, 32'h0); // Reset OFF
  eth_host.wb_write(`ETH_MODER, 4'hf, 32'h0); // Reset OFF
  eth_host.wb_read(`ETH_MODER, 4'hf, tmp);
  eth_host.wb_read(`ETH_MODER, 4'hf, tmp);
 
  eth_host.wb_write(`ETH_MAC_ADDR1, 4'hf, 32'h0002); // Set ETH_MAC_ADDR1 register
  eth_host.wb_write(32'hd0000000, 4'hf, `ETH_MODER_RXEN  | `ETH_MODER_TXEN | `ETH_MODER_PRO |
  eth_host.wb_write(`ETH_MAC_ADDR0, 4'hf, 32'h03040506); // Set ETH_MAC_ADDR0 register
                                        `ETH_MODER_CRCEN | `ETH_MODER_PAD); // Set MODER register
 
  eth_host.wb_read(32'hd0000000, 4'hf, tmp);
 
 
 
 
 
  initialize_txbd(3);
  initialize_txbd(3);
  initialize_rxbd(6);
  initialize_rxbd(2);
 
 
  set_packet(16'h34, 8'h1);
//  eth_host.wb_write(`ETH_MODER, 4'hf, `ETH_MODER_RXEN  | `ETH_MODER_TXEN | `ETH_MODER_PRO | 
 
//                                      `ETH_MODER_CRCEN | `ETH_MODER_PAD); // Set MODER register
 
//  eth_host.wb_write(`ETH_MODER, 4'hf, `ETH_MODER_RXEN  | `ETH_MODER_TXEN | 
 
//                                      `ETH_MODER_CRCEN | `ETH_MODER_PAD); // Set MODER register
 
  eth_host.wb_write(`ETH_MODER, 4'hf, `ETH_MODER_RXEN  | `ETH_MODER_TXEN | `ETH_MODER_BRO |
 
                                      `ETH_MODER_CRCEN | `ETH_MODER_PAD); // Set MODER register
 
//  eth_host.wb_write(`ETH_MODER, 4'hf, `ETH_MODER_RXEN  | `ETH_MODER_TXEN | `ETH_MODER_PRO | 
 
//                                      `ETH_MODER_CRCEN | `ETH_MODER_PAD | `ETH_MODER_LOOPBCK); // Set MODER register
 
//  eth_host.wb_write(`ETH_MODER, 4'hf, `ETH_MODER_RXEN  | `ETH_MODER_TXEN | `ETH_MODER_PRO | 
 
//                                      `ETH_MODER_CRCEN | `ETH_MODER_PAD | `ETH_MODER_LOOPBCK | 
 
//                                      `ETH_MODER_FULLD); // Set MODER register
 
  eth_host.wb_read(`ETH_MODER, 4'hf, tmp);
 
 
 
  set_packet(16'h64, 8'h1);
  set_packet(16'h34, 8'h11);
  set_packet(16'h34, 8'h11);
  send_packet;
  send_packet;
  set_packet(16'h34, 8'h21);
  set_packet(16'h34, 8'h21);
  set_packet(16'h34, 8'h31);
  set_packet(16'h34, 8'h31);
 
/*
 
  eth_host.wb_write(`ETH_CTRLMODER, 4'hf, 32'h4);   // Enable Tx Flow control
 
  eth_host.wb_write(`ETH_CTRLMODER, 4'hf, 32'h5);   // Enable Tx Flow control
 
  eth_host.wb_write(`ETH_TX_CTRL, 4'hf, 32'h10013); // Send Control frame with PAUSE_TV=0x0013
 
*/
  send_packet;
  send_packet;
 
*/
 
 
 
  GetDataOnMRxD(100, `UNICAST_XFR); // LengthRx bytes is comming on MRxD[3:0] signals
 
 
 
  repeat (1000) @(posedge wb_clk_o);   // Waiting for TxEthMac to finish transmit
 
 
  GetDataOnMRxD(100, `BROADCAST_XFR); // LengthRx bytes is comming on MRxD[3:0] signals
  GetDataOnMRxD(500, `BROADCAST_XFR); // LengthRx bytes is comming on MRxD[3:0] signals
 
 
  repeat (100) @(posedge mrx_clk);   // Waiting for TxEthMac to finish transmit
  repeat (1000) @(posedge mrx_clk);   // Waiting for TxEthMac to finish transmit
 
 
 
 
  GetDataOnMRxD(70, `BROADCAST_XFR); // LengthRx bytes is comming on MRxD[3:0] signals
  GetDataOnMRxD(1200, `BROADCAST_XFR); // LengthRx bytes is comming on MRxD[3:0] signals
 
 
 
 
 
  GetDataOnMRxD(1000, `UNICAST_XFR); // LengthRx bytes is comming on MRxD[3:0] signals
 
 
  repeat (10000) @(posedge wb_clk_o);   // Waiting for TxEthMac to finish transmit
  repeat (10000) @(posedge wb_clk_o);   // Waiting for TxEthMac to finish transmit
 
 
 
  // Reading and printing interrupts
 
  eth_host.wb_read(`ETH_INT, 4'hf, tmp);
 
  $display("Print irq = 0x%0x", tmp);
 
 
 
  //Clearing all interrupts
 
  eth_host.wb_write(`ETH_INT, 4'hf, 32'h60);
 
 
 
  // Reading and printing interrupts
 
  eth_host.wb_read(`ETH_INT, 4'hf, tmp);
 
  $display("Print irq = 0x%0x", tmp);
 
 
  $display("\n\n End of simulation");
  $display("\n\n End of simulation");
  $stop;
  $stop;
 
 
 
 
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.