time_sim.vhd
上传用户:dgrongshen
上传日期:2016-07-09
资源大小:827k
文件大小:10k
源码类别:

VHDL/FPGA/Verilog

开发平台:

VHDL

  1. ---------------------------------------------------------------------------
  2. -- XPLAOPT Version 3.45
  3. -- VHDL Timing Model
  4. -- Converted from JEDEC file
  5. -- Created by Xilinx, Inc.
  6. -- Design Name = NAND_INTERFACE.blx
  7. -- Device Name = XCR3064XL-6VQ44
  8. -- Aug 03 11:03:52 2001
  9. ---------------------------------------------------------------------------
  10. package pxa_pkg is
  11.     constant tLOGI1 : time := 2000 ps;
  12.     constant tLOGI2 : time := 2500 ps;
  13.     constant tLOGI3 : time := 6000 ps;
  14.     constant tFIN  : time := 2300 ps;
  15.     constant tIN   : time := 1300 ps;
  16.     constant tF    : time := 2400 ps;
  17.     constant tUDA  : time := 3500 ps;
  18.     constant tGCK  : time := 800 ps;
  19.     constant tLDI  : time := 1300 ps;
  20.     constant toe_slew : time := 8200 ps;
  21.     constant tbuf_slew : time := 6200 ps;
  22.     constant tap2q : time := 2500 ps;
  23.     constant tar2q : time := 2500 ps;
  24.     constant trd   : time := 1000 ps;
  25.     constant tbuf  : time := 2200 ps;
  26.     constant toe   : time := 4200 ps;
  27. end pxa_pkg;
  28. ---------------------------------------------------------------------------
  29. -- Components Defined Here
  30. ---------------------------------------------------------------------------
  31. -- Output Buffer
  32. library ieee;
  33. use ieee.std_logic_1164.all;
  34. use work.pxa_pkg.all;
  35. entity pxa_bufif2 is
  36. port (O: out std_logic; I, OE, SLEW : in std_logic);
  37. end pxa_bufif2;
  38. architecture behavioral of pxa_bufif2 is
  39. signal OE_local, I_local : std_logic := '0';
  40. begin
  41.   OE_local <= OE after toe_slew when SLEW = '1' else OE after toe;
  42.   I_local <= I after tbuf_slew when SLEW = '1' else I after tbuf;
  43.   O <= I_local when OE_local = '1' else 'Z';
  44. end behavioral;
  45. -- Multiplexer
  46. library ieee;
  47. use ieee.std_logic_1164.all;
  48. use work.pxa_pkg.all;
  49. entity pxa_mux is
  50. port (O: out std_logic; S, A, B : in std_logic);
  51. end pxa_mux;
  52. architecture behavioral of pxa_mux is
  53. begin
  54. O <= A when S = '1' else B;
  55. end behavioral;
  56. -- D Latch with Active High Latch Enable/Set/Reset; Power up to 0.
  57. library ieee;
  58. use ieee.std_logic_1164.all;
  59. use work.pxa_pkg.all;
  60. entity pxa_lff_apar_p0 is
  61. port (Q : out std_logic; D, LH, AP, AR : in std_logic);
  62. end pxa_lff_apar_p0;
  63. architecture behavioral of pxa_lff_apar_p0 is
  64. signal Q_local: std_logic := '0';
  65. begin
  66.   process(D, LH, AP, AR)
  67.   begin
  68.     if AR = '1' then
  69.       Q_local <= '0' after tar2q;
  70.     elsif LH = '1' then
  71.       Q_local <= D after tLDI;
  72.     elsif AP = '1' then
  73.       Q_local <= '1' after tap2q;
  74.     end if;
  75.   end process;
  76.   Q <= Q_local;
  77. end behavioral;
  78. ---------------------------------------------------------------------------
  79. -- Main VHDL Model 
  80. ---------------------------------------------------------------------------
  81. library ieee;
  82. use ieee.std_logic_1164.all;
  83. use work.pxa_pkg.all;
  84. entity NAND_INTERFACE is
  85.     port(ce_n, com_lat_n, read_n, reset, ry_byn, write_n: in std_logic;
  86.          port_addr: in std_logic_vector(3 downto 0);
  87.          ale, cle, outce_n, re_n, ready, se_n, we_n, wp_n: out std_logic
  88.          );
  89. end NAND_INTERFACE;
  90. architecture structure of NAND_INTERFACE is
  91. -------- Signal Declaration -----------------------------------------------
  92. signal   N115_COM, N115_COM_tF, ale_AP, ale_AR, ale_D, ale_DIN, ale_LH,
  93.          ale_OE, ale_Q, ce_n_tIN, cle_COM, cle_OE, com_lat_n_tIN,
  94.          outce_n_AP, outce_n_AR, outce_n_D, outce_n_DIN, outce_n_LH,
  95.          outce_n_OE, outce_n_Q, port_addr_0_tIN, port_addr_1_tIN,
  96.          port_addr_2_tIN, port_addr_3_tIN, re_n_COM, re_n_OE, read_n_tIN,
  97.          ready_COM, ready_OE, reset_tIN, ry_byn_tIN, se_n_AP, se_n_AR,
  98.          se_n_D, se_n_DIN, se_n_LH, se_n_OE, se_n_Q, we_n_COM, we_n_OE,
  99.          wp_n_AP, wp_n_AR, wp_n_D, wp_n_DIN, wp_n_LH, wp_n_OE, wp_n_Q,
  100.          write_n_tIN: std_logic;
  101. signal   VCC : std_logic;
  102. signal   GND : std_logic;
  103. component pxa_bufif2
  104. port (O: out std_logic; I, OE, SLEW : in std_logic);
  105. end component;
  106. component pxa_mux
  107. port (O: out std_logic; S, A, B : in std_logic);
  108. end component;
  109. component pxa_lff_apar_p0
  110. port (Q : out std_logic; D, LH, AP, AR : in std_logic);
  111. end component;
  112. begin
  113. -- Equations:
  114. VCC         <= '1';
  115. GND         <= '0';
  116. --------( N115 )-----------------------------------------------------------
  117. N115_COM    <= not ((not write_n_tIN and port_addr_2_tIN and not ce_n_tIN 
  118.                and port_addr_1_tIN and not port_addr_0_tIN 
  119.                and not port_addr_3_tIN)) after tLOGI1;
  120. --------( ale )------------------------------------------------------------
  121. ale_D       <= (GND) after tFIN;
  122. ale_OE      <= (VCC) after tFIN;
  123. ale_buf: pxa_bufif2 port map (ale, ale_Q, ale_OE, GND);
  124. ale_mux: pxa_mux port map (ale_DIN, GND, GND, ale_D);
  125. ale_LH      <= (not port_addr_3_tIN and not write_n_tIN 
  126.                and not port_addr_2_tIN and port_addr_0_tIN 
  127.                and not ce_n_tIN and port_addr_1_tIN) after tLOGI1;
  128. ale_AP      <= (not port_addr_3_tIN and not write_n_tIN 
  129.                and not port_addr_2_tIN and not port_addr_0_tIN 
  130.                and not ce_n_tIN and port_addr_1_tIN) after tLOGI1;
  131. ale_AR      <= (reset_tIN) after tLOGI1;
  132. ale_ff: pxa_lff_apar_p0 port map (ale_Q, ale_DIN, ale_LH, ale_AP, 
  133.                ale_AR); 
  134. --------( cle )------------------------------------------------------------
  135. cle_COM     <= ((not port_addr_2_tIN and not ce_n_tIN 
  136.                and not port_addr_1_tIN and port_addr_0_tIN 
  137.                and not port_addr_3_tIN)) after tLOGI1;
  138. cle_OE      <= (VCC) after tFIN;
  139. cle_buf: pxa_bufif2 port map (cle, cle_COM, cle_OE, GND);
  140. --------( outce_n )--------------------------------------------------------
  141. outce_n_D   <= (VCC) after tFIN;
  142. outce_n_OE  <= (VCC) after tFIN;
  143. outce_n_buf: pxa_bufif2 port map (outce_n, outce_n_Q, outce_n_OE, GND);
  144. outce_n_mux: pxa_mux port map (outce_n_DIN, GND, GND, outce_n_D);
  145. outce_n_LH  <= (not write_n_tIN and not port_addr_2_tIN and not ce_n_tIN 
  146.                and not port_addr_1_tIN and port_addr_0_tIN 
  147.                and port_addr_3_tIN) after tLOGI1;
  148. outce_n_AP  <= (reset_tIN) after tLOGI1;
  149. outce_n_AR  <= (not reset_tIN and not write_n_tIN and not port_addr_2_tIN 
  150.                and not ce_n_tIN and not port_addr_1_tIN 
  151.                and not port_addr_0_tIN and port_addr_3_tIN) after tLOGI1;
  152. outce_n_ff: pxa_lff_apar_p0 port map (outce_n_Q, outce_n_DIN, outce_n_LH, 
  153.                outce_n_AP, outce_n_AR); 
  154. --------( re_n )-----------------------------------------------------------
  155. re_n_COM    <= not ((not port_addr_2_tIN and not read_n_tIN 
  156.                and not ce_n_tIN and not port_addr_1_tIN 
  157.                and not port_addr_0_tIN and not port_addr_3_tIN))
  158.                after tLOGI1;
  159. re_n_OE     <= (VCC) after tFIN;
  160. re_n_buf: pxa_bufif2 port map (re_n, re_n_COM, re_n_OE, GND);
  161. --------( ready )----------------------------------------------------------
  162. ready_COM   <= ((ry_byn_tIN)) after tLOGI1;
  163. ready_OE    <= (port_addr_2_tIN and not read_n_tIN and not ce_n_tIN 
  164.                and port_addr_1_tIN and port_addr_0_tIN and port_addr_3_tIN)
  165.                after tLOGI1;
  166. ready_buf: pxa_bufif2 port map (ready, ready_COM, ready_OE, GND);
  167. --------( se_n )-----------------------------------------------------------
  168. se_n_D      <= (VCC) after tFIN;
  169. se_n_OE     <= (VCC) after tFIN;
  170. se_n_buf: pxa_bufif2 port map (se_n, se_n_Q, se_n_OE, GND);
  171. se_n_mux: pxa_mux port map (se_n_DIN, GND, GND, se_n_D);
  172. se_n_LH     <= (not write_n_tIN and port_addr_2_tIN and not ce_n_tIN 
  173.                and not port_addr_1_tIN and port_addr_0_tIN 
  174.                and not port_addr_3_tIN) after tLOGI1;
  175. se_n_AP     <= (reset_tIN) after tLOGI1;
  176. se_n_AR     <= (not reset_tIN and not write_n_tIN and port_addr_2_tIN 
  177.                and not ce_n_tIN and not port_addr_1_tIN 
  178.                and not port_addr_0_tIN and not port_addr_3_tIN)
  179.                after tLOGI1;
  180. se_n_ff: pxa_lff_apar_p0 port map (se_n_Q, se_n_DIN, se_n_LH, se_n_AP, 
  181.                se_n_AR); 
  182. --------( we_n )-----------------------------------------------------------
  183. we_n_COM    <= not ((not com_lat_n_tIN and not write_n_tIN 
  184.                and not port_addr_2_tIN and not ce_n_tIN 
  185.                and not port_addr_1_tIN and not port_addr_3_tIN)
  186.                or (not write_n_tIN and not port_addr_2_tIN 
  187.                and not ce_n_tIN and not port_addr_1_tIN 
  188.                and not port_addr_0_tIN and not port_addr_3_tIN))
  189.                after tLOGI2;
  190. we_n_OE     <= (VCC) after tFIN;
  191. we_n_buf: pxa_bufif2 port map (we_n, we_n_COM, we_n_OE, GND);
  192. --------( wp_n )-----------------------------------------------------------
  193. wp_n_D      <= (VCC) after tFIN;
  194. wp_n_OE     <= (VCC) after tFIN;
  195. wp_n_buf: pxa_bufif2 port map (wp_n, wp_n_Q, wp_n_OE, GND);
  196. wp_n_mux: pxa_mux port map (wp_n_DIN, GND, GND, wp_n_D);
  197. wp_n_LH     <= (not write_n_tIN and port_addr_2_tIN and not ce_n_tIN 
  198.                and port_addr_1_tIN and port_addr_0_tIN 
  199.                and not port_addr_3_tIN) after tLOGI1;
  200. wp_n_AP     <= (GND) after tFIN;
  201. wp_n_AR     <= not (not reset_tIN and N115_COM_tF) after tLOGI1;
  202. wp_n_ff: pxa_lff_apar_p0 port map (wp_n_Q, wp_n_DIN, wp_n_LH, wp_n_AP, 
  203.                wp_n_AR); 
  204. --------( Intermeditate Signals )------------------------------------------
  205. N115_COM_tF <= (N115_COM) after tF;
  206. ce_n_tIN    <= (ce_n) after tIN;
  207. com_lat_n_tIN<= (com_lat_n) after tIN;
  208. port_addr_0_tIN<= (port_addr(0)) after tIN;
  209. port_addr_1_tIN<= (port_addr(1)) after tIN;
  210. port_addr_2_tIN<= (port_addr(2)) after tIN;
  211. port_addr_3_tIN<= (port_addr(3)) after tIN;
  212. read_n_tIN  <= (read_n) after tIN;
  213. reset_tIN   <= (reset) after tIN;
  214. ry_byn_tIN  <= (ry_byn) after tIN;
  215. write_n_tIN <= (write_n) after tIN;
  216. end structure;