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

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

?? example16_8.vhd

?? fp codes is used to realize the aritjmetics
?? VHD
字號(hào):
library ieee; use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
--use ieee.std_logic_unsigned.all;
package mypackage is
constant p: natural := 4;
constant B: natural := 10;
constant B_div_2: natural := 5;
constant NDIGITS :natural := p+1;
constant MDIGITS :natural := p+1;
subtype digit is natural range 0 to B-1;
type digit_vector is array (integer range <>) of digit;
type mybit_vector is array (integer range <>) of std_logic;
--function to_integer (x: digit_vector) return natural;
--function to_digit_vector (int_x: natural; n: natural) return digit_vector;
end mypackage;

---------------------------------------------------------
-- Basic base B multiplier (unsigned operands) 
----------------------------------------------------------		
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
use IEEE.std_logic_unsigned.all;
use work.mypackage.all;
entity basic_base_B_mult is
    port (
        X: in digit_vector(NDIGITS-1 downto 0);
        Y: in digit_vector(MDIGITS-1 downto 0);
        P: out digit_vector(NDIGITS+MDIGITS-1 downto 0)
     );
end basic_base_B_mult;

architecture simple_arch of basic_base_B_mult is
component mult_by_1_digit is
    port (
	     A: in digit_vector(MDIGITS-1 downto 0);
        BB: in digit_vector(MDIGITS-1 downto 0);
        x_i : in digit;
        P: out digit_vector(MDIGITS downto 0)
     );
end component;
type conections is array (0 to NDIGITS) of digit_vector(MDIGITS downto 0);
Signal wires: conections;
begin
 wires(0) <= (others => 0);
 iterac: for I in 0 to NDIGITS-1 generate
   mult: mult_by_1_digit port map (A => wires(i)(MDIGITS downto 1),
  			                        BB => Y, x_i => X(i), P => wires(i+1) );
	p(i) <= wires(i+1)(0);
 end generate;
 p(MDIGITS+NDIGITS-1 downto NDIGITS) <= wires(NDIGITS)(MDIGITS downto 1);
end simple_arch;

----------------------------------------------------
-- Mult_by_1_digit: Caclutate P <= A + (x_i*B) 
-- where x_i is a digit; A and B are digit vectors
----------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
use work.mypackage.all;
entity mult_by_1_digit is
  Port ( 
	     A: in digit_vector(MDIGITS-1 downto 0);
        BB: in digit_vector(MDIGITS-1 downto 0);
        x_i : in digit;
        P: out digit_vector(MDIGITS downto 0)
   );
end mult_by_1_digit;

architecture Behavioral of mult_by_1_digit is
begin
  process(BB,A, x_i)
  variable carry: digit_vector(MDIGITS downto 0);
  begin
    carry(0) := 0;
    for i in 0 to MDIGITS-1 loop
      P(i) <= (BB(i) * X_i + A(i) + carry(i)) mod B;
		carry(i+1) := (BB(i) * X_i + A(i) + carry(i)) / B;
	 end loop;
	 P(MDIGITS) <= carry(MDIGITS);
  end process;
end Behavioral;

library ieee; use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
--use ieee.std_logic_unsigned.all;
use work.mypackage.all;
entity multiplication is
port (
s1, s2: in digit_vector(0 downto -p);
sign1, sign2: in std_logic;
e1, e2: in integer;
s: out digit_vector(1 downto -2*p);
sign: out std_logic;
e: out integer
);
end multiplication;

architecture circuit of multiplication is
component basic_base_B_mult
    port (
        X: in digit_vector(NDIGITS-1 downto 0);
        Y: in digit_vector(MDIGITS-1 downto 0);
        P: out digit_vector(NDIGITS+MDIGITS-1 downto 0)
     );
end component;
signal int_s1, int_s2: digit_vector(p downto 0);
signal unaligned_result: digit_vector(2*p+1 downto 0);
begin
to_integer: for i in 0 to p generate 
int_s1(i) <= s1(i-p); int_s2(i) <= s2(i-p); 
end generate;
multiplier: basic_base_B_mult port map (int_s1, int_s2, unaligned_result);
alignment: for i in 1 downto -2*p generate s(i) <= unaligned_result(i+2*p); end generate;
sign <= sign1 xor sign2;
e <= e1 + e2;
end circuit;

library ieee; use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
--use ieee.std_logic_unsigned.all;
use work.mypackage.all;
entity guard_digits is
port (
s: in digit_vector(1 downto -2*p);
product: out digit_vector(1 downto -(p+2))
);
end guard_digits;

architecture behavior of guard_digits is
begin
process(s)
variable acc_or: digit;
begin
acc_or := 0;
for i in -(p+2) downto -2*p loop
if (s(i) > 0) or (acc_or > 0) then acc_or := 1; end if;
end loop;
product <= s(1 downto -(p+1))&acc_or;
end process;
end behavior;

library ieee; use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
--use ieee.std_logic_unsigned.all;
use work.mypackage.all;
entity test_guard_digits is end test_guard_digits;

architecture test of test_guard_digits is
component guard_digits
port (
s: in digit_vector(1 downto -2*p);
product: out digit_vector(1 downto -(p+2))
);
end component;
signal s: digit_vector(1 downto -2*p);
signal product:  digit_vector(1 downto -(p+2));
begin
device_under_test: guard_digits port map (s, product);
--s <= (4, 5, 6, 3, 4, 6, 0, 0, 0, 4),  (7, 5, 4, 3, 4, 6, 0, 0, 0, 0) after 10 ns,  
--(4, 9, 9, 3, 4, 6, 1, 1, 0, 0) after 20 ns;
end test;

library ieee; use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
--use ieee.std_logic_unsigned.all;
use work.mypackage.all;
entity test_multiplication is end test_multiplication;

architecture test of test_multiplication is
component multiplication
port (
s1, s2: in digit_vector(0 downto -p);
sign1, sign2: in std_logic;
e1, e2: in integer;
s: out digit_vector(1 downto -2*p);
sign: out std_logic;
e: out integer
);
end component;
signal s1, s2: digit_vector(0 downto -p);
signal sign1, sign2, sign: std_logic;
signal e1, e2, e: integer;
signal result: digit_vector(1 downto -2*p);
begin
device_under_test: multiplication port map (s1, s2, sign1, sign2, e1, e2, result, sign, e);
--s1 <= (3, 4, 3), (9, 4, 3) after 10 ns, (4, 7, 6) after 20 ns;
--s2 <= (2, 5, 4), (8, 6, 2) after 10 ns, (2, 1, 0) after 20 ns;
sign1 <= '0';
sign2 <= '0';
e1 <= 3, 3 after 10 ns, 2 after 20 ns;
e2 <= -1, 2 after 10 ns, 3 after 20 ns;
end test;

library ieee; use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use work.mypackage.all;
entity normalization is
port (
e: in natural;
product: in digit_vector(1 downto -(p+2));
new_s: out digit_vector(0 downto -(p+3));
new_e: out natural
);
end normalization;

architecture rtl of normalization is
signal product_div_B: digit_vector(0 downto -(p+3));
begin
divide_by_B: for i in -(p+3) to 0 generate product_div_B(i) <= product(i+1); end generate; 
new_s <= product(0 downto -(p+2))&0 when product(1) = 0 else product_div_B;
new_e <= e when product(1) = 0 else e+1;
end rtl;


library ieee; use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use work.mypackage.all;
entity rounding is
port (
s: in digit_vector(0 downto -(p+3));
e: in natural;
new_s: out digit_vector(0 downto -p);
new_e: out natural
);
end rounding;

architecture behavior of rounding is
begin
process(s)
variable carry: digit_vector(1 downto -p);
variable sum: digit_vector(0 downto -p);
begin
if s(-(p+1)) < B_div_2 then new_s <= s(0 downto -p); new_e <= e;
elsif (s(-(p+1)) > B_div_2) or (s(-(p+2)) > 0) or (s(-p) mod 2 = 1)  then 
--plus ulp
carry(-p) := 1;
for i in -p to 0 loop 
if s(i) + carry(i) > B-1 then carry(i+1) := 1; else carry(i+1) := 0; end if;
sum(i) := (carry(i) + s(i)) mod B;
end loop;
------
if carry(1) = 1 then new_s(0) <= 1; for i in -1 downto -p loop new_s(i) <= 0; end loop; new_e <= e+1; 
else new_s <= sum; new_e <= e; end if;
else new_s <= s(0 downto -p); new_e <= e;
end if;
end process;
end behavior;

library ieee; use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
--use ieee.std_logic_unsigned.all;
use work.mypackage.all;
entity fp_multiplier is
port (
sign1, sign2: in std_logic;
e1, e2: in integer;
s1, s2: in digit_vector(0 downto -p);
sign: out std_logic;
e: out natural;
s: out digit_vector(0 downto -p)
);
end fp_multiplier;

architecture circuit of fp_multiplier is
component multiplication 
port (
s1, s2: in digit_vector(0 downto -p);
sign1, sign2: in std_logic;
e1, e2: in integer;
s: out digit_vector(1 downto -2*p);
sign: out std_logic;
e: out integer
);
end component;
component guard_digits
port (
s: in digit_vector(1 downto -2*p);
product: out digit_vector(1 downto -(p+2))
);
end component;
component normalization
port (
e: in natural;
product: in digit_vector(1 downto -(p+2));
new_s: out digit_vector(0 downto -(p+3));
new_e: out natural
);
end component;
component rounding
port (
s: in digit_vector(0 downto -(p+3));
e: in natural;
new_s: out digit_vector(0 downto -p);
new_e: out natural
);
end component;
signal e_m, e_n: natural;
signal s_m: digit_vector(1 downto -2*p);
signal s_g: digit_vector(1 downto -(p+2));
signal s_n: digit_vector(0 downto -(p+3));
begin
multiplication_component: multiplication 
port map (s1, s2, sign1, sign2, e1, e2, s_m, sign, e_m);
guard_digits_component: guard_digits port map (s_m, s_g);
normalization_component: normalization port map (e_m, s_g, s_n, e_n);
rounding_component: rounding port map (s_n, e_n, s, e);
end circuit;


library ieee; use ieee.std_logic_1164.all;
--use ieee.std_logic_arith.all;
--use ieee.std_logic_unsigned.all;
use work.mypackage.all;
entity test_fp_multiplier is end test_fp_multiplier;

architecture test of test_fp_multiplier is
component fp_multiplier
port (
sign1, sign2: in std_logic;
e1, e2: in integer;
s1, s2: in digit_vector(0 downto -p);
sign: out std_logic;
e: out natural;
s: out digit_vector(0 downto -p)
);
end component;
signal s1, s2, s: digit_vector(0 downto -p);
signal sign1, sign2, sign: std_logic;
signal e1, e2, e: integer;
begin
device_under_test: fp_multiplier port map (sign1, sign2, e1, e2, s1, s2, sign, e, s);
s1 <= (3, 4, 3, 8, 2), (9, 4, 3, 0, 0) after 10 ns, (4, 7, 6, 1, 9) after 20 ns;
s2 <= (2, 5, 4, 7, 1), (8, 6, 2, 0, 0) after 10 ns, (2, 1, 0, 0, 0) after 20 ns;
sign1 <= '0', '1' after 10 ns, '0' after 30 ns;
sign2 <= '0', '1' after 20 ns;
e1 <= 3, 3 after 10 ns, 2 after 20 ns;
e2 <= -1, 2 after 10 ns, 3 after 20 ns;
end test;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷国产在线综合| 久久久不卡网国产精品二区| 欧美一区二区三区视频在线观看| 91精品国产一区二区| 久久免费电影网| 亚洲女爱视频在线| 奇米777欧美一区二区| 国产成人免费在线观看| 91免费观看国产| 日韩欧美国产电影| 中文在线一区二区| 亚洲成人av资源| 国产福利不卡视频| 欧美欧美欧美欧美首页| 久久精品亚洲一区二区三区浴池| 亚洲欧美色图小说| 免费不卡在线视频| 成a人片亚洲日本久久| 欧美区一区二区三区| 国产日韩av一区| 视频一区免费在线观看| 国产一区二区三区香蕉| 在线免费不卡视频| 久久综合五月天婷婷伊人| 亚洲婷婷综合久久一本伊一区| 日韩成人一级片| av动漫一区二区| 制服丝袜国产精品| 中文字幕亚洲综合久久菠萝蜜| 丝袜美腿亚洲综合| 色综合中文字幕国产 | 欧美国产激情二区三区 | 在线视频一区二区免费| 亚洲精品在线三区| 亚洲影院在线观看| 粉嫩av一区二区三区在线播放| 欧美片在线播放| 亚洲日本一区二区三区| 国产一区二区调教| 欧美一区中文字幕| 亚洲午夜一区二区三区| 高清成人在线观看| 亚洲精品在线免费播放| 亚洲国产日韩综合久久精品| 国产suv一区二区三区88区| 欧美一区二区视频免费观看| 中文字幕一区二区三区精华液 | 欧美一区二区三区公司| 亚洲免费观看高清在线观看| 国产在线视频一区二区| 91精品国产一区二区三区香蕉 | 欧美日韩国产一二三| 国产精品日韩成人| 国产精品一二三区| 日韩一区二区三区视频在线| 亚洲影院在线观看| 91福利精品视频| 国产精品第五页| 国产精品白丝jk白祙喷水网站| 制服丝袜亚洲网站| 午夜精品一区二区三区电影天堂 | 亚洲少妇屁股交4| 成人av资源站| 中文字幕成人在线观看| 久久99国产精品免费| 欧美一级电影网站| 日韩av一区二区三区四区| 欧美日韩国产综合一区二区 | 777午夜精品免费视频| 一区二区免费看| 91蜜桃免费观看视频| 国产精品视频麻豆| 高清国产一区二区三区| 国产午夜精品一区二区三区四区| 国产一区二区剧情av在线| 精品国产三级a在线观看| 美脚の诱脚舐め脚责91| 日韩免费一区二区| 久久精品99久久久| 精品久久久久久久人人人人传媒 | 日韩欧美国产三级电影视频| 日韩激情在线观看| 日韩午夜激情视频| 国产一区二区三区日韩| 久久综合给合久久狠狠狠97色69| 精品一区二区在线免费观看| 26uuu成人网一区二区三区| 激情丁香综合五月| 国产亚洲精品bt天堂精选| 国产69精品久久久久毛片| 中文字幕视频一区二区三区久| 91一区二区三区在线观看| 亚洲精品福利视频网站| 在线观看不卡视频| 天天亚洲美女在线视频| 精品入口麻豆88视频| 国产成人自拍在线| 亚洲人成7777| 欧美日韩精品二区第二页| 裸体歌舞表演一区二区| 国产色综合一区| 一本一本大道香蕉久在线精品 | 91精品在线观看入口| 狠狠色狠狠色综合日日91app| 国产午夜精品一区二区三区四区| 91丨porny丨国产| 偷拍与自拍一区| 26uuu精品一区二区| 99在线热播精品免费| 无吗不卡中文字幕| 国产香蕉久久精品综合网| 一本色道久久加勒比精品| 日韩在线卡一卡二| 国产亚洲短视频| 欧美视频在线不卡| 国产一区二区毛片| 亚洲美女视频一区| 日韩欧美在线影院| 成人激情动漫在线观看| 婷婷综合在线观看| 日本一区二区三区免费乱视频 | 日韩综合在线视频| 国产午夜精品一区二区三区视频| 91福利区一区二区三区| 国内欧美视频一区二区| 亚洲视频一区在线观看| 欧美va亚洲va| 91玉足脚交白嫩脚丫在线播放| 日韩av中文字幕一区二区| 国产精品麻豆欧美日韩ww| 5566中文字幕一区二区电影| 高清不卡在线观看| 男男成人高潮片免费网站| 亚洲日本va在线观看| 精品国产一区二区三区av性色 | 婷婷六月综合亚洲| 日韩一区日韩二区| 久久久久久久国产精品影院| 91成人免费电影| 成人免费黄色在线| 久久精品999| 亚洲国产精品一区二区久久恐怖片 | 亚洲人成精品久久久久久 | 国产69精品久久久久777| 偷拍与自拍一区| 亚洲乱码中文字幕| 国产性做久久久久久| 日韩手机在线导航| 欧美体内she精高潮| 成人中文字幕电影| 精品亚洲国产成人av制服丝袜| 亚洲国产精品自拍| 亚洲欧美激情插| 国产精品污www在线观看| 精品国产区一区| 日韩视频一区二区| 欧美日韩一级视频| 91久久香蕉国产日韩欧美9色| 国产999精品久久| 极品美女销魂一区二区三区| 亚洲成av人片在线| 一区二区三区精品在线| 国产精品免费av| 久久久久久99精品| 久久综合久久综合亚洲| 777色狠狠一区二区三区| 欧美在线免费播放| 91麻豆国产在线观看| 成人ar影院免费观看视频| 国产一区999| 国产美女一区二区三区| 久久 天天综合| 美女视频一区在线观看| 婷婷中文字幕一区三区| 亚洲va欧美va天堂v国产综合| 亚洲尤物视频在线| 亚洲自拍偷拍av| 亚洲午夜免费电影| 亚洲成人激情自拍| 天堂蜜桃一区二区三区| 图片区日韩欧美亚洲| 天天综合色天天综合| 天堂一区二区在线免费观看| 偷拍日韩校园综合在线| 日韩在线观看一区二区| 免费久久精品视频| 美国精品在线观看| 国产在线不卡一区| 国产美女精品一区二区三区| 韩国av一区二区三区四区| 国产乱码精品一品二品| 国产精品亚洲专一区二区三区| 国产一区二三区好的| 岛国av在线一区| 99热这里都是精品| 在线日韩av片| 欧美一区二区三区免费大片| 日韩免费高清视频| 欧美韩日一区二区三区四区| 亚洲欧洲另类国产综合|