亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? smc_mctrl.vhd

?? leon3 patch for altera ep1c20 FPGA.
?? VHD
?? 第 1 頁 / 共 3 頁
字號:
------------------------------------------------------------------------------  This file is a part of the LEON VHDL model--  Copyright (C) 1999  European Space Agency (ESA)----  This library is free software; you can redistribute it and/or--  modify it under the terms of the GNU Lesser General Public--  License as published by the Free Software Foundation; either--  version 2 of the License, or (at your option) any later version.----  See the file COPYING.LGPL for the full details of the license.------------------------------------------------------------------------------- Entity: 	mctrl-- File:	mctrl.vhd-- Author:	Jiri Gaisler - ESA/ESTEC-- Description:	External memory controller.------------------------------------------------------------------------------library ieee;use ieee.std_logic_1164.all;library grlib;use grlib.amba.all;use grlib.devices.all;use grlib.stdlib.all;library gaisler;use gaisler.memctrl.all;library esa;use esa.memoryctrl.all;entity smc_mctrl is  generic (    hindex    : integer := 0;    pindex    : integer := 0;    romaddr   : integer := 16#000#;    rommask   : integer := 16#E00#;    ioaddr    : integer := 16#200#;    iomask    : integer := 16#E00#;    ramaddr   : integer := 16#400#;    rammask   : integer := 16#C00#;    paddr     : integer := 0;    pmask     : integer := 16#fff#;    wprot     : integer := 0;    invclk    : integer := 0;    fast      : integer := 0;    romasel   : integer := 28;    sdrasel   : integer := 29;    srbanks   : integer := 4;    ram8      : integer := 0;    ram16     : integer := 0;    sden      : integer := 0;    sepbus    : integer := 0;    sdbits    : integer := 32;    sdlsb     : integer := 2;          -- set to 12 for the GE-HPE board    oepol     : integer := 0;    syncrst   : integer := 0  );  port (    rst       : in  std_ulogic;    clk       : in  std_ulogic;    memi      : in  memory_in_type;    memo      : out memory_out_type;    ahbsi     : in  ahb_slv_in_type;    ahbso     : out ahb_slv_out_type;    apbi      : in  apb_slv_in_type;    apbo      : out apb_slv_out_type;    wpo       : in  wprot_out_type;    sdo       : out sdram_out_type;    eth_aen   : out std_logic; -- for smsc eth    eth_readn : out std_logic; -- for smsc eth    eth_writen: out std_logic;  -- for smsc eth    eth_nbe   : out std_logic_vector(3 downto 0) -- for smsc eth  );end;architecture rtl of smc_mctrl isconstant REVISION  : integer := 0;constant prom : integer := 1;constant memory : integer := 0;constant hconfig : ahb_config_type := (  0 => ahb_device_reg ( VENDOR_ESA, ESA_MCTRL, 0, REVISION, 0),  4 => ahb_membar(romaddr, '1', '1', rommask),  5 => ahb_membar(ioaddr,  '0', '0', iomask),  6 => ahb_membar(ramaddr, '1', '1', rammask),  others => zero32);constant pconfig : apb_config_type := (  0 => ahb_device_reg ( VENDOR_ESA, ESA_MCTRL, 0, REVISION, 0),  1 => apb_iobar(paddr, pmask));constant RAMSEL5 : boolean := srbanks = 5;constant SDRAMEN : boolean := (sden /= 0);constant BUS16EN : boolean := (ram16 /= 0);constant BUS8EN  : boolean := (ram8 /= 0);constant WPROTEN : boolean := (wprot /= 0);constant WENDFB  : boolean := false;constant SDSEPBUS: boolean := (sepbus /= 0);constant BUS64   : boolean := (sdbits = 64);constant rom : integer := 0;constant io  : integer := 1;constant ram : integer := 2;type memcycletype is (idle, berr, bread, bwrite, bread8, bwrite8, bread16, bwrite16);-- memory configuration register 1 typetype mcfg1type is record  romrws           : std_logic_vector(3 downto 0);  romwws           : std_logic_vector(3 downto 0);  romwidth         : std_logic_vector(1 downto 0);  romwrite         : std_logic;  ioen             : std_logic;  iows             : std_logic_vector(3 downto 0);  bexcen           : std_logic;  brdyen           : std_logic;  iowidth          : std_logic_vector(1 downto 0);end record;-- memory configuration register 2 typetype mcfg2type is record  ramrws           : std_logic_vector(1 downto 0);  ramwws           : std_logic_vector(1 downto 0);  ramwidth         : std_logic_vector(1 downto 0);  rambanksz        : std_logic_vector(3 downto 0);  rmw              : std_logic;  brdyen           : std_logic;  srdis            : std_logic;  sdren            : std_logic;end record;-- memory status register type-- local registerstype reg_type is record  address          : std_logic_vector(31 downto 0);  -- memory address  data             : std_logic_vector(31 downto 0);  -- latched memory data  writedata        : std_logic_vector(31 downto 0);  writedata8       : std_logic_vector(15 downto 0);  -- lsb write data buffer  sdwritedata      : std_logic_vector(63 downto 0);  readdata         : std_logic_vector(31 downto 0);  brdyn            : std_logic;  ready            : std_logic;  ready8           : std_logic;  bdrive           : std_logic_vector(3 downto 0);  nbdrive          : std_logic_vector(3 downto 0);  ws               : std_logic_vector(3 downto 0);  romsn		   : std_logic_vector(1 downto 0);  ramsn		   : std_logic_vector(4 downto 0);  ramoen	   : std_logic_vector(4 downto 0);  size		   : std_logic_vector(1 downto 0);  busw		   : std_logic_vector(1 downto 0);  oen              : std_logic;  iosn		   : std_logic_vector(1 downto 0);  read             : std_logic;  wrn              : std_logic_vector(3 downto 0);  writen           : std_logic;  bstate           : memcycletype;  area  	   : std_logic_vector(0 to 2);  mcfg1		   : mcfg1type;  mcfg2		   : mcfg2type;  bexcn            : std_logic;		-- latched external bexcn  echeck           : std_logic;  brmw             : std_logic;  haddr            : std_logic_vector(31 downto 0);  hsel             : std_logic;  srhsel           : std_logic;  hwrite           : std_logic;  hburst           : std_logic_vector(2 downto 0);  htrans           : std_logic_vector(1 downto 0);  hresp 	   : std_logic_vector(1 downto 0);  sa    	   : std_logic_vector(14 downto 0);  sd    	   : std_logic_vector(63 downto 0);  mben	   	   : std_logic_vector(3 downto 0);  eth_aen    : std_logic; -- for smsc eth  eth_readn  : std_logic; -- for smsc eth  eth_writen : std_logic; -- for smsc eth  eth_nbe    : std_logic_vector(3 downto 0);-- for smsc ethend record;signal r, ri : reg_type;signal wrnout : std_logic_vector(3 downto 0);signal sdmo : sdram_mctrl_out_type;signal sdi  : sdram_in_type;signal sdapbo   :  apb_slv_out_type;-- vectored output enable to data pads signal rbdrive, ribdrive : std_logic_vector(31 downto 0);signal rsbdrive, risbdrive : std_logic_vector(63 downto 0);attribute syn_preserve : boolean;attribute syn_preserve of rbdrive : signal is true;attribute syn_preserve of rsbdrive : signal is true; -- **** tame: added signal to invert polarity-- signal bprom_cs : std_ulogic;begin  ctrl : process(rst, ahbsi, apbi, memi, r, wpo, sdmo, sdapbo, rbdrive, rsbdrive)  variable v : reg_type;		-- local variables for registers  variable start : std_logic;  variable dataout : std_logic_vector(31 downto 0); -- data from memory  variable regsd : std_logic_vector(31 downto 0);   -- data from registers  variable memdata : std_logic_vector(31 downto 0);   -- data to memory  variable rws : std_logic_vector(3 downto 0);		-- read waitstates  variable wws : std_logic_vector(3 downto 0);		-- write waitstates  variable wsnew : std_logic_vector(3 downto 0);		-- write waitstates  variable adec : std_logic_vector(1 downto 0);  variable rams : std_logic_vector(4 downto 0);  variable bready, leadin : std_logic;  variable csen : std_logic;			-- Generate chip selects  variable aprot   : std_logic_vector(14 downto 0); --  variable wrn   : std_logic_vector(3 downto 0); --  variable bexc, addrerr : std_logic;  variable ready : std_logic;  variable writedata : std_logic_vector(31 downto 0);  variable bwdata : std_logic_vector(31 downto 0);  variable merrtype  : std_logic_vector(2 downto 0); -- memory error type  variable noerror : std_logic;  variable area  : std_logic_vector(0 to 2);  variable bdrive : std_logic_vector(3 downto 0);  variable ramsn : std_logic_vector(4 downto 0);  variable romsn, busw : std_logic_vector(1 downto 0);  variable iosn : std_logic;  variable lock : std_logic;  variable wprothitx : std_logic;  variable brmw : std_logic;  variable bidle: std_logic;  variable haddr   : std_logic_vector(31 downto 0);  variable hsize   : std_logic_vector(1 downto 0);  variable hwrite  : std_logic;  variable hburst  : std_logic_vector(2 downto 0);  variable htrans  : std_logic_vector(1 downto 0);  variable sdhsel, srhsel, hready  : std_logic;  variable vbdrive : std_logic_vector(31 downto 0);  variable vsbdrive : std_logic_vector(63 downto 0);  variable bdrive_sel : std_logic_vector(3 downto 0);  begin -- Variable default settings to avoid latches    v := r; wprothitx := '0'; v.ready8 := '0'; v.iosn(0) := r.iosn(1);    ready := '0'; addrerr := '0'; regsd := (others => '0'); csen := '0';    v.ready := '0'; v.echeck := '0';    merrtype := "---"; bready := '1';    vbdrive := rbdrive; vsbdrive := rsbdrive;         v.data := memi.data; v.bexcn := memi.bexcn; v.brdyn := memi.brdyn;    if (((r.brdyn and r.mcfg1.brdyen) = '1') and (r.area(io) = '1')) or       (((r.brdyn and r.mcfg2.brdyen) = '1') and (r.area(ram) = '1') and	 (r.ramsn(4) = '0') and RAMSEL5)    then      bready := '0';    else bready := '1'; end if;    v.hresp := HRESP_OKAY;    if SDRAMEN and (r.hsel = '1') and (ahbsi.hready = '0') then      haddr := r.haddr;  hsize := r.size; hburst := r.hburst;      htrans := r.htrans; hwrite := r.hwrite;      area := r.area;    else      haddr := ahbsi.haddr;  hsize := ahbsi.hsize(1 downto 0);      hburst := ahbsi.hburst; htrans := ahbsi.htrans; hwrite := ahbsi.hwrite;      area := ahbsi.hmbsel(0 to 2);    end if;    if SDRAMEN then      if fast = 1 then        sdhsel := ahbsi.hsel(hindex) and ahbsi.haddr(sdrasel) and	   ahbsi.htrans(1) and ahbsi.hmbsel(2);      else        sdhsel := ahbsi.hsel(hindex) and ahbsi.htrans(1) and	  r.mcfg2.sdren and ahbsi.hmbsel(2) and (ahbsi.haddr(sdrasel) or r.mcfg2.srdis);      end if;      srhsel := ahbsi.hsel(hindex) and not sdhsel;    else  sdhsel := '0'; srhsel := ahbsi.hsel(hindex); end if;-- decode memory area parameters    leadin := '0'; rws := "----"; wws := "----"; adec := "--";    busw := (others => '-'); brmw := '0';    if area(rom) = '1' then      busw := r.mcfg1.romwidth;    end if;    if area(ram) = '1' then      adec := genmux(r.mcfg2.rambanksz, haddr(sdrasel downto 14)) &              genmux(r.mcfg2.rambanksz, haddr(sdrasel-1 downto 13));      if sdhsel = '1' then busw := "10";      else        busw := r.mcfg2.ramwidth;        if ((r.mcfg2.rmw and hwrite) = '1') and	 ((BUS16EN and (busw = "01") and (hsize = "00")) or	  ((busw(1) = '1') and (hsize(1) = '0'))        )        then brmw := '1'; end if;	 -- do a read-modify-write cycle      end if;    end if;    if area(io) = '1' then      leadin := '1';      busw := r.mcfg1.iowidth;    end if;-- decode waitstates, illegal access and cacheability    if r.area(rom) = '1' then      rws := r.mcfg1.romrws; wws := r.mcfg1.romwws;      if (r.mcfg1.romwrite or r.read) = '0' then addrerr := '1'; end if;    end if;    if r.area(ram) = '1' then      rws := "00" & r.mcfg2.ramrws; wws := "00" & r.mcfg2.ramwws;    end if;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品一区二区久久| 国产又粗又猛又爽又黄91精品| 国产精品视频一二三区| 精品国产乱码91久久久久久网站| 在线播放亚洲一区| 欧美日本国产视频| 69堂精品视频| 欧美一级日韩免费不卡| 日韩一二三区不卡| 日韩欧美国产不卡| 精品国产sm最大网站| 久久久亚洲精品一区二区三区| 26uuu色噜噜精品一区| 久久久久久久久久久久久女国产乱| 久久久精品国产免大香伊| 26uuu另类欧美亚洲曰本| 久久免费的精品国产v∧| 国产欧美精品区一区二区三区 | 国产伦精品一区二区三区免费迷| 久久成人羞羞网站| 精品一区二区三区不卡| 国产+成+人+亚洲欧洲自线| 成人午夜电影网站| 99r精品视频| 欧美三级日本三级少妇99| 91麻豆精品国产综合久久久久久 | 亚洲成人资源网| 日韩精品亚洲专区| 久久电影国产免费久久电影| 国产91清纯白嫩初高中在线观看| 91免费观看在线| 欧美日韩夫妻久久| 欧美成人福利视频| 欧美激情一区二区在线| 亚洲欧美另类久久久精品| 亚洲国产精品自拍| 国产自产视频一区二区三区| 成人网男人的天堂| 在线视频一区二区三| 91麻豆精品国产91久久久| 久久久综合精品| 亚洲日穴在线视频| 日韩国产欧美在线观看| 国产成人高清视频| 一本久久a久久精品亚洲| 欧美精品色一区二区三区| 久久这里只有精品6| 亚洲视频一区二区在线观看| 日本在线不卡一区| 成人av在线播放网址| 欧美日韩国产中文| 日本一区二区在线不卡| 偷拍自拍另类欧美| 福利91精品一区二区三区| 欧美系列在线观看| 国产亚洲婷婷免费| 午夜欧美2019年伦理 | www久久久久| 亚洲欧美激情小说另类| 蜜臀av一区二区在线免费观看| 99re热这里只有精品免费视频| 91精品国产乱| 最新国产精品久久精品| 美女脱光内衣内裤视频久久网站| 99国产精品国产精品久久| 精品欧美乱码久久久久久1区2区| 一区二区在线观看免费视频播放| 狠狠久久亚洲欧美| 欧美视频一区在线观看| 亚洲国产精品成人综合| 蜜臀av国产精品久久久久| 99精品视频中文字幕| 久久综合视频网| 视频一区二区三区在线| 91亚洲精品久久久蜜桃| 亚洲精品在线观| 午夜视频在线观看一区| 色欧美片视频在线观看在线视频| 久久精品一区二区三区四区| 日日夜夜免费精品视频| 色婷婷综合久久久久中文一区二区| 久久久久久一二三区| 日本特黄久久久高潮| 欧美在线免费视屏| 亚洲欧洲日韩一区二区三区| 国产乱对白刺激视频不卡| 欧美一二三四区在线| 亚洲韩国精品一区| 在线亚洲+欧美+日本专区| 最近日韩中文字幕| eeuss影院一区二区三区 | 亚洲自拍偷拍九九九| 成人高清在线视频| 久久久久久久网| 麻豆久久久久久| 日韩亚洲欧美成人一区| 日韩中文字幕麻豆| 欧美日韩国产一二三| 亚洲综合另类小说| 91精品福利在线| 一区二区三区在线观看视频| 99精品在线观看视频| 中文字幕中文字幕在线一区| 成人妖精视频yjsp地址| 中文字幕免费观看一区| 国产精品一区二区在线观看不卡 | 成人免费小视频| av电影在线观看不卡 | 成人av一区二区三区| 国产欧美日产一区| av午夜一区麻豆| 中文字幕一区二区三区四区| 91在线免费播放| 亚洲精品中文在线| 91国偷自产一区二区三区成为亚洲经典 | 在线综合视频播放| 日韩精彩视频在线观看| 欧美一区二区三区在线视频| 麻豆成人免费电影| 久久综合九色综合97_久久久| 韩国v欧美v日本v亚洲v| 欧美国产欧美综合| 91欧美一区二区| 亚洲网友自拍偷拍| 日韩视频国产视频| 国产一区二区精品在线观看| 国产精品对白交换视频| 在线影视一区二区三区| 日韩激情av在线| 精品国产精品网麻豆系列| 国产69精品久久777的优势| 亚洲欧洲综合另类| 欧美在线观看禁18| 丝袜国产日韩另类美女| 久久久久久毛片| 色悠久久久久综合欧美99| 五月激情综合婷婷| 26uuu欧美日本| 一本一本大道香蕉久在线精品| 无码av中文一区二区三区桃花岛| 日韩一级视频免费观看在线| 国产成+人+日韩+欧美+亚洲| 一区二区三区四区在线播放| 日韩女优av电影| 成人动漫视频在线| 日韩有码一区二区三区| 国产午夜亚洲精品不卡| 色菇凉天天综合网| 美女被吸乳得到大胸91| 中文字幕国产精品一区二区| 欧美日韩国产首页| 国产盗摄精品一区二区三区在线| 亚洲男同性恋视频| 欧美刺激午夜性久久久久久久| av福利精品导航| 久久精品国产一区二区三区免费看| 国产精品日日摸夜夜摸av| 欧美精选一区二区| av电影天堂一区二区在线观看| 日韩一区欧美二区| 1区2区3区国产精品| 69堂国产成人免费视频| 不卡一区二区在线| 久久精品国产色蜜蜜麻豆| 洋洋av久久久久久久一区| 久久午夜国产精品| 欧美日韩精品综合在线| 成人午夜视频在线| 麻豆精品视频在线观看免费| 亚洲激情五月婷婷| 国产亚洲制服色| 日韩亚洲欧美成人一区| 色综合久久久久久久久久久| 国内精品视频666| 午夜精彩视频在线观看不卡| 中文字幕一区二区不卡| 久久久精品2019中文字幕之3| 在线成人免费视频| 欧美综合在线视频| 欧美系列亚洲系列| 大胆亚洲人体视频| 精品一区二区精品| 天堂蜜桃91精品| 亚洲精品精品亚洲| 国产精品久久99| 国产欧美一区二区精品忘忧草| 日韩视频免费观看高清完整版在线观看 | 久久99精品国产| 亚洲va国产天堂va久久en| 亚洲精选一二三| 亚洲私人黄色宅男| 中文字幕在线不卡一区| 久久网站热最新地址| 日韩欧美资源站| 欧美日韩aaa| 精品视频在线免费| 欧美这里有精品| 日本道免费精品一区二区三区| 99re亚洲国产精品| 99精品视频一区|