leon_eth_pci.vhd

来自「ARM7的源代码」· VHDL 代码 · 共 420 行 · 第 1/2 页

VHD
420
字号
  ds : if DEBUG_UNIT generate    dsuen_pad   : inpad port map (dsuen, dsi.dsui.dsuen);	-- DSU enable    dsutx_pad   : outpad generic map (1) port map (dso.dcomo.dsutx, dsutx);    dsurx_pad   : inpad port map (dsurx, dsi.dcomi.dsurx);	-- DSU receive data    dsubre_pad  : inpad port map (dsubre, dsi.dsui.dsubre);	-- DSU break    dsuact_pad  : outpad generic map (1) port map (dso.dsuo.dsuact, dsuact);  end generate;  sd : if SDRAMEN generate    cs_pads: for i in 0 to 1 generate      sdcke_pad  : outpad generic map (2) port map (sdo.sdcke(i), sdcke(i));      sdcsn_pad  : outpad generic map (2) port map (sdo.sdcsn(i), sdcsn(i));    end generate;    sdwen_pad  : outpad generic map (2) port map (sdo.sdwen, sdwen);    sdrasn_pad : outpad generic map (2) port map (sdo.rasn, sdrasn);    sdcasn_pad : outpad generic map (2) port map (sdo.casn, sdcasn);    dqm_pads: for i in 0 to 3 generate      sddqm_pad   : outpad generic map (2) port map (sdo.dqm(i), sddqm(i));    end generate;--      sdclk_pad : outpad generic map (2) port map (sdclkl, sdclk);    sdclk <= sdclkl;  -- disable pad for simulation  end generate;    error_pad   : odpad generic map (2) port map (ioo.errorn, errorn);	-- cpu error mode    d_pads: for i in 0 to 31 generate			-- data bus      d_pad : iopad generic map (3) port map (memo.data(i), memo.bdrive((31-i)/8), memi.data(i), data(i));    end generate;    pio_pads : for i in 0 to 15 generate		-- parallel I/O port      pio_pad : smiopad generic map (2) port map (ioo.piol(i), ioo.piodir(i), ioi.piol(i), pio(i));    end generate;    rwen_pads : for i in 0 to 3 generate			-- ram write strobe      rwen_pad : iopad generic map (2) port map (memo.wrn(i), gnd, memi.wrn(i), rwen(i));    end generate;     							-- I/O write strobe    writen_pad : iopad generic map (2) port map (memo.writen, gnd, memi.writen, writen);    a_pads : for i in 0 to 27 generate			-- memory address      a_pads : outpad generic map (3) port map (memo.address(i), address(i));    end generate;    ramsn_pads : for i in 0 to 4 generate		-- ram oen/rasn      ramsn_pad : outpad generic map (2) port map (memo.ramsn(i), ramsn(i));    end generate;    ramoen_pads : for i in 0 to 4 generate		-- ram chip select      ramoen_pad : outpad generic map (2) port map (memo.ramoen(i), ramoen(i));    end generate;    romsn_pads : for i in 0 to 1 generate			-- rom chip select      romsn_pad : outpad generic map (2) port map (memo.romsn(i), romsn(i));    end generate;    read_pad : outpad generic map (2) port map (memo.read, read);	-- memory read    oen_pad  : outpad generic map (2) port map (memo.oen, oen);	-- memory oen    iosn_pad : outpad generic map (2) port map (memo.iosn, iosn);	-- I/O select    wd : if WDOGEN generate      wdogn_pad : odpad generic map (2) port map (ioo.wdog, wdogn);	-- watchdog output    end generate;    pl : if TARGET_CLK /= gen generate      plllock_pad : outpad generic map (2) port map (cgo.clklock, plllock);    end generate;      pcictrl0 : if PCICORE /= opencores generate        pci_trdy_en   <= pcio.pci_ctrl_en_n;        pci_devsel_en <= pcio.pci_ctrl_en_n;        pci_stop_en   <= pcio.pci_ctrl_en_n;      end generate;      pcictrl1 : if PCICORE = opencores generate        pci_trdy_en   <= pcio.pci_trdy_en_n;        pci_devsel_en <= pcio.pci_devsel_en_n;        pci_stop_en   <= pcio.pci_stop_en_n;      end generate;      pcictrl2 : if PCIEN generate        pci_aden     <= pcio.pci_aden_n;        pci_cbeen(0) <= pcio.pci_cbe0_en_n;        pci_cbeen(1) <= pcio.pci_cbe1_en_n;        pci_cbeen(2) <= pcio.pci_cbe2_en_n;        pci_cbeen(3) <= pcio.pci_cbe3_en_n;        pci_frame_en <= pcio.pci_frame_en_n;        pci_irdy_en  <= pcio.pci_irdy_en_n;        pci_perr_en  <= pcio.pci_perr_en_n;        pci_par_en   <= pcio.pci_par_en_n;        pci_req_en   <= pcio.pci_req_en_n;        pci_serr_en  <= pcio.pci_serr_out_n;  -- open drain pad!        pci_lock_en  <= '1'; -- is-core has no lock output -> deactivate        pci_lock_out <= '0';            -- dont care this output      end generate;      pci_rst_in_n_pad : pciinpad port map(pci_rst_in_n, pcii.pci_rst_in_n);--      pci_clk_in_pad : inpad port map(pci_clk_in, pci_clk);      pci_clk <= pci_clk_in;      pci_gnt_in_n_pad : pciinpad port map(pci_gnt_in_n, pcii.pci_gnt_in_n);      pci_idsel_in_pad : pciinpad port map(pci_idsel_in, pcii.pci_idsel_in);  -- ignored in host bridge core--      pci_lock_in_n_pad : inpad port map(pci_lock_in_n, pcii.pci_lock_in_n);  -- Phoenix core: input only      pci_lock_n_pad : pciiopad port map(pci_lock_out, pci_lock_en, pcii.pci_lock_in_n, pci_lock_n);      pci_ad_pads : for i in 0 to 31 generate	pci_adio_pad : pciiopad	    port map(pcio.pci_adout(i), pci_aden(i), pcii.pci_adin(i), pci_ad(i));        end generate pci_ad_pads;      pci_cbe_n_pads : for i in 0 to 3 generate	pci_cbeio_n_pad : pciiopad	    port map(pcio.pci_cbeout_n(i), pci_cbeen(i), pcii.pci_cbein_n(i), pci_cbe_n(i));      end generate pci_cbe_n_pads;      pci_frame_io_n_pad : pciiopad port map	(pcio.pci_frame_out_n, pci_frame_en, pcii.pci_frame_in_n, pci_frame_n);      pci_irdy_io_n_pad : pciiopad port map	(pcio.pci_irdy_out_n, pci_irdy_en, pcii.pci_irdy_in_n, pci_irdy_n);      pci_trdy_io_n_pad : pciiopad port map	(pcio.pci_trdy_out_n, pci_trdy_en, pcii.pci_trdy_in_n, pci_trdy_n);      pci_devsel_io_n_pad : pciiopad port map	(pcio.pci_devsel_out_n, pci_devsel_en, pcii.pci_devsel_in_n, pci_devsel_n);      pci_stop_io_n_pad : pciiopad port map	(pcio.pci_stop_out_n, pci_stop_en, pcii.pci_stop_in_n, pci_stop_n);          pci_perr_io_n_pad : pciiopad port map	(pcio.pci_perr_out_n, pci_perr_en, pcii.pci_perr_in_n, pci_perr_n);      pci_par_io_pad : pciiopad port map	(pcio.pci_par_out, pci_par_en, pcii.pci_par_in, pci_par);          pci_req_io_n_pad : pciiopad port map  	-- tristate pad but never read	(pcio.pci_req_out_n, pci_req_en, pci_req_in_dummy, pci_req_n);    -- open drain bidir      pci_serr_n_pad   : pciiodpad port map (pci_serr_en, pcii.pci_serr_in_n, pci_serr_n);    -- PCI host select      pci_host_pad : inpad port map (pci_host, pcii.pci_host);	    -- Optional PCI arbiter      parb1 : if PCIARBEN generate        pgnt : for i in 0 to 3 generate          pcignt : pcioutpad port map (ioo.pci_arb_gnt_n(i), pci_arb_gnt_n(i));        end generate;      end generate;      parb2 : if PCIARBEN generate        preq : for i in 0 to 3 generate          pcireq : inpad port map (pci_arb_req_n(i), ioi.pci_arb_req_n(i));        end generate;      end generate;    -- Optional 66 MHz pad      p66  : if PCI66PADEN generate        pci_66_pad : inpad port map(pci_66, pcii.pci_66);      end generate;      np66  : if not PCI66PADEN generate        pcii.pci_66 <= '0';      end generate;    -- Optional power control pads      pme  : if PCIPMEEN generate        pmes : for i in 1 downto 0 generate          power_state_pad : pcioutpad port map (pcio.power_state(i), power_state(i));	end generate;        pme_enable_pad : pcioutpad port map (pcio.pme_enable, pme_enable);        pme_clear_pad  : pcioutpad port map (pcio.pme_clear, pme_clear);        pme_status_pad : inpad port map(pme_status, pcii.pme_status);      end generate;      npme  : if not PCIPMEEN generate        pcii.pme_status <= '0';      end generate;    eth_pads : if ETHEN generate      emdio_pad : iopad generic map (2) port map (etho.mdio_o, etho.mdio_oe, ethi.mdio_i, emdio);      etx_clk_pad   : inpad port map (etx_clk, ethi.tx_clk);      erx_clk_pad   : inpad port map (erx_clk, ethi.rx_clk);      erxd_pads: for i in 0 to 3 generate			-- data bus        erxd_pad   : inpad port map (erxd(i), ethi.rxd(i));      end generate;      erx_dv_pad   : inpad port map (erx_dv, ethi.rx_dv);      erx_er_pad   : inpad port map (erx_er, ethi.rx_er);      erx_col_pad   : inpad port map (erx_col, ethi.rx_col);      erx_crs_pad   : inpad port map (erx_crs, ethi.rx_crs);      etxd_pads: for i in 0 to 3 generate			-- data bus        etxd_pad   : outpad generic map (1) port map (etho.txd(i), etxd(i));      end generate;      etx_en_pad   : outpad generic map (1) port map (etho.tx_en, etx_en);      etx_er_pad   : outpad generic map (1) port map (etho.tx_er, etx_er);      emdc_pad   : outpad generic map (1) port map (etho.mdc, emdc);      emddis_pad   : outpad generic map (1) port map (gnd, emddis);      epwrdwn_pad   : outpad generic map (1) port map (gnd, epwrdwn);      ereset_pad   : outpad generic map (1) port map (vcc, etho.reset);      esleep_pad   : outpad generic map (1) port map (vcc, esleep);      epause_pad   : outpad generic map (1) port map (gnd, epause);    end generate;end ;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?