پروژه اول درس VHDL نرجل راحم نوش آبادی [email protected] چکيده -هدف از انجام این پروژه ،آشنایی با چند نوع جمع کننده مختلف ،پياده سازی آن ها و مقایسه عملکرد آن ها از لحاظ سطح مصرفی و سرعت عملکرد می باشد .هم چنين در قسمت دوم با پياده سازی مدار یک دیکدر سون سگمنت و نحوه به کارگيری آن برای نمایش حاصل جمع دو عدد چهاربيتی آشنا می شویم. كليد واژه -جمع کننده ،دیکدر ،سون سگمنت. -1مقدمه همانطور که اشاره شد ،در بخش او این پروژه ،با دو نوع جمشع کننشده مختلف ( Carry Select Adderو ،)Carry Ripple Adder و نحوه پياده سازی آن ها آشنا مش شا را از شرد آن هش شمل رملکش شوی س سش شش لحاظ سطح مصرف و سررت مقایسه مش کني س در بخ دوم ،مدار یک دیکشدر سشون سگمنت را پياده سازی نمشوده و بشا نحوه به کشاریيری آن بشرای نمشای حاصل جمع دو ردد چهاربيت آشنا م شوی س الزم به ذکر است که تمام شبيه سازی هااا بااا اسااتداده از ناارم افاا ار ModelSimانجام شده اند. -2جمع کننده ها جمع کننده هشا یکش از بلشوا هشای شه اصل در پردازش هشای دییيتشا بش شيار شای بسش شدس روش هش شمار م ش آینش شش متنور بشه منوشور پيشاده سشازی و بهبود سشطح مصشرف ،اشوان مصشرف ، سررت و سسس برای این مدارات مطشر شده استس دو جمع کننده اصل که در این پروژه با آن ها آشنا م ششوی رباراند از Carry Select Adder:و Carry Ripple Adderس -1-2جمع کننده با استداده از دستور جمع معمولی با استفاده از دستور جمشع مممشول 1 " "a+bبرنامه اي بنویسيد که میمشوع شدس شته باشش شدد 4بيت ش را داشش دو رش ارششداد را بششدون ردمششت در نوششر بگيرید: ;LIBRARY ieee ;USE ieee.std_logic_1164.all ;USE ieee.std_logic_unsigned.all ENTITY adder4 IS ;PORT ( Cin : IN STD_LOGIC X, Y : IN STD_LOGIC_VECTOR(3 ;)DOWNTO 0 S : OUT STD_LOGIC_VECTOR(3 ;)DOWNTO 0 Cout :OUT ;) STD_LOGIC ;END adder4 ARCHITECTURE Behavior OF adder4 IS SIGNAL Sum : STD_LOGIC_VECTOR(4 ;)DOWNTO 0 BEGIN ;Sum <= ('0' & X) + Y + Cin ;)S <= Sum(3 DOWNTO 0 ;)Cout <= Sum(4 ;END Behavior است بنچ الزم برای شبيه سشازی ایشن قسمت در ادامه آمده است: ; LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ENTITY adder4_testbench IS ;END adder4_testbench ARCHITECTURE input OF adder4_testbench IS COMPONENT ad4 IS ; PORT ( Cin : IN STD_LOGIC این جمشع کننشده در سشطح2 در شکل یيت نشان داده شده استس برنامه اي Carry Ripple بنویسيد که با استفاده از بيت به همراه یک4 دو ردد،Adder بيت نقل را در ورودي بگيرد و یشک بيت به همراه رقش نقلش4 رروج :رروج را اوليد نماید X, Y : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ; S : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; Cout : OUT STD_LOGIC ) ; END COMPONENT; FOR a1 : ad4 USE ENTITY WORK.adder4; SIGNAL Cin : STD_LOGIC := '1'; SIGNAL X , Y : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL S : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL Cout : STD_LOGIC; BEGIN a1 : ad4 PORT MAP (Cin,X, Y,S,Cout); a2 : X <= "0010" AFTER 10 NS, "1001" AFTER20 NS, "0110" AFTER 30 NS, "1010" AFTER 40 NS, "1110" AFTER 50 NS; a3 : Y <= "0101" AFTER 10 NS, "0111" AFTER20 NS, "1100" AFTER 30 NS, "1011" AFTER 40 NS, "1110" AFTER 50 NS; END input; Carry Ripple زیشر مش سارتار جمع کننده:1 شکل در سطح یيتسAdder برنامه مورد نياز به شر :باشد LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ; ENTITY ripple_carry4 IS PORT (carry_in : IN STD_LOGIC ; e, f : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ; S : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; carry_out : OUT STD_LOGIC ) ; END ripple_carry4; ARCHITECTURE Structural1 OF ripple_carry4 IS COMPONENT fulladder IS PORT(a,b,ci:IN STD_LOGIC;s,co:OUT STD_LOGIC); END COMPONENT; SIGNAL C1,C2,C3 : STD_LOGIC; BEGIN F1 : fulladder PORT MAP (e(0),f(0),carry_in,S(0),C1); F2 : fulladder PORT MAP (e(1),f(1),C1,S(1),C2); F3 : fulladder PORT MAP (e(2),f(2),C2,S(2),C3); F4 : fulladder PORT MAP Carry Ripple Adder جمع کننده-2-2 شارتارها در شرین سش شاده اش یک ش از سش سشارتار،پياده سازي جمع کننده ها است که مدار آن بشرايCarry Ripple Adder نمشای1 بيت در شکل4 ورودي هاي :داده شده است Carry Ripple سارتار جمع کننده:1 شکل سAdder در این جمع کننده که هشر ببقشه آن )Full Adder( از یک جمشع کننشده کامشل برای محاسبه حاصشل،سارته شده است جمع هر ببقه الزم است که بيت نقلش ببقه قبل محاسشبه ششودس بنشابراین شده سشررت پشایين این نوع جمع کننش داردس بوالن ارین مسيری کشه منیشر ،به بيشترین مقدار اأرير مش ششود مسير بيت نقل ورودی به بيت نقلش رروج م باشدس 2 (e(3),f(3),C3,S(3),carry_out); a3 : f <= "0001" AFTER 10 NS, "0101" AFTER 20 NS, "1000" AFTER 30 NS, "0011" AFTER 40 NS, "1110" AFTER 50 NS; END input_output ; Carry Select Adder جمع کننده-3-2 ،از برنامه نوشته شده در قسمت قبل ششازید و آن را در ششه بسش ششک نمونش یش شوان شده زی شر فرارش شه داده شش برنامش کنيدس نحوه رملکرد یک جمشع کننشده را شر دهيشد و مسشيرCarry Select Adder بحران آن را با جمع کننشده قسشمت قبل مقابسه کنيدس یشک جمشع،همانطور کشه اششاره ششد به رلشت اشأريرCarry Ripple Adder کننده سشررت، در انتشار مقدار بيت نقلش Carry پایين داردس در جمشع کننشده سم شده به نحوی این مشکلSelect Adder بربرف شود؛ بدین صشورت کشه ابتشدا حاصل جمع به ازای هر دو حالت ممکن بشا،)بيت نقل ورودی (صفر یا یشک Carry Ripple استفاده از دو جمع کننده به صشورت مشوازی محاسشبه مشAdder شودس در این حالت نيازی نيسشت کشه صبر ششود اشا بيشت نقلش ورودی از ببقه قبل برسد اا رمل جمشع انیشام شودس پل از محاسبه دو مقدار ممکشن شالت شک مش شتفاده از یش شا اسش بش،شع جمش پلکسر و بيت نقل ورودی (که اکنون مقدار آن در ببقه قبل محاسبه ششده و به این ببقه رسشيده) حاصشل جمشع صحيح انتخاب م شودس در این صشورت مقدار اأرير کشاه یافتشه و سشررت بيششتر از حالشت،محاسبه حاصل جمع رواهد بودسCarry Ripple Adder :برنامه library IEEE; use ieee.std_logic_1164.all; ENTITY carry_select4 IS PORT( c, d : IN std_logic_vector( 3 downto 0); C_input : IN std_logic; Result : OUT std_logic_vector( 3 downto 0); C_output : OUT std_logic); END carry_select4; ARCHITECTURE RTL OF carry_select4 IS COMPONENT ripple_carry4 PORT( e, f : in std_logic_vector( 3 downto 0); carry_in : in std_logic; S : out std_logic_vector( 3 downto 0); carry_out : out std_logic); END Structural1; --------------------------------------------------------------LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ; ENTITY fulladder IS PORT(a,b,ci:IN STD_LOGIC); END fulladder; STD_LOGIC;s,co:OUT ARCHITECTURE Structural2 OF fulladder IS SIGNAL g1,p1,p10 : STD_LOGIC; BEGIN u1 : g1 <= a AND b; u2 : p10 <= ci AND p1; u3 : p1 <= a XOR b; u4 : s <= ci XOR p1; u5 : co <= g1 OR p10; END Structural2; است بنچ الزم برای شبيه سشازی ایشن قسششمت را در ادامششه مشششاهده مشش :نمایيد LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ; ENTITY ripple_carry4_testbench IS END ripple_carry4_testbench; ARCHITECTURE input_output OF ripple_carry4_testbench IS COMPONENT rc4 IS PORT (carry_in : IN STD_LOGIC ; e, f : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ; S : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; carry_out : OUT STD_LOGIC ) ; END COMPONENT; FOR a1:rc4 USE ENTITY WORK.ripple_carry4; SIGNAL carry_in : STD_LOGIC := '1'; SIGNAL e , f : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL S : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL carry_out : STD_LOGIC; BEGIN a1 : rc4 PORT MAP (carry_in,e,f,S,carry_out); a2 : e <= "0000" AFTER 10 NS, "0001" AFTER 20 NS, "0110" AFTER 30 NS, "1001" AFTER 40 NS, "1110" AFTER 50 NS; 3 n بيتیn برنامه ها برای حالت-4-2 END component; بشرای حالشتCarry Ripple Adder برنامه : بيت For S0: ripple_carry4 Use entity work.ripple_carry4; For S1: ripple_carry4 Use entity work.ripple_carry4; LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ; ENTITY ripple_carryn IS GENERIC(n : INTEGER :=8); PORT ( carry_in : IN STD_LOGIC ; e, f : IN STD_LOGIC_VECTOR(n-1 DOWNTO 0) ; S : OUT STD_LOGIC_VECTOR(n-1 DOWNTO 0) ; carry_out : OUT STD_LOGIC ) ; :است بنچ الزم برای شبيه سازی END ripple_carryn; library IEEE; use ieee.std_logic_1164.all; ARCHITECTURE Structural1 OF ripple_carryn IS COMPONENT fulladder IS PORT(a,b,ci:IN STD_LOGIC;s,co:OUT STD_LOGIC); END COMPONENT; SIGNAL DOWNTO 0); C signal SUM0, SUM1 : std_logic_vector( 3 downto 0 ); signal carry0, carry1 : std_logic; signal zero, one : std_logic; begin zero<='0'; one<='1'; S0: ripple_carry4 port map( e=>c, f=>d, carry_in=>zero, S=>SUM0, carry_out=>carry0 ); S1: ripple_carry4 port map( e=>c, f=>d, carry_in=>one, S=>SUM1, carry_out=>carry1 ); Result<=SUM0 when C_input='0' else SUM1 when C_input='1' else "ZZZZ"; C_output<= (C_input and carry1) or carry0; end; : STD_LOGIC_VECTOR(n-1 BEGIN F0: fulladder PORT (e(0),f(0),carry_in,S(0),C(1)); F1 : FOR i IN 1 TO n-2 GENERATE F2: fulladder PORT (e(i),f(i),C(i),S(i),C(i+1)); END GENERATE; MAP MAP END Structural1; --------------------------------------------------------------LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ; ENTITY fulladder IS PORT(a,b,ci : IN STD_LOGIC; s,co : OUT STD_LOGIC); END fulladder; SIGNAL g1,p1,p10 : STD_LOGIC; BEGIN u1 : g1 <= a AND b; u2 : p10 <= ci AND p1; ARCHITECTURE in_out OF carry_select4_testbench IS COMPONENT cs4 IS port( c, d : in std_logic_vector( 3 downto 0); C_input : in std_logic; Result : out std_logic_vector( 3 downto 0); C_output : out std_logic); END COMPONENT; FOR a1:cs4 USE ENTITY WORK.carry_select4; FF: fulladder PORT MAP (e(n-1), f(n-1), C(n-1), S(n-1), carry_out); ARCHITECTURE Structural2 OF fulladder IS ENTITY carry_select4_testbench IS END carry_select4_testbench; SIGNAL C_input : STD_LOGIC:='1'; SIGNAL c , d : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL Result : STD_LOGIC_VECTOR(3 DOWNTO 0) ; SIGNAL C_output : STD_LOGIC; BEGIN a1 : cs4 (c,d,C_input,Result,C_output); PORT MAP a2 : c <= "0000" AFTER 10 NS, "0001" AFTER 20 NS, "0110" AFTER 30 NS, "1001" AFTER 40 NS, "1110" AFTER 50 NS; a3 : d <= "0001" AFTER 10 NS, "0101" AFTER 20 NS, "1000" AFTER 30 NS, "0011" AFTER 40 NS, "1110" AFTER 50 NS; END in_out ; 4 port( e, f : in std_logic_vector( n-1 downto 0); carry_in : in std_logic; S : out std_logic_vector( n-1 downto 0); carry_out : out std_logic); end component; u3 : p1 <= a XOR b; u4 : s <= ci XOR p1; u5 : co <= g1 OR p10; END Structural2; :و است بنچ در این حالت For all: ripple_carryn Use entity work.ripple_carryn; signal SUM0, SUM1 : std_logic_vector( n-1 downto 0 ); signal carry0, carry1 : std_logic; signal zero, one : std_logic; begin zero<='0'; one<='1'; S0: ripple_carryn port map( e=>c, f=>d, carry_in=>zero, S=>SUM0, carry_out=>carry0 ); S1: ripple_carryn port map( e=>c, f=>d, carry_in=>one, S=>SUM1, carry_out=>carry1 ); Result<=SUM0 when C_input='0' else SUM1 when C_input='1' else "ZZZZ"; C_output<= (C_input and carry1) or carry0; end; :و سرانیام است بنچ این قسمت LIBRARY ieee ; USE ieee.std_logic_1164.all ; USE ieee.std_logic_unsigned.all ; ENTITY ripple_carryn_testbench IS END ripple_carryn_testbench; ARCHITECTURE input_output OF ripple_carryn_testbench IS COMPONENT rcn IS PORT (carry_in : IN STD_LOGIC ; e, f : IN STD_LOGIC_VECTOR(7 DOWNTO 0) ; S : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; carry_out : OUT STD_LOGIC ) ; END COMPONENT; library IEEE; use ieee.std_logic_1164.all; FOR a1:rcn USE ENTITY WORK.ripple_carryn; ENTITY carry_selectn_testbench IS END carry_selectn_testbench; ARCHITECTURE in_out OF carry_selectn_testbench IS COMPONENT csn IS GENERIC(n : INTEGER :=8); port( c, d : in std_logic_vector( n-1 downto 0); C_input : in std_logic; Result : out std_logic_vector( n-1 downto 0); C_output : out std_logic); END COMPONENT; FOR a1:csn USE ENTITY WORK.carry_selectn; SIGNAL n : INTEGER :=8; SIGNAL C_input : STD_LOGIC:='1'; SIGNAL c , d : STD_LOGIC_VECTOR(n-1 DOWNTO 0) ; SIGNAL Result : STD_LOGIC_VECTOR(n-1 DOWNTO 0) ; SIGNAL C_output : STD_LOGIC; BEGIN a1 : csn (c,d,C_input,Result,C_output); PORT MAP a2 : c <= "00000000" AFTER 0 NS, "00000001" AFTER 10 NS, "10000110" AFTER 20 NS, "00101001" AFTER 30 NS, "00111110" AFTER 40 NS; a3 : d <= "00000001" AFTER 0 NS, "11110101" AFTER 10 NS,"01011000" AFTER 20 NS, "11000011" AFTER 30 NS, "00001110" AFTER 40 NS; SIGNAL carry_in : STD_LOGIC := '1'; SIGNAL e , f : STD_LOGIC_VECTOR(7 DOWNTO 0) ; SIGNAL S : STD_LOGIC_VECTOR(7 DOWNTO 0) ; SIGNAL carry_out : STD_LOGIC; BEGIN a1 : rcn PORT MAP (carry_in,e,f,S,carry_out); a2 : e <= "00000000" AFTER 10 NS, "00000001" AFTER 20 NS, "01001001" AFTER 30 NS, "10010010" AFTER 40 NS, "10100100" AFTER 50 NS; a3 : f <= "00010010" AFTER 10 NS, "00011101" AFTER 20 NS, "10001111" AFTER 30 NS, "00100110" AFTER 40 NS, "11101101" AFTER 50 NS; END input_output ; n بشرای حالشتCarry Select Adder برنامه : بيت library IEEE; use ieee.std_logic_1164.all; entity carry_selectn is GENERIC(n : INTEGER :=8); port( c, d : in std_logic_vector( n-1 downto 0); C_input : in std_logic; Result : out std_logic_vector( n-1 downto 0); C_output : out std_logic); end carry_selectn; architecture RTL of carry_selectn is component ripple_carryn 5 ENTITY sevenseg_decoder_testbench IS END sevenseg_decoder_testbench; END in_out ; سون سگمنت-3 ARCHITECTURE test OF sevenseg_decoder_testbench IS COMPONENT sevseg_decod IS PORT ( BCD: in STD_LOGIC_VECTOR (3 downto 0); LED: out STD_LOGIC_VECTOR (6 downto 0) ) ; END COMPONENT; FOR a1:sevseg_decod WORK.sevenseg_decoder; SIGNAL BCD downto 0) := "0000"; SIGNAL LED DOWNTO 0); USE ENTITY در این قسمت به پياده سازی مدارات مربوط به سون سگمنت م پردازی س 7-Segment Decoder طراحی-1-3 مداری براح کنيد که ارداد ورودی 7- روی،3 را مطابق شکل9 اا0 بين نمای دهدسSegment : STD_LOGIC_VECTOR(3 : STD_LOGIC_VECTOR(6 BEGIN a1 : sevseg_decod PORT MAP (BCD,LED); a2 : BCD <= "0001" AFTER 10 NS,"0010" AFTER 20 NS,"0110" AFTER 30 NS, "1001" AFTER 40 NS,"1110" AFTER 50 NS; دیکدر به سون سگمنتس ااصا:3 شکل END test ; بيتی4 نمایش مجموع دو عدد-2-3 7-Segment روی دو عدد با اوجه به اینکه میموع دو ردد در به همراه بيت نقل چهاربيت بازه بين صفر اا س و یک قرار م برای امام حالت های ممکن،یيرد به دو سون سگمنت مقدار،حاصل جمع را1 م دهي س در ضمن سون سگمنت را سمت چپ در نور م2 سمت راست و یيری س :برنامه LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY sevenseg_sum IS PORT ( sum : in STD_LOGIC_VECTOR (3 downto 0); carry : in STD_LOGIC; seg1 , seg2 : out STD_LOGIC_VECTOR (6 downto 0)) ; --seg1:right , seg2:left :برنامه الزم LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY sevenseg-decoder IS PORT ( BCD: in STD_LOGIC_VECTOR (3 downto 0); LED :out STD_LOGIC_VECTOR (6 downto 0)); END sevenseg_decoder; ARCHITECTURE truth_table1 OF sevenseg_decoder IS BEGIN with BCD SELECT LED<= "1111001" when "0001", --1 "0100100" when "0010", --2 "0110000" when "0011", --3 "0011001" when "0100", --4 "0010010" when "0101", --5 "0000010" when "0110", --6 "1111000" when "0111", --7 "0000000" when "1000", --8 "0010000" when "1001", --9 "1000000" when others; --0 END sevenseg_sum; END truth_table1; :است بنچ ARCHITECTURE truth_table2 OF sevenseg_sum IS SIGNAL num : STD_LOGIC_VECTOR (4 downto 0); LIBRARY ieee ; USE ieee.std_logic_1164.all ; 6 "0100100" when "10100", --20 "0100100" when "10101", --21 "0100100" when "10110", --22 "0100100" when "10111", --23 "0100100" when "11000", --24 "0100100" when "11001", --25 "0100100" when "11010", --26 "0100100" when "11011", --27 "0100100" when "11100", --28 "0100100" when "11101", --29 "0110000" when "11110", --30 "0110000" when "11111", --31 "1000000" when others; --0 BEGIN num <= carry & sum; END truth_table2 ; :و است بنچ LIBRARY ieee ; USE ieee.std_logic_1164.all ; ENTITY sevenseg_sum_testbench IS END sevenseg_sum_testbench; ARCHITECTURE test OF sevenseg_sum_testbench IS COMPONENT sevseg_sum IS PORT ( sum : in STD_LOGIC_VECTOR (3 downto 0); carry : in STD_LOGIC; seg1 , seg2 : out STD_LOGIC_VECTOR (6 downto 0) ) ; END COMPONENT; FOR a1 : sevseg_sum WORK.sevenseg_sum; USE ENTITY SIGNAL sum : STD_LOGIC_VECTOR(3 downto 0) := "0000"; SIGNAL carry : STD_LOGIC := '1'; SIGNAL seg1 , seg2 : STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN a1 : sevseg_sum (sum,carry,seg1,seg2); PORT MAP a2 : sum <= "0001" AFTER 10 NS,"0110" AFTER 20 NS,"1110" AFTER 30 NS, "1001" AFTER 40 NS,"1111" AFTER 50 NS; END test ; نتایج شبيه سازی ها-4 در این بخ نتایج شبيه سشازی اسشت شرم شتفاده از نش شا اسش شا را بش شنچ هش بش : مدحوه م کنيدModelSim افزار WITH num SELECT seg1<= "1111001" when "00001", --1 "0100100" when "00010", --2 "0110000" when "00011", --3 "0011001" when "00100", --4 "0010010" when "00101", --5 "0000010" when "00110", --6 "1111000" when "00111", --7 "0000000" when "01000", --8 "0010000" when "01001", --9 "1000000" when "01010", --10 "1111001" when "01011", --11 "0100100" when "01100", --12 "0110000" when "01101", --13 "0011001" when "01110", --14 "0010010" when "01111", --15 "0000010" when "10000", --16 "1111000" when "10001", --17 "0000000" when "10010", --18 "0010000" when "10011", --19 "1000000" when "10100", --20 "1111001" when "10101", --21 "0100100" when "10110", --22 "0110000" when "10111", --23 "0011001" when "11000", --24 "0010010" when "11001", --25 "0000010" when "11010", --26 "1111000" when "11011", --27 "0000000" when "11100", --28 "0010000" when "11101", --29 "1000000" when "11110", --30 "1111001" when "11111", --31 "1000000" when others; --0 WITH num SELECT seg2<= "1000000" when "00001", --1 "1000000" when "00010", --2 "1000000" when "00011", --3 "1000000" when "00100", --4 "1000000" when "00101", --5 "1000000" when "00110", --6 "1000000" when "00111", --7 "1000000" when "01000", --8 "1000000" when "01001", --9 "1111001" when "01010", --10 "1111001" when "01011", --11 "1111001" when "01100", --12 "1111001" when "01101", --13 "1111001" when "01110", --14 "1111001" when "01111", --15 "1111001" when "10000", --16 "1111001" when "10001", --17 "1111001" when "10010", --18 "1111001" when "10011", --19 7 شکل :4شبيه سازی جمع کننده 4بيت با استفاده از دستور جمع مممول س شکل :5شبيه سازی Carry Ripple Adderس شکل :6شبيه سازی Carry Select Adderس شکل :7شبيه سازی Carry Ripple Adderدر حالت nبيت 8 و n=8س سn=8 و بيتn در حالتCarry Select Adder شبيه سازی:8 شکل س7seg decoder شبيه سازی:9 شکل س7seg روی دو ردد بيت4 میموع دو ردد نمای:9 شکل مراجع [1] Z. Navabi, VHDL Analysis & Modeling of Digital System. MC Grow Hill, 1998. 9
© Copyright 2026 Paperzz