OpenCores
URL https://opencores.org/ocsvn/fpga-cf/fpga-cf/trunk

Subversion Repositories fpga-cf

[/] [fpga-cf/] [trunk/] [hdl/] [port_fifo/] [port_fifo.v] - Blame information for rev 8

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 8 peteralieb
module port_fifo (
2
// Clock control module for PATLPP port interface
3
 
4
        // Inputs:
5
        in_clk,
6
        out_clk,
7
        rst,
8
        in_data,                        // Input Data
9
        in_sof,                 // Input Start of Frame
10
        in_eof,                 // Input End of Frame
11
        in_src_rdy,             // Input Source Ready
12
        out_dst_rdy,    // Output Destination Ready
13
 
14
        // Outputs:
15
        out_data,               // Output Data
16
        out_sof,                        // Output Start of Frame
17
        out_eof,                        // Output End of Frame
18
        out_src_rdy,    // Output Source Ready
19
        in_dst_rdy              // Input Destination Ready
20
);
21
 
22
// Port mode declarations:
23
        // Inputs:
24
input   in_clk;
25
input   out_clk;
26
input   rst;
27
input   [7:0]    in_data;
28
input   in_sof;
29
input   in_eof;
30
input   in_src_rdy;
31
input   out_dst_rdy;
32
 
33
        // Outputs:
34
output  [7:0]    out_data;
35
output  out_sof;
36
output  out_eof;
37
output  out_src_rdy;
38
output  in_dst_rdy;
39
 
40
 
41
wire    [15:0]           fifo_datain;
42
wire    [15:0]           fifo_dataout;
43
wire                            fifo_wren;
44
wire                            fifo_wrclk;
45
wire                            fifo_rden;
46
wire                            fifo_rdclk;
47
wire                            fifo_rst;
48
wire                            fifo_full;
49
wire                            fifo_empty;
50
 
51
assign fifo_datain = {6'd0, in_sof, in_eof, in_data};
52
assign {out_sof, out_eof, out_data} = fifo_dataout[9:0];
53
assign fifo_wren = in_src_rdy & in_dst_rdy;
54
assign fifo_rden = out_src_rdy & out_dst_rdy;
55
assign in_dst_rdy = ~fifo_full;
56
assign out_src_rdy = ~fifo_empty;
57
assign fifo_rdclk = out_clk;
58
assign fifo_wrclk = in_clk;
59
assign fifo_rst = rst;
60
 
61
 
62
/* V5 Primitive */
63
FIFO18 #(
64
        .FIRST_WORD_FALL_THROUGH("TRUE"),
65
        .DO_REG(1),
66
        .DATA_WIDTH(18)
67
        ) FIFO18_inst (
68
        .DI(fifo_datain),
69
        .DIP(2'd0),
70
        .WREN(fifo_wren),
71
        .WRCLK(fifo_wrclk),
72
        .RDEN(fifo_rden),
73
        .RDCLK(fifo_rdclk),
74
        .RST(fifo_rst),
75
        .DO(fifo_dataout),
76
        .FULL(fifo_full),
77
        .EMPTY(fifo_empty)
78
        );
79
/**/
80
 
81
/* V4 Primitive
82
FIFO16 #(
83
        .FIRST_WORD_FALL_THROUGH("TRUE"),
84
        //.DO_REG(1),
85
        .DATA_WIDTH(18)
86
        ) FIFO16_inst (
87
        .DI(fifo_datain),
88
        .DIP(2'd0),
89
        .WREN(fifo_wren),
90
        .WRCLK(fifo_wrclk),
91
        .RDEN(fifo_rden),
92
        .RDCLK(fifo_rdclk),
93
        .RST(fifo_rst),
94
        .DO(fifo_dataout),
95
        .FULL(fifo_full),
96
        .EMPTY(fifo_empty)
97
        );
98
*/
99
 
100
 
101
endmodule

powered by: WebSVN 2.1.0

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