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

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

?? tb_mc8051_alu_sim.vhd

?? mc8051內核,VHDL程序,內有說明,超詳細.
?? VHD
?? 第 1 頁 / 共 4 頁
字號:
---------------------------------------------------------------------------------                                                                           ----          X       X   XXXXXX    XXXXXX    XXXXXX    XXXXXX      X          ----          XX     XX  X      X  X      X  X      X  X           XX          ----          X X   X X  X         X      X  X      X  X          X X          ----          X  X X  X  X         X      X  X      X  X         X  X          ----          X   X   X  X          XXXXXX   X      X   XXXXXX      X          ----          X       X  X         X      X  X      X         X     X          ----          X       X  X         X      X  X      X         X     X          ----          X       X  X      X  X      X  X      X         X     X          ----          X       X   XXXXXX    XXXXXX    XXXXXX    XXXXXX      X          ----                                                                           ----                                                                           ----                       O R E G A N O   S Y S T E M S                       ----                                                                           ----                            Design & Consulting                            ----                                                                           -----------------------------------------------------------------------------------                                                                           ----         Web:           http://www.oregano.at/                             ----                                                                           ----         Contact:       mc8051@oregano.at                                  ----                                                                           -----------------------------------------------------------------------------------                                                                           ----  MC8051 - VHDL 8051 Microcontroller IP Core                               ----  Copyright (C) 2001 OREGANO SYSTEMS                                       ----                                                                           ----  This library is free software; you can redistribute it and/or            ----  modify it under the terms of the GNU Lesser General Public               ----  License as published by the Free Software Foundation; either             ----  version 2.1 of the License, or (at your option) any later version.       ----                                                                           ----  This library is distributed in the hope that it will be useful,          ----  but WITHOUT ANY WARRANTY; without even the implied warranty of           ----  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU        ----  Lesser General Public License for more details.                          ----                                                                           ----  Full details of the license can be found in the file LGPL.TXT.           ----                                                                           ----  You should have received a copy of the GNU Lesser General Public         ----  License along with this library; if not, write to the Free Software      ----  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  ----                                                                           ---------------------------------------------------------------------------------------         Author:                 Roland H鰈ler----         Filename:               tb_mc8051_alu_sim.vhd----         Date of Creation:       Mon Aug  9 12:14:48 1999----         Version:                $Revision: 1.4 $----         Date of Latest Version: $Date: 2002/01/07 12:16:57 $------         Description: Module level testbench for the mc8051 alu.---------------------------------------------------------------------------------------architecture sim of tb_mc8051_alu is  -----------------------------------------------------------------------------  --                                                                         --  --  IMAGE - Convert a special data type to string                          --  --                                                                         --  --  This function uses the STD.TEXTIO.WRITE procedure to convert different --  --  VHDL data types to a string to be able to output the information via   --  --  a report statement to the simulator.                                   --  --  (VHDL'93 provides a dedicated predefinded attribute 'IMAGE)            --  -----------------------------------------------------------------------------  function IMAGE (constant tme : time) return string is    variable v_line : line;    variable v_tme  : string(1 to 20) := (others => ' ');  begin    write(v_line, tme);    v_tme(v_line.all'range) := v_line.all;    deallocate(v_line);    return v_tme;  end IMAGE;  function IMAGE (constant nmbr : integer) return string is    variable v_line : line;    variable v_nmbr  : string(1 to 11) := (others => ' ');  begin    write(v_line, nmbr);    v_nmbr(v_line.all'range) := v_line.all;    deallocate(v_line);    return v_nmbr;  end IMAGE;  -----------------------------------------------------------------------------    -----------------------------------------------------------------------------  --                                                                         --  --  PROC_DA - Test the combinational decimal adjustement command           --  --                                                                         --  --  Procedure to generate all the input data to test the combinational     --  --  divider command. Furthermore the results are compared with the         --  --  expected values and the simulation is stopped with an error message    --  --  if the test failes.                                                    --  -----------------------------------------------------------------------------  procedure PROC_DA (    constant DWIDTH     : in  integer;    constant PROP_DELAY : in  time;    signal   s_datao    : out std_logic_vector;    signal   s_cy       : out std_logic_vector;    signal   s_datai    : in  std_logic_vector;    signal   s_cyi      : in  std_logic_vector;    signal   s_da_end   : out boolean) is    type t_nibbles is array (0 to ((DWIDTH-1)/4)) of integer;    variable v_flags     : std_logic_vector((DWIDTH-1)/4 downto 0);    variable v_flags_int : std_logic_vector((DWIDTH-1)/4 downto 0);    variable v_newdata   : std_logic_vector(DWIDTH-1 downto 0);    variable v_tmp       : integer;    variable v_cy        : std_logic;    variable v_ext       : boolean;  begin    s_da_end <= false;    s_datao <= conv_std_logic_vector(0,DWIDTH);    s_cy <= conv_std_logic_vector(0,((DWIDTH-1)/4)+1);    v_ext := false;    for j in 0 to 2**DWIDTH-1 loop      s_datao <= conv_std_logic_vector(j,DWIDTH);      for i in 0 to 2**(((DWIDTH-1)/4)+1)-1 loop        -- MSB of v_flags is cy. The rest represents the auxiliary carry flags.        v_flags := conv_std_logic_vector(i,((DWIDTH-1)/4)+1);        v_cy := v_flags(v_flags'HIGH);        s_cy <= conv_std_logic_vector(i,((DWIDTH-1)/4)+1);        v_tmp := j;        v_ext := false;        -- Whenever a flag is set the corresponding data cannot be greater than        -- 2 (The data is assumed to be the result of an addition of two BCD        -- numbers). - Just to reduce simulation runtime.        for r in 0 to (DWIDTH-1)/4 loop          if j mod 2**((r+1)*4) > 2 and v_flags(r) = '1' then            v_ext := true;          end if;        end loop;  -- r        next when v_ext = true;        for h in 0 to (DWIDTH-1)/4 loop            -- Perform adjustement of the following nibbles            if v_tmp mod 2**((h+1)*4) > 9*(2**(h*4))+2**(h*4)-1 or              v_flags(h) = '1' then              v_flags_int := conv_std_logic_vector(0,((DWIDTH-1)/4)+1);              for k in h to ((DWIDTH-1)/4) loop                if k=h then                  -- Determine carry flag of the nibble which will be                  -- incremented by 6.                  if DWIDTH >= (k+1)*4 then                    if v_tmp mod 2**((k+1)*4) > 9*(2**(k*4))+2**(k*4)-1 then                      -- The correction of the nibble needs a carry                      v_flags_int(k) := '1';                    end if;                  elsif DWIDTH = (k+1)*4-1 or DWIDTH = (k+1)*4-2 then                    if v_tmp mod 2**((k+1)*4) > 1*(2**(k*4))+2**(k*4)-1 then                      -- The correction of the nibble needs a carry                      v_flags_int(k) := '1';                    end if;                  end if;                else                  -- Determine carry flag of the nibbles subsequent to the one                  -- which will be incremented by 6.                  if DWIDTH >= (k+1)*4 then                    if v_tmp mod 2**((k+1)*4) >= 15*(2**(k*4))                      and v_flags_int(k-1) = '1' then                      -- The correction of the nibble needs a carry                      v_flags_int(k) := '1';                    end if;                  else                    if v_tmp mod 2**DWIDTH >= (2**(DWIDTH-k*4)-1)*2**(k*4)                      and v_flags_int(k-1) = '1' then                      -- The correction of the nibble needs a carry                      v_flags_int(k) := '1';                    end if;                  end if;                end if;              end loop;  -- k              for k in h to ((DWIDTH-1)/4) loop                -- Perform correction for the lowest nibble in scope                if DWIDTH >= (k+1)*4-1 then                  if k=h then                    v_tmp := v_tmp + 6*(2**(h*4));                  end if;                elsif DWIDTH = (k+1)*4-2 then                  if k=h then                    v_tmp := v_tmp + 2*(2**(h*4));                  end if;                end if;              end loop;  -- k              v_flags := v_flags_int or v_flags;            end if;        end loop;  -- h        -- Set expected values.        v_newdata := conv_std_logic_vector(v_tmp, DWIDTH);        if v_tmp > 2**DWIDTH-1 then          v_cy := '1';        end if;        -- After waiting for the result, perform checks.        wait for PROP_DELAY;        assert (s_datai = v_newdata) and (s_cyi((DWIDTH-1)/4) = v_cy)          report "ERROR in decimal adjustement of the "          & IMAGE(DWIDTH) & " bit data!" &          " v_tmp= " & IMAGE(v_tmp) &          " j= "  & IMAGE(j) &          " i= "  & IMAGE(i)          severity failure;      end loop;  -- i    end loop;  -- j      assert false      report "********* " & IMAGE(DWIDTH)      & "BIT DECIMAL ADJUST FUNCTION FINISHED AT "      & IMAGE(now) & " !" & " *********"       severity note;    s_da_end <= true;    wait;  end PROC_DA;  -----------------------------------------------------------------------------    -----------------------------------------------------------------------------  --                                                                         --  --  PROC_DIV_ACC_RAM - Test the combinational divider                      --  --                                                                         --  --  Procedure to generate all the input data to test the combinational     --  --  divider command. Furthermore the results are compared with the         --  --  expected values and the simulation is stopped with an error message    --  --  if the test failes.                                                    --  -----------------------------------------------------------------------------  procedure PROC_DIV_ACC_RAM (    constant DWIDTH     : in  positive;    constant PROP_DELAY : in  time;    signal   s_cyi      : in  std_logic_vector;    signal   s_ovi      : in  std_logic;    signal   s_qutnt    : in  std_logic_vector;    signal   s_rmndr    : in  std_logic_vector;    signal   s_cyo      : out std_logic_vector;    signal   s_ovo      : out std_logic;    signal   s_dvdnd    : out std_logic_vector;    signal   s_dvsor    : out std_logic_vector;    signal   s_dvdr_end : out boolean) is        variable v_quot : integer;    variable v_remd : integer;    variable v_flags     : std_logic_vector((DWIDTH-1)/4+1 downto 0);      begin    s_dvdr_end <= false;    for j in 0 to 2**DWIDTH-1 loop      s_dvdnd <= conv_std_logic_vector(j,DWIDTH);      for i in 0 to 2**DWIDTH-1 loop        s_dvsor <= conv_std_logic_vector(i,DWIDTH);        for f in 0 to 2**(((DWIDTH-1)/4)+2)-1 loop          v_flags := conv_std_logic_vector(f,((DWIDTH-1)/4)+2);          s_cyo <= v_flags(((DWIDTH-1)/4) downto 0);          s_ovo <= v_flags(v_flags'HIGH);                  wait for PROP_DELAY;          if i /= 0 then            v_quot := j/i;            v_remd := j rem i;            assert (s_cyi((DWIDTH-1)/4) = '0')              and (s_ovi = '0')              and (s_qutnt = conv_std_logic_vector(v_quot,DWIDTH))              and (s_rmndr = conv_std_logic_vector(v_remd,DWIDTH))              report "ERROR in division!"              severity failure;          else               assert (s_cyi((DWIDTH-1)/4) = '0')              and (s_ovi = '1')              report "ERROR in division by zero - flags not correct!"              severity failure;                    end if;        end loop;  -- f      end loop;  -- i    end loop;  -- j      assert false      report "********* " & IMAGE(DWIDTH) & "BIT DIVIDER SEQUENCE FINISHED AT "      & IMAGE(now) & " !" & " *********"       severity note;    s_dvdr_end <= true;    wait;  end PROC_DIV_ACC_RAM;  -----------------------------------------------------------------------------  -----------------------------------------------------------------------------  --                                                                         --  --  PROC_MUL_ACC_RAM - Test the combinational multiplier                   --  --                                                                         --  --  Procedure to generate all the input data to test the combinational     --  --  multiply command. Furthermore the results are compared with the        --  --  expected values and the simulation is stopped with an error message    --  --  if the test failes.                                                    --  -----------------------------------------------------------------------------  procedure PROC_MUL_ACC_RAM (    constant DWIDTH     : in  positive;    constant PROP_DELAY : in  time;    signal   s_cyi      : in  std_logic_vector;    signal   s_ovi      : in  std_logic;    signal   s_product  : in  std_logic_vector;    signal   s_cyo      : out std_logic_vector;    signal   s_ovo      : out std_logic;    signal   s_mltplcnd : out std_logic_vector;    signal   s_mltplctr : out std_logic_vector;    signal   s_mul_end  : out boolean) is        variable v_product : integer;    variable v_flags     : std_logic_vector((DWIDTH-1)/4+1 downto 0);      begin    s_mul_end <= false;    for j in 0 to 2**DWIDTH-1 loop      s_mltplcnd <= conv_std_logic_vector(j,DWIDTH);      for i in 0 to 2**DWIDTH-1 loop        s_mltplctr <= conv_std_logic_vector(i,DWIDTH);        for f in 0 to 2**(((DWIDTH-1)/4)+2)-1 loop

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区免费观看视频| 久久无码av三级| www.一区二区| 国产99久久久国产精品潘金| 国产麻豆一精品一av一免费| 精东粉嫩av免费一区二区三区| 日韩黄色免费电影| 麻豆国产欧美一区二区三区| 国产一区欧美日韩| 成人激情视频网站| 色综合久久综合| 欧美三级一区二区| 欧美人与z0zoxxxx视频| 91麻豆精品国产自产在线观看一区 | 欧美精品三级日韩久久| 欧美在线视频全部完| 欧美日韩一级黄| 日韩午夜激情免费电影| 亚洲精品一区二区在线观看| 国产亚洲欧美色| 亚洲欧美一区二区三区极速播放| 一区二区三区小说| 裸体一区二区三区| 国产精品一区二区在线播放 | 91在线国内视频| 色狠狠桃花综合| 日韩精品一区二区三区老鸭窝| 久久亚洲捆绑美女| 中文字幕一区av| 丝袜美腿亚洲一区二区图片| 激情综合色综合久久综合| 成人性生交大片免费看视频在线| 欧美性生活影院| 日韩美女视频在线| 亚洲人午夜精品天堂一二香蕉| 五月天丁香久久| 国产成人a级片| 这里只有精品电影| 中文字幕亚洲成人| 久久激情五月激情| 色香色香欲天天天影视综合网| 精品美女一区二区| 亚洲一区二区三区免费视频| 国产精品一区二区91| 欧美日韩午夜在线视频| 国产精品福利电影一区二区三区四区| 亚洲成av人片一区二区| bt欧美亚洲午夜电影天堂| 日韩一区二区三| 亚洲福利一区二区| 96av麻豆蜜桃一区二区| 久久婷婷国产综合国色天香| 亚洲v日本v欧美v久久精品| 成人激情免费视频| 亚洲精品在线免费播放| 亚洲18影院在线观看| 91丨porny丨中文| 国产亚洲成aⅴ人片在线观看| 日韩精品一级二级 | 色拍拍在线精品视频8848| 精品福利在线导航| 美女在线视频一区| 欧美日韩第一区日日骚| 亚洲国产综合91精品麻豆| 99久久婷婷国产综合精品电影| 久久综合久久99| 激情丁香综合五月| 日韩欧美一区中文| 久久精品国产久精国产| 日韩精品一区二区三区四区视频| 亚洲成人福利片| 7777精品伊人久久久大香线蕉的| 亚洲一区二区欧美日韩| 欧美日韩一本到| 天天av天天翘天天综合网色鬼国产| 欧洲一区二区三区在线| 一区二区成人在线| 日本高清不卡视频| 午夜在线电影亚洲一区| 欧美日韩一区二区在线观看视频| 亚洲综合一区二区三区| 欧洲av在线精品| 无码av免费一区二区三区试看| 欧美日韩国产高清一区二区三区 | 欧美日韩国产成人在线免费| 调教+趴+乳夹+国产+精品| 日韩欧美一区中文| 国产高清亚洲一区| 亚洲欧美一区二区在线观看| 在线亚洲精品福利网址导航| 五月天国产精品| 欧美成人高清电影在线| 成人免费黄色大片| 亚洲自拍偷拍九九九| 欧美一区二区黄| 风间由美一区二区三区在线观看 | 日韩丝袜美女视频| 成人综合激情网| 亚洲一区在线免费观看| 欧美一级片在线看| 国产成人免费av在线| 亚洲精品国久久99热| 欧美麻豆精品久久久久久| 国产一区二区日韩精品| 亚洲精选视频在线| 精品久久久久久久久久久久久久久久久 | 国产一区二区三区四| 亚洲黄色在线视频| 精品国产区一区| 色94色欧美sute亚洲13| 久久成人av少妇免费| 一区二区三区在线视频观看| 精品免费视频.| 欧美性xxxxxxxx| 国产高清不卡一区| 日韩和欧美的一区| 成人欧美一区二区三区| 精品嫩草影院久久| 欧美日韩午夜在线| 成人av在线观| 国产美女在线观看一区| 亚洲一区二区三区国产| 中文字幕在线观看一区| 日韩欧美国产小视频| 欧美色涩在线第一页| 99久久精品费精品国产一区二区| 美女网站在线免费欧美精品| 亚洲综合丁香婷婷六月香| 国产视频一区在线观看| 日韩一级免费观看| 欧美日韩精品一区二区三区蜜桃| 成人高清在线视频| 国内精品在线播放| 麻豆精品新av中文字幕| 亚洲va国产va欧美va观看| 亚洲精品乱码久久久久久久久| 国产欧美日韩中文久久| 日韩午夜激情免费电影| 7777精品伊人久久久大香线蕉 | 亚洲成人你懂的| 亚洲激情六月丁香| 亚洲激情第一区| 亚洲欧美另类小说| 亚洲三级免费观看| 亚洲色图欧美在线| 亚洲黄网站在线观看| 亚洲综合一区在线| 亚洲大片精品永久免费| 午夜精品久久久久久久久| 免费成人美女在线观看| 香蕉成人伊视频在线观看| 香蕉影视欧美成人| 日韩av在线免费观看不卡| 全国精品久久少妇| 麻豆精品在线观看| 国产真实乱子伦精品视频| 国产精品一卡二卡| 成人av资源网站| 日本电影亚洲天堂一区| 欧美男女性生活在线直播观看| 在线电影院国产精品| 欧美videos中文字幕| 久久噜噜亚洲综合| 国产精品三级电影| 亚洲精品高清在线观看| 丝袜美腿高跟呻吟高潮一区| 日本成人在线看| 国产电影一区二区三区| 成人免费视频播放| 欧洲视频一区二区| 91精品国产一区二区三区蜜臀 | 国产99久久久国产精品| 91香蕉视频污在线| 91麻豆精品国产91久久久久久久久| 制服丝袜成人动漫| 欧美国产精品中文字幕| 亚洲精品免费一二三区| 首页国产欧美久久| 成人深夜在线观看| 欧美日韩在线直播| 久久久99免费| 亚洲激情av在线| 捆绑调教一区二区三区| 99久久精品国产导航| 欧美成人a视频| 亚洲精品v日韩精品| 免费精品99久久国产综合精品| 懂色av一区二区三区蜜臀| 欧美日韩精品一区二区三区四区| 26uuu亚洲综合色| 一区二区三区在线看| 国产精品一区二区黑丝| 欧美日韩亚洲不卡| 中文字幕+乱码+中文字幕一区| 午夜激情一区二区三区| 不卡一区中文字幕| 久久午夜羞羞影院免费观看| 亚洲一级二级三级在线免费观看| 国产麻豆精品95视频| 3d动漫精品啪啪|