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

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

?? ms32pci.vhd

?? pci CORES 從外國網站上弄下來的
?? VHD
?? 第 1 頁 / 共 3 頁
字號:
--===================================================================--
--
--  www.OpenCores.Org - June 2000
--  This model adheres to the GNU public license  
--
-- Design units : Master device for PCI Local Bus 33 MHz 32 bits
--                  (BoardLevel Simulation model)
--                  (Entity and architecture)
--
-- File name    : MS32PCI.vhd
--
-- Purpose      : The Master device is used to simulate a master 
--                device on the PCI-Bus
--
-- Note         : This model is modelled after the PCI protocol 
--                as described in Xilinx & Altera AppNotes
--
-- Limitations  : None known
--
-- Errors       : None known
--
-- Library      : PCI_Lib.vhd
--
-- Dependencies : IEEE.Std_Logic_1164
--
-- Author       : Ovidiu Lupas
--                olupas@opencores.org
--
-- Simulator    : ModelSim EE version 5.2 on a Windows95 PC
--                ActiveVHDL 3.1 on a Windows95 PC
--===================================================================--
library ieee,work;
   use ieee.Std_Logic_1164.all;
   use work.Simulation.all;
   use std.textio.all;
   use work.PCI_Def.all;
-----------------------------------------------------------------------
--   ENTITY FOR MASTER PCI SIMULATION MODEL                          --
-----------------------------------------------------------------------
entity MS32PCI is
   generic (
      cmd_file : string := "PCI.CMD"; -- the commands file
      tdelay   : Time   := 2 ns;      -- delay time parameter
      tsetup   : Time   := 7 ns;      -- setup time to be checked
      thold    : Time   := 0 ns);     -- hold time to be checked
   port (
      -- Address, Data and Command buses (37)
      AD_Bus   : inout STD_LOGIC_VECTOR (31 downto 0);
      C_BE_Bus : inout STD_LOGIC_VECTOR (3 downto 0);
      PAR      : inout STD_LOGIC;                     
      -- Interface control signals (6)
      FRAME_N  : inout STD_LOGIC;
      TRDY_N   : in    STD_LOGIC;
      IRDY_N   : inout STD_LOGIC;
      STOP_N   : in    STD_LOGIC;
      DEVSEL_N : in    STD_LOGIC;
      IDSEL    : in    STD_LOGIC;
      -- Error reporting signals (2)
      PERR_N   : inout STD_LOGIC;
      SERR_N   : inout STD_LOGIC;
      -- Arbitration signals (2)
      REQ_N    : out   STD_LOGIC; 
      GNT_N    : in    STD_LOGIC;
      -- System signals (2)
      CLK      : in    STD_LOGIC;
      RST_N    : in    STD_LOGIC);
end MS32PCI;--================== End of entity ======================--
-----------------------------------------------------------------------
-- Architecture for Master device : PCI bus 33MHZ 32 bit configuration
-----------------------------------------------------------------------
architecture Behavior of MS32PCI is
  ---------------------------------------------------------------------
  -- Signals
  ---------------------------------------------------------------------
  signal parity_now    : Std_Logic; -- internal variable (calculate parity)
  signal parity_read   : Std_Logic; -- internal variable (parity at read)
  signal parity_flag   : Boolean;   -- internal variable (write ON/OFF on line PERR_N)
  signal PAR_READ_TEMP : Std_Logic; -- insert or no signal IRDY_N
  signal PAR_READ_FLAG : Std_Logic; -- insert or no signal IRDY_N
  ---------------------------------------------------------------------
  -- Variables
  ---------------------------------------------------------------------
  shared variable RESET : Integer;
begin --======================= Architecture ========================-- 
  ---------------------------------------------------------------------
  -- Process is used to initialize command 
  ---------------------------------------------------------------------
  RSTproc : process(RST_N)
  begin
    if not RST_N'STABLE and RST_N ='0' then
      RESET := 1;
    end if;
  end process;
  ---------------------------------------------------------------------
  -- Implements the parity generation and parity checking over the
  -- AD bus and C/BE bus.
  -- Also, generates the PERR_N signal, if the computed parity is not 
  -- equal with PAR signal, when PAR signal is generated by target
  ---------------------------------------------------------------------
  ParGen : process(CLK)
      variable PERR_N_TEMP : Std_Logic;
  begin
    if not CLK'STABLE and CLK = '0' then
       PAR <= parity_now after tdelay;      -- PAR ='1','0' or 'Z'
       PERR_N <= PERR_N_TEMP after tdelay ;
       SERR_N <= PERR_N_TEMP ;
       PAR_READ_TEMP <= parity_read ; 

       if parity_flag = true then
          PAR_READ_FLAG <= '1';
       else
          PAR_READ_FLAG <= '0';
       end if;
                  
       if PAR_READ_FLAG = '1' then   -- 
          if (PAR = PAR_READ_TEMP) then  -- MASTER sets PERR_N
             PERR_N <= '1' after tdelay;
          else 
             if PAR_READ_TEMP = 'Z' then
                PERR_N <= 'H' after tdelay;
             else          
                PERR_N <= '0' after tdelay;        
             end if;   
          end if;  
       else
         PERR_N <= 'H' after tdelay;       
       end if;       
    end if;
  end process;
  ---------------------------------------------------------------------
  -- MAIN PROCESS FOR MASTER                                                 --
  ---------------------------------------------------------------------
  MS32PCI_MAIN : process
     variable Data_array     : Data_buffer; --  data array
     variable data_last_read : Boolean;           
     variable irdy_start     : Integer; -- variable is actualize
     variable irdy_loop      : Integer;
     variable irdy_nr        : Integer; -- by command WAITC
     variable irdy_insert    : Boolean; -- assert or not IRDY_N
     ------------------------------------------------------------------
     -- Procedure is used to initialize MASTER and irdy_** variables --
     ------------------------------------------------------------------
     procedure Init is
     begin
        RESET := 0;
        AD_Bus   <= "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" ; -- Address and Data Bus
        C_BE_Bus <= "ZZZZ";            -- Command Bus
        PAR      <= 'Z';                      
        PERR_N   <= 'Z';
        REQ_N    <= 'H';
        SERR_N   <= 'H';   
         irdy_start := 0;                       -- number of IRDY state
         irdy_nr := 0;
         irdy_loop := 255;
         parity_flag <= false;
        if irdy_loop = 0 or irdy_nr = 0 then 
           irdy_insert := false;
        else
           irdy_insert := true;
        end if;          
     end Init;
     ------------------------------------------------------------------
     -- This procedure calculate parity of signals address_data(31..0) 
     -- and c_be(3..0) and return par_bit                      
     ------------------------------------------------------------------
     procedure PARITY(
        address_data : in    STD_LOGIC_VECTOR(31 downto 0); 
        c_be         : in    STD_LOGIC_VECTOR(3 downto 0);
        par_bit      : inout STD_LOGIC)   is  
     begin
        par_bit := '0';
        for I in 0 to 31 loop
            par_bit := par_bit xor address_data(I);
        end loop;

        for I in 0 to 3 loop
            par_bit := par_bit xor c_be(I);
        end loop;

        if (par_bit = 'X' or par_bit = 'U') then
          par_bit := 'Z';
        end if;
     end PARITY;
     --------------------------------------------------------------------------
     -- This procedure is used for READ_Bus and WRITE_Bus operation          --
     --------------------------------------------------------------------------
     procedure READ_WRITE(
        address : in STD_LOGIC_VECTOR(31 downto 0); -- address
        data    : in Data_buffer;                   -- data to write operation
        data_nr : in Integer;                       -- number of data DWORD(32 bit)
        bus_cmd : in STD_LOGIC_VECTOR(3 downto 0);  -- bus command
        bus_sel : in Data_Enable;                   -- C/BE lines
        rd_wr   : in STD_LOGIC)  is                 -- select read or write operation
          variable data_number : Integer;           -- number of data to read and write
          variable data_read   : Std_Logic_Vector(31 downto 0);   -- data read
          variable data_old    : Std_Logic_Vector(31 downto 0);   -- data read old
          variable stop        : Boolean;   -- internal variable (determined by STOP_N) 
          variable str8        : string(1 to 8);         
          variable Good2       : Boolean;
          variable nr_irdy     : Integer;   -- duration of IRDY pulse
          variable loop_irdy   : Integer;   -- position of IRDY pulse
          variable start_irdy  : Integer;   -- used for master-abord termination
          variable parity_temp : Std_Logic; -- internal variable
          variable trdy_stop   : Integer;   -- internal variable
          variable trdy_exit   : Boolean;   -- internal variable
     begin
        if GNT_N /= '1' then
           wait until FALLING_EDGE(CLK);           -- start cycle
        end if;   

        while (GNT_N /= '0' and GNT_N /= 'L') and (RESET = 0) loop
          wait until FALLING_EDGE(CLK);
           AD_Bus(31 downto 0) <= "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" after tdelay;
           C_BE_Bus(3 downto 0) <= "ZZZZ" after tdelay;  
           FRAME_N <= 'Z';-- after tdelay;                                  
           IRDY_N <= 'Z' after tdelay;
           parity_now <= 'Z' after tdelay;
           REQ_N <= '0' after tdelay;
        end loop;

        if (RESET = 0) then
        -- exit curent instruction if signal RST_N is active 
        -- GM
        --- acces to the bus has been granted
           data_number := data_nr;       -- number of DWORDs for transfer
           stop := false;                -- 
           start_irdy := 3;              -- 
           nr_irdy := irdy_nr;           -- actualize internal variable
           loop_irdy := irdy_loop;       -- --"--
           irdy_insert := true;          -- --"-- 
           trdy_stop := 8;               -- wait maximum 8 clock cycles for TRDY
           trdy_exit := false;

           if rd_wr = '1' then           -- READ /WRITE CYCLE
           --------------------------------------------------------------------
           -- BEGIN READ CYCLE                                               --
           --------------------------------------------------------------------
             -- address phase
             AD_Bus(31 downto 0) <= address(31 downto 0) after tdelay; -- set address  
             C_BE_Bus(3 downto 0) <= bus_cmd(3 downto 0) after tdelay; -- set command 
             FRAME_N <= '0';-- after tdelay;                                  
             IRDY_N <= '1' after tdelay;
             parity_flag <= false;
             parity_read <= 'Z' after tdelay;    
             -- calculate  parity of address cycle
             parity(address(31 downto 0), bus_cmd(3 downto 0), parity_temp);
             parity_now <= parity_temp;        

             if GNT_N'Last_Event <= tsetup then  -- GNT setup time violation ?
                report "GNT setup time violation"
                severity Warning;
             end if; 
            wait until FALLING_EDGE(CLK);        --  make turnarround cycle 
             -- GM
             REQ_N <= '1';
             -- END GM      
             IRDY_N <= '0' after tdelay;    

             AD_Bus(31 downto 0) <= "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" after tdelay;
             C_BE_Bus(3 downto 0) <= bus_sel(1) after tdelay;  
             parity_now <= 'Z';     
            wait until FALLING_EDGE(CLK);       -- end turnarround cycle              

            -- wait for DEVSEL_N = '0' 
            -- (implement MASTER-ABORT if TARGET is not responding)
               -- wait for the number of IRDY state
             while ((start_irdy > 0) and (DEVSEL_N = '1' or DEVSEL_N = 'H' or 
                DEVSEL_N = 'Z' or DEVSEL_N = 'X') ) loop
                start_irdy := start_irdy -1;   -- from the begining of read cycle
                AD_Bus(31 downto 0) <="ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" after tdelay;
                C_BE_Bus(3 downto 0) <= bus_sel(1) after tdelay;  
               wait until FALLING_EDGE(CLK);                       
             end loop;
             --- exit cycle if RST_N or STOP_N are active           
             if RESET =1 or STOP_N = '0' or STOP_N ='L' then       
                stop := true;                   -- exit cycle

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看国产一区二区| 亚洲福中文字幕伊人影院| 亚洲人123区| 国产一区在线观看麻豆| 欧美色男人天堂| 国产精品久久久久久久久免费丝袜 | 91在线播放网址| 欧美第一区第二区| 亚洲国产欧美在线| 99国产精品视频免费观看| 欧美不卡视频一区| 日产欧产美韩系列久久99| 91麻豆高清视频| 国产欧美精品一区二区色综合朱莉| 丝袜美腿亚洲综合| 欧美性受xxxx黑人xyx性爽| 国产精品久久午夜| 粉嫩绯色av一区二区在线观看 | 色网综合在线观看| 国产精品色哟哟| 成人永久aaa| 久久综合精品国产一区二区三区| 蜜臀av在线播放一区二区三区 | 精品久久久久久久久久久久久久久| 亚洲精品乱码久久久久久| 成人v精品蜜桃久久一区| 久久久午夜精品| 国产一区二区免费视频| 久久人人97超碰com| 九九九精品视频| 精品嫩草影院久久| 精东粉嫩av免费一区二区三区| 日韩欧美亚洲另类制服综合在线| 日本人妖一区二区| 日韩一区二区电影| 韩日精品视频一区| 国产欧美日韩综合| 91在线精品一区二区| 一区二区三区蜜桃| 欧美疯狂性受xxxxx喷水图片| 日韩精品色哟哟| 日韩精品综合一本久道在线视频| 美女视频免费一区| 久久久久久久性| 91在线视频在线| 天使萌一区二区三区免费观看| 91精品在线麻豆| 国产主播一区二区三区| 中文字幕精品—区二区四季| 91麻豆成人久久精品二区三区| 玉米视频成人免费看| 91精品午夜视频| 国产精品一区二区三区四区| 国产精品久久久久影院| 91福利在线看| 国内精品视频666| 亚洲欧美激情一区二区| 欧美男男青年gay1069videost| 蜜桃久久久久久| 欧美激情在线观看视频免费| 欧美又粗又大又爽| 激情综合一区二区三区| 国产精品色一区二区三区| 欧美性色黄大片| 国产专区欧美精品| 亚洲一区自拍偷拍| 久久久精品免费观看| 欧美在线一二三| 国产黄色精品网站| 亚洲成av人片| 亚洲国产岛国毛片在线| 欧美日韩黄色一区二区| 国产成人精品综合在线观看 | 伊人色综合久久天天| 69久久夜色精品国产69蝌蚪网 | 国产一区二区三区免费播放 | 久久99国产精品久久99果冻传媒| 国产精品嫩草影院av蜜臀| 欧美一区永久视频免费观看| 成人精品视频一区| 日本免费新一区视频| 亚洲激情网站免费观看| 久久久www成人免费毛片麻豆| 欧美视频在线观看一区| av一区二区三区在线| 麻豆精品国产91久久久久久| 一区二区三区在线观看欧美| 久久精品亚洲精品国产欧美| 欧美日韩成人综合| 在线观看不卡一区| a在线欧美一区| 国产精品亚洲一区二区三区妖精| 性久久久久久久久| 亚洲一区在线视频| 樱花影视一区二区| 日韩伦理电影网| 国产视频一区在线播放| 欧美精品一区二区三| 欧美激情在线看| 国产欧美一区二区三区沐欲| 精品国产一区二区三区久久久蜜月| 欧美视频在线观看一区二区| 91小视频免费看| 99久久婷婷国产综合精品电影| 国产精品1区2区3区| 韩国v欧美v亚洲v日本v| 免费成人美女在线观看.| 日韩电影一二三区| 日韩高清在线观看| 日韩高清一区在线| 免费成人av资源网| 捆绑调教美女网站视频一区| 奇米精品一区二区三区四区 | 色域天天综合网| 色天天综合久久久久综合片| 一本色道久久综合狠狠躁的推荐| jizzjizzjizz欧美| 91丨porny丨最新| 色综合网站在线| 在线观看欧美黄色| 91精品国产综合久久久蜜臀图片| 欧美日韩一级黄| 欧美一区二区在线观看| 欧美一区二区在线免费观看| 日韩美女一区二区三区四区| 精品国产乱码久久| 欧美国产禁国产网站cc| 亚洲精品伦理在线| 天天操天天综合网| 精品一区二区三区视频在线观看| 国产一区在线精品| 色综合久久88色综合天天6 | 丝袜美腿亚洲一区| 国产乱码精品一区二区三区av| 成人涩涩免费视频| 91福利视频久久久久| 6080国产精品一区二区| 久久嫩草精品久久久精品| 国产精品久久久久天堂| 亚洲国产日韩综合久久精品| 免费在线观看不卡| 成人精品在线视频观看| 欧美日韩在线精品一区二区三区激情| 69久久夜色精品国产69蝌蚪网| 久久精品人人做| 一区二区三区成人在线视频| 美女视频黄久久| 欧美一区二视频| 国产精品狼人久久影院观看方式| 一区二区三区欧美| 国模一区二区三区白浆| 色综合激情久久| 久久影院午夜论| 樱花影视一区二区| 国产精品一区在线观看乱码| 欧美视频一区二区三区四区| 久久精品一区二区三区不卡牛牛 | 国产精品理论片| 日韩电影在线看| 色综合久久99| 久久久91精品国产一区二区精品 | 天天综合网天天综合色| 成人精品视频一区二区三区 | 国产成人综合亚洲网站| 欧美性色综合网| 中文字幕制服丝袜一区二区三区| 日韩av不卡在线观看| 色综合天天综合色综合av | 亚洲影视在线播放| 国产成人av电影在线观看| 3d动漫精品啪啪一区二区竹菊| 国产精品毛片久久久久久久| 久久国产成人午夜av影院| 国产免费观看久久| 日本成人在线看| 717成人午夜免费福利电影| 亚洲综合激情另类小说区| 成人性生交大片免费| 2019国产精品| 免费观看30秒视频久久| 7777精品伊人久久久大香线蕉| 一区二区在线观看av| 国产成人高清在线| 久久久久久免费毛片精品| 久久99久久99| 日韩欧美一区二区三区在线| 亚洲r级在线视频| 欧美日韩在线三区| 亚洲精品老司机| 一本色道**综合亚洲精品蜜桃冫| 国产精品久久久久久久岛一牛影视| 激情五月激情综合网| 日韩一区二区三区电影在线观看 | 亚洲小说欧美激情另类| 91一区二区在线| 一区二区三区精品久久久| 91免费观看视频| 日韩理论片在线| 欧美在线视频不卡| 天天爽夜夜爽夜夜爽精品视频|