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

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

?? cfg_regs.vhd

?? pci控制器的vhdl代碼。。。。。。。。。
?? VHD
字號:
--*****************************************************************************
-- FILE    : PCI_CFGREG
-- DATE    : 1.9.1999
-- REVISION: 1.1
-- DESIGNER: KA
-- Descr   : PCI Configuration Space Registers for Target-only Interface
-- Entities:
--             CFG_STREG
--             CFG_CMDREG
--             BAR_REG
--             EBAR
--             CFG_INTREG
-- Changes :
--           4.8.1999 - CFG_STREG - added PCR_STAT port for register contens
--                      visibility
--                    - CFG_CMDREG - added PCR_CMD port for register contens
--                      visibility
--
--*****************************************************************************
--*               Command Register                                           
  *
--*****************************************************************************
library IEEE;
use IEEE.std_logic_1164.all;
library WORK;
use WORK.CFGSPACE_SET.all;
entity CFG_CMDREG is
  port(
      RESET       : in  std_logic;
      CLK         : in  std_logic;
      DIN         : in  std_logic_vector(15 downto 0);-- Data IN
      DOUT        : out std_logic_vector(15 downto 0);-- Data OUT
      BEn         : in  std_logic_vector(3 downto 0); -- Byte Enables
      WE          : in  std_logic;
      OE          : in  std_logic;
      PCR_CMD     : out std_logic_vector(15 downto 0); -- PCI Cfg. Command 
reg.
      IO_EN       : out std_logic;     -- I/O Space Decoding Enabled
      MEM_EN      : out std_logic;     -- Memory Space Decoding Enabled
      SPEC_CYC    : out std_logic;     -- Special Cycles Monitoring Enabled
      PERR_EN     : out std_logic;     -- Parity Error Response
      STEPPING_EN : out std_logic;     -- Stepping Control
      SERR_EN     : out std_logic      -- SERR# Enable
  );
end CFG_CMDREG;
--
-- Command Register RTL Architecture
--
architecture RTL of CFG_CMDREG is
  signal Settings : std_logic_vector(15 downto 0);
begin
    -- Register
   INTREG: process (CLK, RESET)
   begin
      if RESET='1' then	--asynchronous RESET active High
         Settings <= COMMAND_INIT;
      elsif (CLK'event and CLK='1') then  --CLK rising edge
         if WE = '1' then
            if BEn(0)='0' then
               Settings(1 downto 0) <= DIN(1 downto 0);
               Settings(2) <= '0';       -- Master not supported
               Settings(3) <= DIN(3);
               Settings(4) <= '0';       -- MWI not supported
               Settings(5) <= '0';
               Settings(6) <= DIN(6);
               Settings(7) <= '0';
--               Settings(7) <= DIN(7);  -- Stepping not supported
            end if;
            if BEn(1)='0' then
               Settings(15 downto 10) <= "000000";
               Settings(9 downto 8) <= DIN(9 downto 8);
            end if;
         end if;
      end if;
   end process;
   -- Output Tristate Buffer
   O_BUF: DOUT <= Settings when OE='1' else "ZZZZZZZZZZZZZZZZ";
   PCR_CMD  <= Settings;    -- Command Register bits assignment
   IO_EN    <= Settings(0);   -- I/O Space Decoding Enabled
   MEM_EN   <= Settings(1);   -- Memory Space Decoding Enabled
   SPEC_CYC <= Settings(3);   -- Special Cycles Monitoring Enabled
   PERR_EN  <= Settings(6);   -- Parity Error Response
   STEPPING_EN <= Settings(7);-- Stepping Control
   SERR_EN     <= Settings(8);-- SERR# Enable
end RTL; -- CFG_CMDREG
--
--*****************************************************************************
--*                    Status Register                                       
  *
--*****************************************************************************
--
library IEEE;
use IEEE.std_logic_1164.all;
library WORK;
use WORK.CFGSPACE_SET.all;
entity CFG_STREG is
  port(
      RESET     : in  std_logic;
      CLK       : in  std_logic;
      DIN       : in  std_logic_vector(15 downto 0);-- Data IN
      DOUT      : out std_logic_vector(15 downto 0);-- Data OUT
      BEn       : in  std_logic_vector(3 downto 0);
      WE        : in  std_logic;
      OE        : in  std_logic;
      SET_MDPERR: in  std_logic; -- Set Master Data Parity Error Bit( 8)
      SIG_TABORT: in  std_logic; -- Set Signaled Target Abort Bit   (11)
      RCV_TABORT: in  std_logic; -- Set Received Target Abort Bit   (12)
      RCV_MABORT: in  std_logic; -- Set Received Master Abort Bit   (13)
      SIG_SERR  : in  std_logic; -- Set Signaled System Error Bit   (14)
      DET_PERR  : in  std_logic;  -- Set Detected Parity Error Bit   (15)
      PCR_STAT  : out std_logic_vector(15 downto 0) -- PCI Cfg. Status 
Register Contens
  ); end CFG_STREG;
--
-- Status Register RTL Architecture
--
architecture RTL of CFG_STREG is
  signal Status : std_logic_vector(15 downto 0);
begin
   Status(7 downto 0) <= STATUS_INIT(7 downto 0);
   Status(10 downto 9) <= STATUS_INIT(10 downto 9);
   --
   CSRREG: process (CLK, RESET)
   begin
      if RESET='1' then	--asynchronous RESET active High
         Status(15) <= STATUS_INIT(15);
         Status(14) <= STATUS_INIT(14);
         Status(13) <= STATUS_INIT(13);
         Status(12) <= STATUS_INIT(12);
         Status(11) <= STATUS_INIT(11);
         Status(8) <= STATUS_INIT(8);
      elsif (CLK'event and CLK='1') then  --CLK rising edge
         if (WE = '1') and (BEn(3)='0')then
            -- RESET of Status Bits
            if DIN(15)='1' then
               Status(15) <='0';
            end if;
            if DIN(14)='1' then
               Status(14) <='0';
            end if;
            if DIN(13)='1' then
               Status(13) <='0';
            end if;
            if DIN(12)='1' then
               Status(12) <='0';
            end if;
            if DIN(11)='1' then
               Status(11) <='0';
            end if;
            if DIN(8)='1' then
               Status(8) <='0';
            end if;
         else
            if DET_PERR = '1' then
               Status(15) <='1';
            end if;
            if SIG_SERR = '1' then
               Status(14) <='1';
            end if;
            if RCV_MABORT = '1' then
               Status(13) <='1';
            end if;
            if RCV_TABORT = '1' then
               Status(12) <='1';
            end if;
            if  SIG_TABORT = '1' then
               Status(11) <='1';
            end if;
            if SET_MDPERR = '1' then
               Status(8) <='1';
            end if;
         end if;
      end if;
   end process;
   -- Output Tristate Buffer
   O_BUF: DOUT <= Status when OE='1' else "ZZZZZZZZZZZZZZZZ";
   PCR_STAT <= Status;
end RTL; -- CFG_STREG

--
--*****************************************************************************
--*                    Generic Base Address Register                         
  *
--*****************************************************************************
--
library IEEE;
use IEEE.std_logic_1164.all;
library WORK;
use WORK.CFGSPACE_SET.all;
-- pragma translate_off
library unisim;
use unisim.all;
-- pragma translate_on
entity BAR_REG is
   generic(
      BAR_NO: integer:= 0);
   port(
      RESET       : in  std_logic;
      CLK         : in  std_logic;
      DIN         : in  std_logic_vector(31 downto 0);-- Data In  Bus
      DOUT        : out std_logic_vector(31 downto 0);-- Data Out Bus
      BEn         : in  std_logic_vector(3 downto 0); -- Byte Enables
      RD          : in  std_logic;
      WR          : in  std_logic;
      ACC_SPACE   : in  std_logic;
      FIRST_CYC   : in  std_logic; -- First Cycle After FRAME# falling edge
      HIT         : out std_logic; -- BAR Hit = address is in BAR range
      SIZE        : out std_logic);-- BAR contains all 1's - cfg info will 
be read
end BAR_REG;
--
-- BAR_REG RTL Architecture Description
--
architecture RTL of BAR_REG is
   constant HI_Z_32 : std_logic_vector(31 downto 0):= 
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
   signal Base_Adr : std_logic_vector(31 downto 0);
   signal Base_Size : std_logic;
   signal Base_Hit : std_logic;
   signal SZ: std_logic_vector(8 downto 0);
begin
   -- BASE ADDRESS Register
   pADRREG: process(CLK,RESET)
   begin
      if (RESET = '1') then
          Base_Adr <= (others=>'0');
      elsif (CLK'event and CLK='1') then
         if (WR = '1') then
            if BEn(0)='0' then
            Base_Adr(7 downto 0) <= DIN(7 downto 0);
            end if;
            if BEn(1)='0' then
             Base_Adr(15 downto 8) <= DIN(15 downto 8);
            end if;
            if BEn(2)='0' then
             Base_Adr(23 downto 16) <= DIN(23 downto 16);
            end if;
            if BEn(3)='0' then
             Base_Adr(31 downto 24) <= DIN(31 downto 24);
            end if;
         end if;
      end if;
   end process pADRREG;
   -- Address comparator
   pADRCMP: process (FIRST_CYC,ACC_SPACE,DIN,Base_Adr)
     begin
       if (FIRST_CYC = '1') and (ACC_SPACE = '1') and
         (DIN(31 downto (32-BAR_SET(BAR_NO).DWIDTH))  = Base_Adr(31 downto 
(32-BAR_SET(BAR_NO).DWIDTH))) then
           Base_Hit <= '1';
         else
           Base_Hit <= '0';
      end if;
   end process pADRCMP;
   -- All 1's detector
   D_S0: SZ(0)<= Base_Adr(31)and Base_Adr(30)and Base_Adr(29)and 
Base_Adr(28);
   D_S1: SZ(1)<= Base_Adr(27)and Base_Adr(26)and Base_Adr(25)and 
Base_Adr(24);
   D_S2: SZ(2)<= Base_Adr(23)and Base_Adr(22)and Base_Adr(21)and 
Base_Adr(20);
   D_S3: SZ(3)<= Base_Adr(19)and Base_Adr(18)and Base_Adr(17)and 
Base_Adr(16);
   D_S4: SZ(4)<= Base_Adr(15)and Base_Adr(14)and Base_Adr(13)and 
Base_Adr(12);
   D_S5: SZ(5)<= Base_Adr(11)and Base_Adr(10)and Base_Adr(9)and Base_Adr(8);
   D_S6: SZ(6)<= Base_Adr(7)and Base_Adr(6)and Base_Adr(5)and Base_Adr(4);
   D_S7: SZ(7)<= SZ(0)and SZ(1) and SZ(2) and SZ(3);
   D_S8: Base_Size <= SZ(4)and SZ(7) and SZ(5) and SZ(6);
   -- Data output tri-state buffer
   D_BUF1: DOUT(31 downto 4)<= Base_Adr (31 downto 4) when RD = '1' else 
HI_Z_32(31 downto 4);
   D_BUF2: DOUT(3 downto 0) <= BAR_SET(BAR_NO).BARMAP(3 downto 0) when RD = 
'1' else "ZZZZ";
   -- Output Assignment
   HIT  <= Base_Hit when BAR_SET(BAR_NO).PRESENT else '0';
   SIZE <= Base_Size when BAR_SET(BAR_NO).PRESENT else '1';
end RTL;
--
--*****************************************************************************
--*                 Expansion ROM Base Address Register                      
  *
--*****************************************************************************
--
library IEEE;
use IEEE.std_logic_1164.all;
library WORK;
use WORK.CFGSPACE_SET.all;
-- pragma translate_off
library unisim;
use unisim.all;
-- pragma translate_on
entity EBAR is
   port(
      RESET    : in  std_logic;
      CLK      : in  std_logic;
      DIN      : in  std_logic_vector(31 downto 0);
      DOUT     : out std_logic_vector(31 downto 0);
      BEn      : in  std_logic_vector(3 downto 0); -- Byte Enables
      RD       : in  std_logic;
      WR       : in  std_logic;
      ACC_SPACE: in  std_logic;
      FIRST_CYC: in  std_logic; -- First Cycle After FRAME# falling edge
      HIT      : out std_logic;
      SIZE     : out std_logic
   );
end EBAR;
--
-- Expansion ROM BAR RTL Architecture Description
--
architecture RTL of EBAR is
   constant HI_Z_32 : std_logic_vector(31 downto 0):= 
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ";
   constant C_0x00000000 : std_logic_vector(31 downto 0):= 
"00000000000000000000000000000000";
   constant C_0xffffffff : std_logic_vector(31 downto 0):= 
"11111111111111111111111111111111";
   signal Base_Adr   : std_logic_vector(31 downto 0);
   signal Base_Size  : std_logic;
   signal Base_Hit   : std_logic;
begin
   -- BASE ADDRESS Register
   ADRREG: process(CLK,RESET)
   begin
      if (RESET = '1') then
       Base_Adr <= C_0x00000000 ;
      elsif (CLK'event and CLK='1') then
         if (WR = '1') then
            if BEn(0)='0' then
               Base_Adr(7 downto 0) <= DIN(7 downto 0);
            end if;
            if BEn(1)='0' then
               Base_Adr(15 downto 8) <= DIN(15 downto 8);
            end if;
            if BEn(2)='0' then
               Base_Adr(23 downto 16) <= DIN(23 downto 16);
            end if;
            if BEn(3)='0' then
               Base_Adr(31 downto 24) <= DIN(31 downto 24);
            end if;
         end if;
      end if;
   end process ADRREG;
   -- Address comparator
   pADRCMP: process (FIRST_CYC,ACC_SPACE,DIN,Base_Adr)
   begin
      if (FIRST_CYC = '1') and (ACC_SPACE = '1') and Base_Adr(0)='1'and
         (DIN(31 downto (32-EBAR_DWIDTH))  = Base_Adr(31 downto 
(32-EBAR_DWIDTH))) then
         Base_Hit <= '1';
      else
         Base_Hit <= '0';
      end if;
   end process pADRCMP;
   -- BAR Size and Type Detection - all 1's detector
   D_SIZE: Base_Size <= '1' when (Base_Adr = C_0xffffffff) else '0';
   -- Tristate output buffer - valid bits
   D_BUF1: DOUT(31 downto (32-EBAR_DWIDTH))<= Base_Adr (31 downto 
(32-EBAR_DWIDTH)) when RD = '1'
                                            else HI_Z_32(31 downto 
(32-EBAR_DWIDTH));
   -- Tristate output buffer - unused bits
   D_BUF2: DOUT((31-EBAR_DWIDTH) downto 1)<= C_0x00000000((31-EBAR_DWIDTH) 
downto 1) when RD = '1'
                                            else HI_Z_32((31-EBAR_DWIDTH) 
downto 1);
   -- Tristate output buffer -  bit 0 - ROM Enable
   D_BUF3: DOUT(0) <= Base_Adr(0) when RD = '1' else 'Z';
   -- Output Assignment
   HIT  <= Base_Hit when EBAR_PRESENT else '0';
   SIZE <= Base_Size when EBAR_PRESENT else '1';
end RTL; -- EBAR
--
--*****************************************************************************
--*                 Interrupt Line Register                                  
  *
--*****************************************************************************
--
library IEEE;
use IEEE.std_logic_1164.all;
library WORK;
use WORK.CFGSPACE_SET.all;
entity CFG_INTREG is
   port(
      RESET : in  std_logic;
      CLK   : in  std_logic;
      DIN   : in  std_logic_vector(7 downto 0); -- Data IN
      DOUT  : out std_logic_vector(7 downto 0); -- Data OUT
      WE    : in  std_logic;
      OE    : in  std_logic
   );
end CFG_INTREG;
--
-- Interrupt Line Register RTL Architecture Desrciption
--
architecture RTL of CFG_INTREG is
   signal IntLine : std_logic_vector(7 downto 0);
begin
   -- Register
   INTREG: process (CLK, RESET)
   begin
      if RESET='1' then	--asynchronous RESET active High
         IntLine <= INTLINE_INIT;
      elsif (CLK'event and CLK='1') then  --CLK rising edge
         if WE = '1' then
            IntLine <= DIN;
         end if;
      end if;
   end process;
   -- Output Tristate Buffer
   O_BUF: DOUT <= IntLine when OE='1' else "ZZZZZZZZ";
end RTL; -- CFG_INTREG




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品久久久久久久人人人人传媒| 国产乱人伦精品一区二区在线观看 | 奇米影视一区二区三区| 欧美三级三级三级| 视频在线观看一区| 精品福利av导航| 国产精品1区2区| 久久免费午夜影院| 国产 日韩 欧美大片| 中文字幕一区二区三区视频| 色综合久久久久网| 日本一不卡视频| 久久久美女毛片| 91美女片黄在线| 天天免费综合色| 国产清纯在线一区二区www| av电影天堂一区二区在线| 亚欧色一区w666天堂| 日韩一二三区不卡| 成人少妇影院yyyy| 亚洲第一久久影院| 久久综合久久综合亚洲| 波多野结衣欧美| 亚洲va欧美va国产va天堂影院| 欧美va亚洲va国产综合| 成人av综合一区| 久久久久久久久岛国免费| 国产99一区视频免费| 欧美国产精品专区| 99久久免费视频.com| 亚洲午夜久久久久久久久电影院| 欧美精品久久久久久久多人混战 | 91官网在线免费观看| 一区二区三区免费看视频| 成人黄色大片在线观看| 自拍偷拍亚洲欧美日韩| 欧美午夜免费电影| 激情综合五月天| 亚洲三级免费电影| 3d动漫精品啪啪| 国产精品一二三在| 亚洲精品视频在线观看免费| 欧美老人xxxx18| 国产一区二区在线观看视频| 国产精品欧美精品| 欧美日本一道本| 午夜视频在线观看一区二区 | 国产一区二区三区四区五区美女| 国产精品久久777777| 欧美视频一区在线| 国产精品一二三| 亚洲综合图片区| 久久久久久综合| 在线欧美日韩精品| 国产揄拍国内精品对白| 亚洲综合成人在线视频| 久久午夜免费电影| 欧美日韩精品系列| 精品一二三四区| 亚洲人成影院在线观看| 精品国产91乱码一区二区三区| 国产精品亚洲综合一区在线观看| 夜夜亚洲天天久久| 精品国产伦一区二区三区观看体验| 日本高清不卡一区| 国产精品亚洲专一区二区三区| 亚洲一区二区三区自拍| 久久精品视频网| 日韩欧美成人激情| 91视频国产观看| 日韩影视精彩在线| 视频一区中文字幕国产| 亚洲精品免费在线观看| 国产偷国产偷精品高清尤物 | 欧美色倩网站大全免费| 成人免费毛片aaaaa**| 久久超碰97人人做人人爱| 一区二区三区在线观看网站| 国产日韩一级二级三级| 日韩一二三区视频| 在线电影一区二区三区| 欧美视频第二页| 91视频www| jizzjizzjizz欧美| 国产精品一二三区| 国产在线精品免费| 六月丁香综合在线视频| 亚洲五码中文字幕| 亚洲一区中文日韩| 亚洲精品免费在线观看| 亚洲天堂av一区| 国产精品家庭影院| 国产精品天干天干在线综合| 久久蜜臀精品av| 欧美精品一区二区三区高清aⅴ| 7777精品伊人久久久大香线蕉完整版| 色狠狠桃花综合| 91片在线免费观看| 日本韩国欧美在线| 不卡在线视频中文字幕| 91香蕉国产在线观看软件| 国产一区欧美一区| 粉嫩一区二区三区在线看 | 蜜桃av一区二区三区| 午夜欧美视频在线观看| 天堂资源在线中文精品| 天堂成人免费av电影一区| 日韩精品三区四区| 免费视频一区二区| 狠狠网亚洲精品| 国产成人精品一区二区三区四区 | 亚洲精品一二三区| 136国产福利精品导航| 亚洲男同1069视频| 中文字幕日本不卡| 亚洲综合一区二区三区| 亚洲一区精品在线| 日本va欧美va欧美va精品| 久久精品国产色蜜蜜麻豆| 国产在线精品一区二区不卡了 | 久久99这里只有精品| 久久国产福利国产秒拍| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲欧美日韩精品久久久久| 一区二区三区中文字幕电影| 亚洲大型综合色站| 韩国成人在线视频| 99riav久久精品riav| 欧美亚洲另类激情小说| 精品国产一区二区三区忘忧草| 国产日产欧产精品推荐色| 一区二区三区四区在线播放| 奇米四色…亚洲| 不卡一二三区首页| 56国语精品自产拍在线观看| 久久久精品免费观看| 久久精品国产一区二区| 成人精品视频一区二区三区尤物| 成人自拍视频在线| 一本在线高清不卡dvd| 91免费视频网| 91精品国产福利| 337p亚洲精品色噜噜| 国产午夜亚洲精品理论片色戒| 一区二区三区在线看| 精品无码三级在线观看视频| 色婷婷久久久亚洲一区二区三区| 91精品国产色综合久久不卡电影| 日本一二三不卡| 免费精品99久久国产综合精品| 国产成人综合亚洲91猫咪| 欧美日本一道本| 中文字幕一区二区三中文字幕| 天天色天天操综合| 97国产一区二区| 久久婷婷色综合| 亚洲bdsm女犯bdsm网站| caoporm超碰国产精品| 欧美α欧美αv大片| 亚瑟在线精品视频| 色综合久久综合网| 日本一区二区三区在线不卡| 蜜桃视频在线观看一区二区| 色婷婷综合中文久久一本| 久久精品亚洲国产奇米99| 日日夜夜免费精品| 91丨porny丨在线| 精品免费国产二区三区| 一个色综合网站| 在线观看av不卡| 亚洲人成网站色在线观看| 懂色av中文字幕一区二区三区| 91精品欧美福利在线观看| 亚洲裸体在线观看| 成人免费的视频| 久久九九久精品国产免费直播| 日韩av电影免费观看高清完整版| 色菇凉天天综合网| **网站欧美大片在线观看| 国产成人在线免费| 26uuu欧美| 国产一区二区免费看| 精品日韩一区二区三区 | 色哟哟一区二区在线观看| 中文字幕不卡在线| 成人丝袜高跟foot| 国产精品美女久久久久高潮| 国产v综合v亚洲欧| 中文字幕免费不卡| www.亚洲色图.com| 亚洲欧美怡红院| 99这里只有久久精品视频| 亚洲色图在线视频| 国产69精品久久久久777| 久久这里只有精品首页| 麻豆视频一区二区| 久久一区二区三区四区| 国产风韵犹存在线视精品| 中文字幕精品一区二区三区精品| 粉嫩在线一区二区三区视频|