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

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

?? uart_int_tb.vhd

?? UART參考設計
?? VHD
?? 第 1 頁 / 共 3 頁
字號:
  end process SIN_proc;

-----------------------------------------------------------------------
-- Test UART Transmitter/Receiver Functions
-----------------------------------------------------------------------
  UART_Stim_Proc : process
    variable i : integer;
  begin

    -- Reset and Intialization
    MR <= '1';

    CS <= '0';
    ADSn <= '1';
    A <= "111";
    DIN <= "11111111";

    CTSn <= '1';
    DCDn <= '1';
    DSRn <= '1';
    RIn  <= '1';

    wait for (9.5*CLK_PERIOD + 3 ns);

    MR <= '0';

    wait for (0.5*CLK_PERIOD - 3 ns);


    -- Test 1 ----------------------------------------------------
    --   Receiver Line Status Interrupt test
    if not EOT then
       wait until EOT;
    end if;
    TestID <= 1;
    
    -- IER Intialization
    --   bit 3 : 0, disable modem status interrupt
    --   bit 2 : 1, enable receiver line status interrupt
    --   bit 1 : 0, disable tranmitter holding register empty interrupt
    --   bit 0 : 0, disable received data available interrupt
    write_reg (IER,"00000100",CS,ADSn,WRn,A,DIN);

    -- LCR Intialization
    --   bit 6 : 0, do not set break
    --   bit 5 : 0, not stick parity
    --   bit 4 : 0, even parity selected
    --   bit 3 : 0, parity enabled
    --   bit 2 : 0, 1 stop bit
    --   bit 1 : 1, 8 data bit (bit[1-0]="11")
    --   bit 0 : 1, 8 data bit (bit[1-0]="11")
    write_reg (LCR,"00000011",CS,ADSn,WRn,A,DIN);

    -- trigger okToReceiveSIN to get character from SIN
    okToReceiveSIN <= '1',
                      '0' after 1 ns;

    -- Wait for INTR high
    i := 1;
    loop
      if (i < WAIT_TIMEOUT) then
        wait for CLK_PERIOD;
        exit when INTR = '1';
        i := i + 1;
      else
        assert (false) report"Interrupt Generation Failed"
        severity failure;
      end if;
    end loop;

    -- Check if INTR is pending due to Overrun
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000110"
      report"Invalid IIR"
      severity failure;

    -- Read and check LSR (check if "Overrun Error" flag at bit 1 is set)
    read_reg (LSR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "01100011"
      report"Invalid LSR"
      severity failure;

    -- Check if INTR is low
    -- Overrun Error Interrupt should be reset after reading LSR
    assert INTR = '0'
      report"Interrupt not negated"
      severity failure;

    -- Read and check LSR (check if "Overrun Error" flag at bit 1 is cleared)
    read_reg (LSR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "01100001"
      report"Invalid LSR"
      severity failure;

    -- Read and check RBR
    read_reg (RBR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "01010110"
      report"Invalid RBR"
      severity failure;

    -- Read and check LSR (check if "Data Ready" flag at bit 0 is cleared)
    read_reg (LSR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "01100000"
      report"Invalid LSR"
      severity failure;

    -- Read and check RBR
    read_reg (RBR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "01010110"
      report"Invalid RBR"
      severity failure;


    -- Test 2 ----------------------------------------------------
    --   Level 2 interrupt test
    --   Receiver Data Available Interrupt test
    if not EOT then
       wait until EOT;
    end if;
    TestID <= 2;
    
    -- IER Intialization
    --   bit 3 : 0, disable modem status interrupt
    --   bit 2 : 0, disable receiver line status interrupt
    --   bit 1 : 0, disable tranmitter holding register empty interrupt
    --   bit 0 : 1, enable received data available interrupt
    write_reg (IER,"00000001",CS,ADSn,WRn,A,DIN);

    -- LCR Intialization
    --   bit 6 : 0, do not set break
    --   bit 5 : 0, not stick parity
    --   bit 4 : 1, even parity selected
    --   bit 3 : 1, parity enabled
    --   bit 2 : 0, 1 stop bit
    --   bit 1 : 1, 8 data bit (bit[1-0]="11")
    --   bit 0 : 1, 8 data bit (bit[1-0]="11")
    write_reg (LCR,"00011011",CS,ADSn,WRn,A,DIN);

    -- trigger okToReceiveSIN to get character from SIN
    okToReceiveSIN <= '1',
                      '0' after 1 ns;

    -- Wait for INTR high
    i := 1;
    loop
      if (i < WAIT_TIMEOUT) then
        wait for CLK_PERIOD;
        exit when INTR = '1';
        i := i + 1;
      else
        assert (false) report"Interrupt Generation Failed"
        severity failure;
      end if;
    end loop;

    -- Check if INTR is pending due to Receiver Data Available
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000100"
      report"Invalid IIR"
      severity failure;

    -- Read and Check LSR (check if "Data Ready" flag at bit 0 is set)
    read_reg (LSR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack(0) = '1'
      report"Receiver Data Ready bit in LSR is not set"
      severity failure;

    -- Check if IIR is not changed due to LSR read
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000100"
      report"Invalid IIR"
      severity failure;

    -- Read and check RBR
    read_reg (RBR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "10010010"
      report"Invalid RBR"
      severity failure;

    -- Check if INTR is reset due to RBR read
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000001"
      report"Invalid IIR"
      severity failure;

    -- Read and check LSR (check if "Data Ready" flag at bit 0 is cleared)
    read_reg (LSR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "01100000"
      report"Invalid LSR"
      severity failure;

    -- Wait for INTR high
    i := 1;
    loop
      if (i < WAIT_TIMEOUT) then
        wait for CLK_PERIOD;
        exit when INTR = '1';
        i := i + 1;
      else
        assert (false) report"Interrupt Generation Failed"
        severity failure;
      end if;
    end loop;

    -- Check if INTR is pending due to Receiver Data Available
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000100"
      report"Invalid IIR"
      severity failure;

    -- Read and Check LSR (check if "Data Ready" flag at bit 0 is set)
    read_reg (LSR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack(0) = '1'
      report"Receiver Data Ready bit in LSR is not set"
      severity failure;

    -- Check if IIR is not changed due to LSR read
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000100"
      report"Invalid IIR"
      severity failure;

    -- Read and check RBR
    read_reg (RBR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "10010011"
      report"Invalid RBR"
      severity failure;

    -- Check if INTR is reset due to RBR read
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000001"
      report"Invalid IIR"
      severity failure;

    -- Read and check LSR (check if "Data Ready" flag at bit 0 is cleared)
    read_reg (LSR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "01100000"
      report"Invalid LSR"
      severity failure;


    -- Test 3 ----------------------------------------------------
    --   Level 3 interrupt test
    --   Transmitter Holding Register Empty Interrupt test
    if not EOT then
       wait until EOT;
    end if;
    TestID <= 3;
    
    -- IER Intialization
    --   bit 3 : 0, disable modem status interrupt
    --   bit 2 : 0, disable receiver line status interrupt
    --   bit 1 : 1, enable tranmitter holding register empty interrupt
    --   bit 0 : 0, disable received data available interrupt
    write_reg (IER,"00000010",CS,ADSn,WRn,A,DIN);

    -- LCR Intialization
    --   bit 6 : 0, do not set break
    --   bit 5 : 0, not stick parity
    --   bit 4 : 0, odd parity selected
    --   bit 3 : 1, parity enabled
    --   bit 2 : 0, 1 stop bit
    --   bit 1 : 1, 8 data bit (bit[1-0]="11")
    --   bit 0 : 1, 8 data bit (bit[1-0]="11")
    write_reg (LCR,"00001011",CS,ADSn,WRn,A,DIN);

    -- Wait for INTR high
    i := 1;
    loop
      if (i < WAIT_TIMEOUT) then
        wait for CLK_PERIOD;
        exit when INTR = '1';
        i := i + 1;
      else
        assert (false) report"Interrupt Generation Failed"
        severity failure;
      end if;
    end loop;

    -- Check if INTR is pending due to THR empty
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000010"
      report"Invalid IIR"
      severity failure;

    -- Write data into THR, 1st time
    write_reg (THR,"00010001",CS,ADSn,WRn,A,DIN);
    wait for (8*CLK_PERIOD); -- wait longer for data to transfer from THR to TSR

    -- Write data into THR, 2nd time
    write_reg (THR,"00100010",CS,ADSn,WRn,A,DIN);

    -- Check if INTR is reset due to THR write
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000001"
      report"Invalid IIR"
      severity failure;

    -- Check if INTR is low
    assert INTR = '0'
      report"Interrupt not negated"
      severity failure;

    -- Wait for INTR high
    i := 1;
    loop
      if (i < WAIT_TIMEOUT) then
        wait for CLK_PERIOD;
        exit when INTR = '1';
        i := i + 1;
      else
        assert (false) report"Interrupt Generation Failed"
        severity failure;
      end if;
    end loop;

    -- Check if 2nd INTR is pending due to THR empty
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000010"
      report"Invalid IIR"
      severity failure;

    -- Write data into THR, 3nd time
    write_reg (THR,"00110011",CS,ADSn,WRn,A,DIN);
    
    -- Clear IER
    write_reg (IER,"00000000",CS,ADSn,WRn,A,DIN);


    -- Test 4 ----------------------------------------------------
    --   Level 4 interrupt test
    --   MODEM Status Interrupt test
    if not EOT then
       wait until EOT;
    end if;
    TestID <= 4;
    
    -- IER Intialization
    --   bit 3 : 1, enable modem status interrupt
    --   bit 2 : 0, disable receiver line status interrupt
    --   bit 1 : 0, disable tranmitter holding register empty interrupt
    --   bit 0 : 0, disable received data available interrupt
    write_reg (IER,"00001000",CS,ADSn,WRn,A,DIN);

    -- LCR Intialization
    --   bit 6 : 0, do not set break
    --   bit 5 : 0, not stick parity
    --   bit 4 : 0, odd parity selected
    --   bit 3 : 1, parity enabled
    --   bit 2 : 0, 1 stop bit
    --   bit 1 : 1, 8 data bit (bit[1-0]="11")
    --   bit 0 : 1, 8 data bit (bit[1-0]="11")
    write_reg (LCR,"00001011",CS,ADSn,WRn,A,DIN);

    -- Check if INTR is currently reset to show no interrupt pending
    read_reg (IIR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    intLevel <= conv_integer(regData_readBack(2 downto 1));
    assert regData_readBack = "00000001"
      report"Invalid IIR"
      severity failure;

    -- Read MSR and check
    read_reg (MSR,regData_readBack,CS,ADSn,RDn,A,DOUT);
    assert regData_readBack = "00000000"
      report"Invalid MSR"
      severity failure;

    CTSn <= '0'; -- MODEM signal changed

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
k8久久久一区二区三区| 欧美精品一区二| 精品国产91乱码一区二区三区 | 欧美一区二区在线免费播放| 久久久久成人黄色影片| 性久久久久久久| 91网址在线看| 国产精品美女一区二区三区| 捆绑变态av一区二区三区| 色综合视频一区二区三区高清| 日韩精品一区二区在线观看| 亚洲第一精品在线| 色综合久久久久久久久久久| 久久久99精品免费观看不卡| 奇米精品一区二区三区在线观看| 欧美视频一区二区| 亚洲卡通欧美制服中文| 成年人国产精品| 国产日韩欧美不卡在线| 激情综合网av| 精品国产成人系列| 理论片日本一区| 欧美一卡在线观看| 视频精品一区二区| 欧美日韩国产123区| 亚洲影院久久精品| 欧美视频一区二区三区| 一区二区三区精品在线| 色偷偷久久一区二区三区| 亚洲精选在线视频| 欧美影视一区二区三区| 亚洲一区二区综合| 欧美日韩精品三区| 毛片一区二区三区| 欧美成人精品二区三区99精品| 欧美aaa在线| 精品国产一区二区三区四区四| 视频一区视频二区中文| 日韩免费视频一区| 国内外成人在线| 中文字幕精品一区二区三区精品 | 精品国产青草久久久久福利| 国产一区二区三区| 欧美激情一区三区| 欧美亚洲日本国产| 亚洲国产乱码最新视频| 日韩一区二区在线观看视频播放| 韩国av一区二区三区在线观看| 久久久久久久久97黄色工厂| 成人禁用看黄a在线| 亚洲精品乱码久久久久久黑人| 欧美三级在线视频| 男人的j进女人的j一区| 久久久精品欧美丰满| 色综合天天性综合| 天天综合日日夜夜精品| 久久综合色8888| 91蝌蚪porny| 麻豆精品精品国产自在97香蕉| 国产无人区一区二区三区| 91蝌蚪国产九色| 老司机精品视频在线| 国产清纯白嫩初高生在线观看91 | 成人av网站免费| 日韩综合小视频| 国产欧美精品一区aⅴ影院 | 亚洲精品在线三区| 91老司机福利 在线| 久久国产精品露脸对白| 玉足女爽爽91| 久久久久久99久久久精品网站| 91国产精品成人| 国产大陆亚洲精品国产| 亚洲国产精品久久久男人的天堂| 精品成人一区二区三区| 色8久久精品久久久久久蜜| 国产一区二区三区在线观看免费 | 精品视频一区二区不卡| 国产.欧美.日韩| 偷拍一区二区三区| 亚洲男人的天堂在线aⅴ视频| 精品久久久久一区| 欧美猛男男办公室激情| 91在线国产福利| 国产成人亚洲综合色影视| 水蜜桃久久夜色精品一区的特点 | 波多野结衣在线aⅴ中文字幕不卡| 日韩专区在线视频| 一区二区三区视频在线看| 精品国产免费人成电影在线观看四季| 在线免费观看日本一区| av成人免费在线| 国产成人在线免费| 国产一区二区三区精品视频| 日韩一区精品视频| 亚洲国产成人tv| 亚洲精品中文在线影院| 亚洲欧美另类久久久精品2019| 久久青草欧美一区二区三区| 日韩精品自拍偷拍| 日韩欧美国产综合| 欧美一区二区人人喊爽| 欧美日韩视频在线一区二区 | 五月天激情综合网| 亚洲免费在线视频一区 二区| 国产女人水真多18毛片18精品视频| 亚洲精品在线观看视频| 日韩美女在线视频| 精品久久久久香蕉网| 久久综合久久综合久久综合| 日韩欧美国产电影| 日韩欧美色综合| 日韩精品中文字幕在线不卡尤物| 欧美一区二区三区在线| 欧美妇女性影城| 日韩一级免费观看| 欧美成人一区二区三区在线观看| 日韩精品中文字幕在线一区| 日韩一区二区麻豆国产| 国产欧美精品区一区二区三区| 久久精品人人做| 亚洲欧美综合色| 亚洲激情图片小说视频| 亚洲图片一区二区| 天天射综合影视| 激情综合色丁香一区二区| 国内精品第一页| 99在线视频精品| 欧美日韩一区二区三区四区 | 蜜桃视频一区二区三区| 奇米亚洲午夜久久精品| 国产高清无密码一区二区三区| 国产a视频精品免费观看| 色婷婷激情一区二区三区| 欧美人妖巨大在线| 精品精品国产高清a毛片牛牛| 国产欧美一区二区精品仙草咪| 亚洲欧美自拍偷拍色图| 日韩国产欧美在线播放| 精品一区二区三区日韩| 成人福利电影精品一区二区在线观看| 99精品黄色片免费大全| 在线播放日韩导航| 中文字幕不卡的av| 天天综合天天做天天综合| 国产一区美女在线| 在线免费一区三区| 久久综合成人精品亚洲另类欧美 | |精品福利一区二区三区| 亚洲小少妇裸体bbw| 国产精品伊人色| 色婷婷久久一区二区三区麻豆| 欧美一区二区三区在线观看| 日韩美女视频19| 国精品**一区二区三区在线蜜桃| 91免费视频网| 精品电影一区二区| 樱桃国产成人精品视频| 久久电影国产免费久久电影 | 亚洲精品乱码久久久久久久久| 日日嗨av一区二区三区四区| 99精品欧美一区| 精品国产精品网麻豆系列| 亚洲1区2区3区4区| 91亚洲国产成人精品一区二三| 精品久久一二三区| 亚洲国产精品一区二区尤物区| 成人国产精品免费观看| 日韩欧美久久一区| 午夜欧美在线一二页| 色综合咪咪久久| 国产精品毛片久久久久久久| 久久精品国产**网站演员| 欧美日韩国产免费| 亚洲三级在线免费观看| 国产乱淫av一区二区三区 | 中文字幕欧美日本乱码一线二线| 免费成人在线影院| 欧美日韩国产一级片| 一区二区三区欧美日韩| 成人av高清在线| 中文字幕国产一区二区| 韩国中文字幕2020精品| 日韩视频一区在线观看| 午夜不卡在线视频| 欧美色中文字幕| 亚洲成人av一区二区三区| 欧美三级三级三级| 亚洲18影院在线观看| 欧美三级电影精品| 亚洲一二三级电影| 欧美精品色综合| 日本伊人精品一区二区三区观看方式 | 蜜桃av一区二区| 欧美一区二区三区思思人| 天堂影院一区二区| 欧美日本一道本| 狠狠色丁香婷婷综合| 日韩欧美在线网站| 看国产成人h片视频|