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

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

?? ide.vhd

?? xilinx fpga 下的IDE控制器原代碼,貢獻一起學習
?? VHD
字號:
--------------------------------------------------------------------
-- Company       : XESS Corp.
-- Engineer      : Dave Vanden Bout
-- Creation Date : 01/30/2006
-- Copyright     : 2006, XESS Corp
-- Tool Versions : WebPACK 6.3.03i
--
-- Description:
--    This is a simple design example that writes data to sectors 
--    on an IDE hard disk and then reads it back to verify it.
--
-- Revision:
--    1.0.0
--
-- Additional Comments:
--    1.0.0:
--        Initial release.
--
-- License:
--    This code can be freely distributed and modified as long as
--    this header is not removed.
--------------------------------------------------------------------


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
use WORK.common.all;
use WORK.mem.all;
use WORK.ata.all;
use WORK.debounce_pckg.all;


-- disk tester

entity ide is
  generic(
    BEG_ADDR      :       natural := 16#000000#;  -- beginning address
    END_ADDR      :       natural := 16#FFFFFF#;  -- ending address
    BEG_TEST      :       natural := 16#000000#;  -- beginning test range address
    END_TEST      :       natural := 16#01FFFF#  -- ending test range address
    );
  port(
    clk           : in    std_logic;    -- main clock input from external clock source
    rerun_test_n  : in    std_logic;    -- re-run the test when low
    dior_n        : out   std_logic;    -- disk read enable
    diow_n        : out   std_logic;    -- disk write enable
    dcs0_n        : out   std_logic;    -- disk command register block select
    dcs1_n        : out   std_logic;    -- disk control register block select
    da            : out   std_logic_vector(2 downto 0);  -- disk register address bus
    dd            : inout std_logic_vector(15 downto 0);  -- disk data bus
    dirq          : in    std_logic;    -- disk interrupt request
    dmack_n       : out   std_logic;    -- DMA acknowledge
    ethernet_cs_n : out   std_logic;    -- ethernet chip-enable
    flash_ce_n    : out   std_logic;    -- flash chip-enable
    status        : out   std_logic_vector(6 downto 0)  -- LED status indicator
    );
end ide;

architecture arch of ide is
  constant ADDR_WIDTH             : natural := log2(END_ADDR-BEG_ADDR+1);
  signal   rst                    : std_logic;  -- reset signal
  signal   rstCnt                 : unsigned(1 downto 0);  -- reset timer
  signal   memtest_reset          : std_logic;  -- re-run test
  signal   debounced_rerun_test_n : std_logic;
  signal   rd                     : std_logic;  -- host-side read control signal
  signal   wr                     : std_logic;  -- host-side write control signal
  signal   abort                  : std_logic;  -- abort current disk command
  signal   hAddr                  : std_logic_vector(ADDR_WIDTH-1 downto 0);  -- host address bus
  signal   hDIn                   : std_logic_vector(15 downto 0);  -- host-side data to disk
  signal   hDOut                  : std_logic_vector(15 downto 0);  -- host-side data from disk
  signal   done                   : std_logic;  -- disk operation complete indicator
  signal   dData                  : std_logic_vector(15 downto 0);  -- local disk data bus
  signal   outEnable              : std_logic;  -- enable local disk data bus to disk data bus
  signal   progress               : std_logic_vector(1 downto 0);  -- test progress indicator
  signal   err                    : std_logic;  -- test error flag
  signal   errbits                : std_logic_vector(dd'range);  -- shows data bits with errors
  signal   sector                 : std_logic_vector(7 downto 0);  -- current disk sector
  signal   cylinder               : std_logic_vector(15 downto 0);  -- current disk cylinder
  signal   head                   : std_logic_vector(3 downto 0);  -- current disk head

begin

  -- Disable the Ethernet controller so it can't interfere with the peripheral bus
  -- that is also used by the disk.
  ethernet_cs_n <= '1';

  -- Disable the flash chip
  flash_ce_n <= '1';

  -- debounce the signal that re-runs the disk write/read test
  u2 : debounce
    generic map(DEBOUNCE_CNT => 20_000_000)
    port map(clk             => clk, sig_in => rerun_test_n, sig_out => debounced_rerun_test_n);

  -- assert the reset for a few clock cycles after startup
  process(clk)
  begin
    if rising_edge(clk) then
      if rstCnt /= TO_UNSIGNED(1, rstCnt'length) then
        rst    <= '1';
        rstCnt <= rstCnt + 1;
      else
        rst    <= '0';                  -- remove reset
      end if;
    end if;
  end process;

  -- generic memory tester module
  memtest_reset <= rst or not debounced_rerun_test_n;
  u0 : memTest
    generic map(
      DATA_WIDTH => hDIn'length,
      ADDR_WIDTH => hAddr'length,
      BEG_TEST   => BEG_TEST,
      END_TEST   => END_TEST,
      STEP_SIZE  => 1
      )
    port map(
      clk        => clk,                -- master clock
      rst        => memtest_reset,      -- reset
      done       => done,               -- disk operation complete
      dIn        => hDOut,              -- host-side data from disk goes to memory tester
      rd         => rd,                 -- host-side disk read control from memory tester
      wr         => wr,                 -- host-side disk write control from memory tester
      abort      => abort,              -- memory tester requests abort of the current disk command
      addr       => hAddr,              -- host-side address from memory tester
      dOut       => hDIn,               -- host-side data to disk comes from memory tester
      progress   => progress,           -- current phase of memory test
      errbits    => errbits,            -- shows data bits with errors
      err        => err                 -- memory test error flag
      );

  -- Ignore the lower 8-bits of the host address from the memory tester
  -- because the 256 words in a sector are addressed sequentially.
  -- But use the next nine address bits to select the cylinder where
  -- the sector is located.
--  cylinder <= "000000000" & hAddr(23 downto 17);
--  head     <= hAddr(16 downto 13);
--  sector   <= "00" & hAddr(12 downto 8) & "0";
  cylinder(8 downto 0)  <= hAddr(16 downto 8);
  cylinder(15 downto 9) <= (others => '0');  -- zero the upper bits of the cylinder address

  -- disk interface
  u1 : ataCntl
    generic map(
      FREQ           => 100_000,        -- operating frequency in KHz
      SECTORS_PER_RW => 32
      )
    port map(
      -- host side
      clk            => clk,            -- master clock
      rst            => rst,            -- reset
      rd             => rd,             -- initiate read operation
      wr             => wr,             -- initiate write operation
      abort          => abort,          -- abort the current read/write operation
      done           => done,           -- read or write operation is done
--      head           => head,
--      cylinder       => cylinder,
--      sector         => sector,
      head           => x"0",           -- fix the disk head for data access
      cylinder       => cylinder,       -- cylinder for data access from memory tester
      sector         => x"05",          -- fix the sector for data access
      hDIn           => hDIn,           -- data from host       to disk
      hDOut          => hDOut,          -- data from disk to host
      status         => status,         -- diagnostic status for the operation          

      -- disk side
      dior_n    => dior_n,              -- disk register read-enable
      diow_n    => diow_n,              -- disk register write-enable
      cs0_n     => dcs0_n,              -- disk command block register select
      cs1_n     => dcs1_n,              -- disk control block register select
      da        => da(2 downto 0),      -- register address
      ddOut     => dData,               -- data to disk
      ddOutEnbl => outEnable,           -- enable data outputs to disk
      ddIn      => dd,                  -- data from disk
      intrq     => dirq,                -- interrupt request from disk
      dmack_n   => dmack_n              -- DMA cknowledge
      );

  -- Manage the databus during the various phases of the test.   
  dd <=
    -- tristate the disk databus when data is read from the disk during memory test read phase
    "ZZZZZZZZZZZZZZZZ"                when progress /= "11" and outEnable = '0' else
    -- drive the disk databus with data from the memory tester during memory test write phase
    dData                             when progress /= "11" and outEnable = '1' else
    -- display an "E" after the memory test completes if an error was detected
    "01111001" & errbits(15 downto 8) when progress = "11" and err = YES        else
    -- display an "O" after the memory test completes if no error was found
    "0011111100000000";

end arch;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久嫩草精品久久久精品| 国产毛片精品一区| 中文字幕av在线一区二区三区| 8x8x8国产精品| 欧美日韩大陆在线| 欧美疯狂性受xxxxx喷水图片| 欧美影院午夜播放| 欧美三级中文字幕在线观看| 欧美在线观看一二区| 欧美午夜精品一区二区三区 | 国产精品区一区二区三| 中文字幕久久午夜不卡| 国产精品入口麻豆九色| 日韩理论片网站| 亚洲综合激情网| 日本在线不卡视频一二三区| 麻豆精品国产传媒mv男同| 激情国产一区二区| 成人av中文字幕| 在线观看欧美日本| 欧美一级高清片| 欧美国产精品中文字幕| 中文字幕一区二区三区视频| 一区二区三区国产| 久久精品99久久久| 91丝袜美腿高跟国产极品老师 | 欧美综合一区二区| 91精品国产免费久久综合| 久久先锋影音av| 最好看的中文字幕久久| 亚洲成人激情av| 极品销魂美女一区二区三区| 成人免费视频一区| 欧美日韩亚洲不卡| 国产日产欧美一区二区三区| 亚洲一区二区av电影| 国模少妇一区二区三区| 欧美亚洲国产一区在线观看网站| 欧美一级在线视频| 亚洲男人天堂av| 国产伦精品一区二区三区视频青涩| 成人av在线资源网| 精品久久久久久最新网址| 一区二区三区日韩精品视频| 精品一区二区精品| 在线观看成人免费视频| 国产精品天干天干在观线| 日韩av中文在线观看| 色综合久久久网| 日本一区二区三区四区 | 精品av久久707| 亚洲精品高清视频在线观看| 国产一区二区三区视频在线播放| 欧美视频自拍偷拍| 亚洲免费成人av| 国产91丝袜在线播放0| 91精品国产综合久久国产大片| 国产精品午夜免费| 国产酒店精品激情| 日韩欧美国产不卡| 日韩电影网1区2区| 欧美日韩精品三区| 一区二区三区在线视频播放| 国产激情一区二区三区| 精品欧美久久久| 婷婷中文字幕一区三区| 欧美色精品天天在线观看视频| 最新国产成人在线观看| 99久久久无码国产精品| 国产精品色呦呦| 成人高清伦理免费影院在线观看| 国产清纯白嫩初高生在线观看91 | 精品一区二区三区视频在线观看| 欧美日韩国产乱码电影| 一区二区三区在线免费观看 | 亚洲一区二区在线视频| 成人禁用看黄a在线| 中文字幕第一区| 成av人片一区二区| 亚洲欧美国产毛片在线| 色吧成人激情小说| 亚洲在线视频一区| 欧美日韩久久一区| 日本aⅴ亚洲精品中文乱码| 6080日韩午夜伦伦午夜伦| 亚洲va欧美va人人爽| 欧美精品少妇一区二区三区| 日韩国产成人精品| 欧美精品一区在线观看| 处破女av一区二区| 亚洲欧美日韩一区| 欧美三级电影网| 奇米一区二区三区av| 久久久久久久久久美女| 成人app在线观看| 亚洲精品乱码久久久久久黑人 | 1024成人网色www| 一本色道久久加勒比精品| 亚洲综合色婷婷| 欧美肥胖老妇做爰| 久久国产精品一区二区| 日本一区二区三区在线不卡| 91国偷自产一区二区使用方法| 午夜精品123| 久久久一区二区三区捆绑**| av在线一区二区三区| 亚洲成人自拍网| 精品福利视频一区二区三区| 99久久久免费精品国产一区二区| 午夜国产精品影院在线观看| 国产午夜精品一区二区三区视频 | 亚洲综合一二区| 精品国产亚洲一区二区三区在线观看 | 欧美精品一区二区高清在线观看| 春色校园综合激情亚洲| 香蕉成人伊视频在线观看| 久久众筹精品私拍模特| 91久久香蕉国产日韩欧美9色| 日韩精品一区第一页| 欧美国产禁国产网站cc| 91精品欧美久久久久久动漫| a亚洲天堂av| 国内精品免费在线观看| 亚洲一区影音先锋| 国产精品久久福利| 91精品黄色片免费大全| 99精品视频一区二区| 麻豆成人av在线| 亚洲国产精品一区二区久久恐怖片 | 色欧美乱欧美15图片| 国产真实精品久久二三区| 亚洲国产欧美一区二区三区丁香婷| 日本一区二区三区在线不卡 | 国产一区二区三区免费播放| 亚洲天堂久久久久久久| 精品日韩99亚洲| 在线不卡免费欧美| 色哟哟一区二区| 99久久国产综合色|国产精品| 久久99热99| 男女激情视频一区| 午夜伊人狠狠久久| 亚洲国产另类av| 亚洲一二三专区| 亚洲电影在线播放| 亚洲日本在线观看| 中文字幕在线不卡一区二区三区| 久久综合狠狠综合久久激情 | 国产精品18久久久久久久久久久久 | 91蝌蚪国产九色| 高清不卡在线观看| 国产91富婆露脸刺激对白| 极品少妇一区二区三区精品视频 | 日本一区二区久久| 欧美国产乱子伦| 国产精品女同互慰在线看| 日本一区二区三区免费乱视频 | 欧美美女直播网站| 欧美日韩专区在线| 欧美性感一类影片在线播放| 色88888久久久久久影院按摩| av午夜一区麻豆| 色综合久久综合网欧美综合网| 91免费版pro下载短视频| 91啪在线观看| 欧美专区日韩专区| 欧美精品久久99久久在免费线| 欧美久久久久久蜜桃| 欧美精品在线观看播放| 日韩女优av电影| 国产三级一区二区| 亚洲欧美日韩中文字幕一区二区三区| 亚洲三级久久久| 日韩国产精品大片| 国产一区91精品张津瑜| 97se亚洲国产综合自在线不卡| 97久久精品人人做人人爽50路| 在线精品国精品国产尤物884a| 欧美精品电影在线播放| 久久嫩草精品久久久精品| 中文字幕一区二区三区不卡| 亚洲精品国产精品乱码不99 | 中文幕一区二区三区久久蜜桃| 亚洲免费在线看| 日韩av电影一区| 国产91丝袜在线播放九色| 日本韩国一区二区| 欧美大片拔萝卜| 亚洲欧美日韩精品久久久久| 偷窥国产亚洲免费视频| 国产成人在线影院| 8v天堂国产在线一区二区| 国产婷婷精品av在线| 日韩影视精彩在线| a美女胸又www黄视频久久| 精品三级在线观看| 亚洲国产精品一区二区www| 国产精品1024| 91精品国产一区二区三区蜜臀| 综合久久国产九一剧情麻豆|