/* Copyright (c) 2006-2011 by Lattice Semiconductor Corporation Name: txcver_fifo.v Description: Transmit FIFO instance Permission: Lattice Semiconductor grants permission to use this code for use in synthesis for any Lattice programmable logic product. Other use of this code, including the selling or duplication of any portion is strictly prohibited. Disclaimer: This VHDL or Verilog source code is intended as a design reference which illustrates how these types of functions can be implemented. It is the user's responsibility to verify their design for consistency and functionality through the use of formal verification methods. Lattice Semiconductor provides no warranty regarding the use or functionality of this code. Lattice Semiconductor Corporation 5555 NE Moore Court Hillsboro, OR 97124 U.S.A TEL: 1-800-Lattice (USA and Canada) 408-826-6000 (other locations) web: http://www.latticesemi.com/ email: techsupport@latticesemi.com */ module txcver_fifo #( parameter PMI_FAMILY = "XO2" ) ( input [7:0] Data, input Clock, input WrEn, input RdEn, input Reset, output [7:0] Q, output Empty, output Full, output AlmostEmpty, output AlmostFull ); generate if (PMI_FAMILY == "SC" || PMI_FAMILY == "SCM") begin pmi_fifo_dc #( .pmi_data_width_w(8), .pmi_data_width_r(8), .pmi_data_depth_w(16), .pmi_data_depth_r(16), .pmi_full_flag(16), .pmi_empty_flag(0), .pmi_almost_full_flag(8), .pmi_almost_empty_flag(4), .pmi_regmode("noreg"), .pmi_family(PMI_FAMILY), .module_type("pmi_fifo_dc"), .pmi_implementation("LUT") ) tx_fifo_inst_dc ( .Data(Data), .WrClock(Clock), .RdClock(Clock), .WrEn(WrEn), .RdEn(RdEn), .Reset(Reset), .RPReset(Reset), .Q(Q), .Empty(Empty), .Full(Full), .AlmostEmpty(AlmostEmpty), .AlmostFull(AlmostFull) ); end else begin pmi_fifo #( .pmi_data_width(8), .pmi_data_depth(16), .pmi_full_flag(16), .pmi_empty_flag(0), .pmi_almost_full_flag(8), .pmi_almost_empty_flag(4), .pmi_regmode("noreg"), .pmi_family(PMI_FAMILY), .module_type("pmi_fifo"), .pmi_implementation("LUT") ) tx_fifo_inst ( .Data(Data), .Clock(Clock), .WrEn(WrEn), .RdEn(RdEn), .Reset(Reset), .Q(Q), .Empty(Empty), .Full(Full), .AlmostEmpty(AlmostEmpty), .AlmostFull(AlmostFull) ); end endgenerate endmodule