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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? uart_int_tb.vhd

?? 利用VHDL語言開發(fā)一個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

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美高清在线| 成人av第一页| 国产电影一区在线| 91亚洲国产成人精品一区二三| 色噜噜偷拍精品综合在线| 欧美揉bbbbb揉bbbbb| 精品久久久久99| 国产精品视频一二| 午夜婷婷国产麻豆精品| 国产美女精品在线| 在线观看日韩高清av| 久久嫩草精品久久久精品一| 亚洲青青青在线视频| 日本aⅴ亚洲精品中文乱码| 国产福利不卡视频| 欧美日韩大陆一区二区| 国产亚洲欧美在线| 亚洲电影你懂得| 国产成人午夜视频| 欧美高清精品3d| 国产精品人人做人人爽人人添 | 菠萝蜜视频在线观看一区| 91豆麻精品91久久久久久| 欧美美女一区二区三区| 国产欧美精品国产国产专区| 亚洲成国产人片在线观看| 大白屁股一区二区视频| 欧美精品在线一区二区| 亚洲天堂网中文字| 激情小说欧美图片| 欧美午夜一区二区三区| 国产欧美精品一区二区三区四区| 日本不卡视频一二三区| 色域天天综合网| 欧美精品一区二区精品网| 亚洲成人动漫在线观看| jlzzjlzz亚洲日本少妇| 久久精品人人做| 蜜臂av日日欢夜夜爽一区| 欧美无砖专区一中文字| 日本一二三四高清不卡| 国产在线视频一区二区| 717成人午夜免费福利电影| 亚洲精品免费在线| 成人美女视频在线观看| 欧美xxxxxxxx| 日韩中文字幕亚洲一区二区va在线| 99国产一区二区三精品乱码| 久久免费电影网| 麻豆国产欧美一区二区三区| 69av一区二区三区| 亚洲成人激情自拍| 在线日韩国产精品| 亚洲日本电影在线| a美女胸又www黄视频久久| 久久久欧美精品sm网站| 狂野欧美性猛交blacked| 91精选在线观看| 午夜视频一区在线观看| 欧美日韩久久一区| 亚洲一区av在线| 在线观看www91| 一区二区三区免费观看| 日本韩国欧美一区| 亚洲激情av在线| 色婷婷av一区| 亚洲精品日韩综合观看成人91| 97久久精品人人做人人爽| 中文字幕在线观看不卡| www.日本不卡| 亚洲欧美另类综合偷拍| 91福利精品视频| 亚洲国产精品久久久久婷婷884| 日本高清不卡视频| 亚洲一区免费观看| 欧美群妇大交群中文字幕| 欧美性受xxxx| 国产欧美一区二区精品秋霞影院 | 99视频精品在线| 国产精品三级av| www.亚洲色图.com| 亚洲精品国产成人久久av盗摄| 91免费国产在线| 亚洲欧美日韩国产综合| 欧洲av一区二区嗯嗯嗯啊| 午夜激情综合网| 欧美一区二区三区系列电影| 久久国产精品99精品国产| 欧美精品一区二区三区蜜桃| 国产成人精品免费网站| 国产精品对白交换视频 | 午夜日韩在线观看| 日韩欧美一卡二卡| 国产毛片一区二区| 中国色在线观看另类| 99久久精品国产毛片| 亚洲一区在线观看视频| 欧美一卡2卡三卡4卡5免费| 国内精品久久久久影院一蜜桃| 欧美经典一区二区| 色欧美乱欧美15图片| 日韩电影在线一区二区| 2020国产精品自拍| 91视频在线观看| 日韩精品成人一区二区三区| 精品第一国产综合精品aⅴ| 成人爽a毛片一区二区免费| 一区二区三区在线免费观看 | 狠狠色综合播放一区二区| 欧美国产精品一区| 欧美手机在线视频| 精品影院一区二区久久久| 国产精品对白交换视频| 欧美绝品在线观看成人午夜影视| 国产真实乱对白精彩久久| 1024国产精品| 日韩免费高清电影| 91色综合久久久久婷婷| 午夜不卡av在线| 国产丝袜欧美中文另类| 欧美午夜精品久久久久久超碰| 美脚の诱脚舐め脚责91| 亚洲欧美日韩人成在线播放| 精品国产一区二区三区四区四 | 亚洲综合一区二区三区| 日韩精品一区二区三区在线观看| 成人av网站在线观看免费| 热久久免费视频| 亚洲欧美自拍偷拍色图| 欧美一区二区三区四区五区| www.av精品| 激情综合一区二区三区| 一区二区成人在线视频| 久久网这里都是精品| 欧美日韩一区国产| 丁香天五香天堂综合| 日韩av电影免费观看高清完整版| 国产精品狼人久久影院观看方式| 日韩亚洲电影在线| 91久久精品日日躁夜夜躁欧美| 国产一二三精品| 免费人成网站在线观看欧美高清| 亚洲人成7777| 国产欧美日产一区| 日韩视频一区二区三区| 在线观看www91| 99精品国产99久久久久久白柏| 国内精品久久久久影院色| 亚洲成人动漫在线观看| 亚洲免费在线看| 欧美激情综合五月色丁香| 91精品婷婷国产综合久久| 色欧美日韩亚洲| 97超碰欧美中文字幕| 国产精品白丝jk白祙喷水网站 | 欧美精品一区二区三区蜜桃| 欧美日韩国产精选| 色嗨嗨av一区二区三区| 成人精品视频一区二区三区尤物| 日韩高清中文字幕一区| 亚洲国产精品久久不卡毛片| ...xxx性欧美| 国产精品毛片a∨一区二区三区| wwwwww.欧美系列| 日韩一级大片在线观看| 4438亚洲最大| 欧美猛男gaygay网站| 欧日韩精品视频| 91久久精品一区二区三| 日本大香伊一区二区三区| 一本大道久久a久久综合婷婷| 成人午夜视频网站| 成人免费高清视频| 丁香激情综合五月| 成人18精品视频| 成人av资源站| aaa亚洲精品| 99久久精品国产观看| www.欧美日韩| 91麻豆视频网站| 日本久久电影网| 欧美日韩午夜影院| 911精品国产一区二区在线| 欧美日韩卡一卡二| 欧美一区二区三区啪啪| 日韩视频不卡中文| 日韩精品一区二区三区视频播放| 欧美一区二区私人影院日本| 欧美一级艳片视频免费观看| 欧美一二三区在线| 精品免费国产一区二区三区四区| 精品福利一区二区三区| 久久伊人蜜桃av一区二区| 国产日韩欧美精品电影三级在线 | 一本大道av一区二区在线播放| 91在线porny国产在线看| 色呦呦日韩精品| 欧美日韩国产首页| 欧美sm美女调教| 国产欧美一区二区在线|