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

Subversion Repositories sgmii

[/] [sgmii/] [trunk/] [sim/] [BFMs/] [SGMII_altera/] [testbench/] [model/] [timing_adapter_32.v] - Blame information for rev 9

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 9 jefflieu
// -------------------------------------------------------------------------
2
// -------------------------------------------------------------------------
3
//
4
// Revision Control Information
5
//
6
// $RCSfile: timing_adapter_32.v,v $
7
// $Source: /ipbu/cvs/sio/projects/TriSpeedEthernet/src/testbench/models/verilog/ethernet_model/gen/timing_adapter_32.v,v $
8
//
9
// $Revision: #1 $
10
// $Date: 2011/11/10 $
11
// Check in by : $Author: max $
12
// Author      : SKNg/TTChong
13
//
14
// Project     : Triple Speed Ethernet - 10/100/1000 MAC
15
//
16
// Description : (Simulation only)
17
//
18
// Timing adapater  (from 3 to zero ready latency) Client Interface Ethernet Traffic Generator
19
// Instantiating a FIFO unit (timing_adapter_fifo_32.v)
20
// 
21
// ALTERA Confidential and Proprietary
22
// Copyright 2006 (c) Altera Corporation
23
// All rights reserved
24
//
25
// -------------------------------------------------------------------------
26
// -------------------------------------------------------------------------
27
 
28
// --------------------------------------------------------------------------------
29
//| Avalon Streaming Timing Adapter
30
// --------------------------------------------------------------------------------
31
 
32
`timescale 1ns / 1ps
33
module timing_adapter_32 (
34
 
35
      // Interface: clk
36
      input              clk,
37
      input              reset,
38
      // Interface: in
39
      output reg         in_ready,
40
      input              in_valid,
41
      input      [31: 0] in_data,
42
      input              in_startofpacket,
43
      input              in_endofpacket,
44
      input      [ 1: 0] in_empty,
45
      input              in_error,
46
      // Interface: out
47
      input              out_ready,
48
      output reg         out_valid,
49
      output reg [31: 0] out_data,
50
      output reg         out_startofpacket,
51
      output reg         out_endofpacket,
52
      output reg [ 1: 0] out_empty,
53
      output reg         out_error
54
);
55
 
56
 
57
 
58
 
59
   // ---------------------------------------------------------------------
60
   //| Signal Declarations
61
   // ---------------------------------------------------------------------
62
 
63
   reg  [36: 0] in_payload;
64
   wire [36: 0] out_payload;
65
   wire         in_ready_wire;
66
   wire         out_valid_wire;
67
   wire [ 2: 0] fifo_fill;
68
   reg          ready;
69
 
70
 
71
   // ---------------------------------------------------------------------
72
   //| Payload Mapping
73
   // ---------------------------------------------------------------------
74
   always @ (in_data or in_startofpacket or in_endofpacket or in_empty or  in_error or out_payload)
75
   begin
76
     in_payload = {in_data,in_startofpacket,in_endofpacket,in_empty,in_error};
77
     {out_data,out_startofpacket,out_endofpacket,out_empty,out_error} = out_payload;
78
   end
79
 
80
   // ---------------------------------------------------------------------
81
   //| FIFO
82
   // ---------------------------------------------------------------------
83
   timing_adapter_fifo_32 timing_adapter_fifo
84
     (
85
       .clk        (clk),
86
       .reset      (reset),
87
       .in_ready   (),
88
       .in_valid   (in_valid),
89
       .in_data    (in_payload),
90
       .out_ready  (ready),
91
       .out_valid  (out_valid_wire),
92
       .out_data   (out_payload),
93
       .fill_level (fifo_fill)
94
       );
95
 
96
   // ---------------------------------------------------------------------
97
   //| Ready & valid signals.
98
   // ---------------------------------------------------------------------
99
   always @ (fifo_fill or  out_valid_wire or out_ready)
100
   begin
101
      in_ready  <= (fifo_fill < 3);
102
      out_valid <= out_valid_wire;
103
      ready     = out_ready;
104
   end
105
 
106
 
107
endmodule
108
 

powered by: WebSVN 2.1.0

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