alt_fwft_fifo.vhd 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. LIBRARY ieee;
  2. USE ieee.std_logic_1164.all;
  3. LIBRARY altera_mf;
  4. USE altera_mf.all;
  5. use altera_mf_components.all;
  6. use work.math_pkg.all;
  7. ENTITY alt_fwft_fifo IS
  8. generic (
  9. DATA_WIDTH : integer := 32;
  10. NUM_ELEMENTS : integer
  11. );
  12. PORT (
  13. aclr : IN STD_LOGIC ;
  14. clock : IN STD_LOGIC ;
  15. data : IN STD_LOGIC_VECTOR (DATA_WIDTH-1 DOWNTO 0);
  16. rdreq : IN STD_LOGIC ;
  17. wrreq : IN STD_LOGIC ;
  18. empty : OUT STD_LOGIC ;
  19. full : OUT STD_LOGIC ;
  20. q : OUT STD_LOGIC_VECTOR (DATA_WIDTH-1 DOWNTO 0)
  21. );
  22. END entity;
  23. ARCHITECTURE SYN OF alt_fwft_fifo IS
  24. SIGNAL sub_wire0 : STD_LOGIC ;
  25. SIGNAL sub_wire1 : STD_LOGIC ;
  26. -- COMPONENT scfifo
  27. -- GENERIC (
  28. -- add_ram_output_register : STRING;
  29. -- intended_device_family : STRING;
  30. -- lpm_numwords : NATURAL;
  31. -- lpm_showahead : STRING;
  32. -- lpm_type : STRING;
  33. -- lpm_width : NATURAL;
  34. -- lpm_widthu : NATURAL;
  35. -- overflow_checking : STRING;
  36. -- underflow_checking : STRING;
  37. -- use_eab : STRING
  38. -- );
  39. -- PORT (
  40. -- aclr : IN STD_LOGIC ;
  41. -- clock : IN STD_LOGIC ;
  42. -- data : IN STD_LOGIC_VECTOR (lpm_width-1 DOWNTO 0);
  43. -- rdreq : IN STD_LOGIC ;
  44. -- wrreq : IN STD_LOGIC ;
  45. -- empty : OUT STD_LOGIC ;
  46. -- full : OUT STD_LOGIC ;
  47. -- q : OUT STD_LOGIC_VECTOR (lpm_width-1 DOWNTO 0)
  48. -- );
  49. -- END COMPONENT;
  50. BEGIN
  51. empty <= sub_wire0;
  52. full <= sub_wire1;
  53. scfifo_component : scfifo
  54. GENERIC MAP (
  55. add_ram_output_register => "ON",
  56. intended_device_family => "Cyclone IV E",
  57. lpm_numwords => NUM_ELEMENTS,
  58. lpm_showahead => "ON",
  59. lpm_type => "scfifo",
  60. lpm_width => DATA_WIDTH,
  61. lpm_widthu => log2c(NUM_ELEMENTS),
  62. overflow_checking => "ON",
  63. underflow_checking => "ON",
  64. use_eab => "ON"
  65. )
  66. PORT MAP (
  67. aclr => aclr,
  68. clock => clock,
  69. data => data,
  70. rdreq => rdreq,
  71. wrreq => wrreq,
  72. empty => sub_wire0,
  73. full => sub_wire1,
  74. q => q
  75. );
  76. END SYN;
  77. -- ============================================================
  78. -- CNX file retrieval info
  79. -- ============================================================
  80. -- Retrieval info: PRIVATE: AlmostEmpty NUMERIC "0"
  81. -- Retrieval info: PRIVATE: AlmostEmptyThr NUMERIC "-1"
  82. -- Retrieval info: PRIVATE: AlmostFull NUMERIC "0"
  83. -- Retrieval info: PRIVATE: AlmostFullThr NUMERIC "-1"
  84. -- Retrieval info: PRIVATE: CLOCKS_ARE_SYNCHRONIZED NUMERIC "0"
  85. -- Retrieval info: PRIVATE: Clock NUMERIC "0"
  86. -- Retrieval info: PRIVATE: Depth NUMERIC "8"
  87. -- Retrieval info: PRIVATE: Empty NUMERIC "1"
  88. -- Retrieval info: PRIVATE: Full NUMERIC "1"
  89. -- Retrieval info: PRIVATE: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
  90. -- Retrieval info: PRIVATE: LE_BasedFIFO NUMERIC "0"
  91. -- Retrieval info: PRIVATE: LegacyRREQ NUMERIC "0"
  92. -- Retrieval info: PRIVATE: MAX_DEPTH_BY_9 NUMERIC "0"
  93. -- Retrieval info: PRIVATE: OVERFLOW_CHECKING NUMERIC "0"
  94. -- Retrieval info: PRIVATE: Optimize NUMERIC "1"
  95. -- Retrieval info: PRIVATE: RAM_BLOCK_TYPE NUMERIC "0"
  96. -- Retrieval info: PRIVATE: SYNTH_WRAPPER_GEN_POSTFIX STRING "0"
  97. -- Retrieval info: PRIVATE: UNDERFLOW_CHECKING NUMERIC "0"
  98. -- Retrieval info: PRIVATE: UsedW NUMERIC "0"
  99. -- Retrieval info: PRIVATE: Width NUMERIC "32"
  100. -- Retrieval info: PRIVATE: dc_aclr NUMERIC "0"
  101. -- Retrieval info: PRIVATE: diff_widths NUMERIC "0"
  102. -- Retrieval info: PRIVATE: msb_usedw NUMERIC "0"
  103. -- Retrieval info: PRIVATE: output_width NUMERIC "32"
  104. -- Retrieval info: PRIVATE: rsEmpty NUMERIC "1"
  105. -- Retrieval info: PRIVATE: rsFull NUMERIC "0"
  106. -- Retrieval info: PRIVATE: rsUsedW NUMERIC "0"
  107. -- Retrieval info: PRIVATE: sc_aclr NUMERIC "1"
  108. -- Retrieval info: PRIVATE: sc_sclr NUMERIC "0"
  109. -- Retrieval info: PRIVATE: wsEmpty NUMERIC "0"
  110. -- Retrieval info: PRIVATE: wsFull NUMERIC "1"
  111. -- Retrieval info: PRIVATE: wsUsedW NUMERIC "0"
  112. -- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all
  113. -- Retrieval info: CONSTANT: ADD_RAM_OUTPUT_REGISTER STRING "ON"
  114. -- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone IV E"
  115. -- Retrieval info: CONSTANT: LPM_NUMWORDS NUMERIC "8"
  116. -- Retrieval info: CONSTANT: LPM_SHOWAHEAD STRING "ON"
  117. -- Retrieval info: CONSTANT: LPM_TYPE STRING "scfifo"
  118. -- Retrieval info: CONSTANT: LPM_WIDTH NUMERIC "32"
  119. -- Retrieval info: CONSTANT: LPM_WIDTHU NUMERIC "3"
  120. -- Retrieval info: CONSTANT: OVERFLOW_CHECKING STRING "ON"
  121. -- Retrieval info: CONSTANT: UNDERFLOW_CHECKING STRING "ON"
  122. -- Retrieval info: CONSTANT: USE_EAB STRING "ON"
  123. -- Retrieval info: USED_PORT: aclr 0 0 0 0 INPUT NODEFVAL "aclr"
  124. -- Retrieval info: USED_PORT: clock 0 0 0 0 INPUT NODEFVAL "clock"
  125. -- Retrieval info: USED_PORT: data 0 0 32 0 INPUT NODEFVAL "data[31..0]"
  126. -- Retrieval info: USED_PORT: empty 0 0 0 0 OUTPUT NODEFVAL "empty"
  127. -- Retrieval info: USED_PORT: full 0 0 0 0 OUTPUT NODEFVAL "full"
  128. -- Retrieval info: USED_PORT: q 0 0 32 0 OUTPUT NODEFVAL "q[31..0]"
  129. -- Retrieval info: USED_PORT: rdreq 0 0 0 0 INPUT NODEFVAL "rdreq"
  130. -- Retrieval info: USED_PORT: wrreq 0 0 0 0 INPUT NODEFVAL "wrreq"
  131. -- Retrieval info: CONNECT: @aclr 0 0 0 0 aclr 0 0 0 0
  132. -- Retrieval info: CONNECT: @clock 0 0 0 0 clock 0 0 0 0
  133. -- Retrieval info: CONNECT: @data 0 0 32 0 data 0 0 32 0
  134. -- Retrieval info: CONNECT: @rdreq 0 0 0 0 rdreq 0 0 0 0
  135. -- Retrieval info: CONNECT: @wrreq 0 0 0 0 wrreq 0 0 0 0
  136. -- Retrieval info: CONNECT: empty 0 0 0 0 @empty 0 0 0 0
  137. -- Retrieval info: CONNECT: full 0 0 0 0 @full 0 0 0 0
  138. -- Retrieval info: CONNECT: q 0 0 32 0 @q 0 0 32 0
  139. -- Retrieval info: GEN_FILE: TYPE_NORMAL test_fifo.vhd TRUE
  140. -- Retrieval info: GEN_FILE: TYPE_NORMAL test_fifo.inc FALSE
  141. -- Retrieval info: GEN_FILE: TYPE_NORMAL test_fifo.cmp TRUE
  142. -- Retrieval info: GEN_FILE: TYPE_NORMAL test_fifo.bsf FALSE
  143. -- Retrieval info: GEN_FILE: TYPE_NORMAL test_fifo_inst.vhd FALSE
  144. -- Retrieval info: LIB_FILE: altera_mf