µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

¡¶EDA¼¼ÊõʵÓý̳̣¨µÚÎå°æ£©¡·Ï°Ìâ´ð°¸£¨µÚ1~10Õ£©--ÅË

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2025/7/21 3:09:28 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

ENTITY g_5_cmp IS

PORT( d_in : IN STD_LOGIC_VECTOR(3 DOWNTO 0); --ÊäÈëÊý¾Ý

cmp_out : OUT STD_LOGIC); --±È½ÏÊä³ö(1:ÊäÈëÊý¾Ý>5) END g_5_cmp;

ARCHITECTURE BHV OF g_5_cmp IS BEGIN

PROCESS(d_in) BEGIN

IF(d_in>\

cmp_out<='1'; --ÊäÈëÊý¾Ý´óÓÚ5£¬±È½ÏÊä³ö1¡£ else

cmp_out<='0'; --ÊäÈëÊý¾ÝСÓÚµÈÓÚ5£¬±È½ÏÊä³ö0¡£ END IF;

END PROCESS; END BHV;

3-7 ÀûÓÃifÓï¾äÉè¼ÆÒ»¸öÈ«¼ÓÆ÷¡£ --3-7 ÀûÓÃifÓï¾äÉè¼ÆÒ»¸öÈ«¼ÓÆ÷

LIBRARY IEEE; --1λ¶þ½øÖÆÈ«¼ÓÆ÷¶¥²ãÉè¼ÆÃèÊö USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY f_adder IS

PORT (ain,bin,cin : IN STD_LOGIC; cout,sum : OUT STD_LOGIC ); END ENTITY f_adder;

ARCHITECTURE fd1 OF f_adder IS BEGIN

PROCESS (ain,bin,cin) BEGIN

IF ain='1' XOR bin='1' XOR cin='1' THEN sum<='1'; ELSE sum<='0'; END IF;

IF (ain='1' AND bin='1')OR(ain='1' AND cin='1')OR(bin='1' AND cin='1')OR(ain='1' AND bin='1' AND cin='1')

THEN cout<='1'; ELSE cout<='0'; END IF;

END PROCESS;

END ARCHITECTURE fd1;

3-8 Éè¼ÆÒ»¸öÇó²¹ÂëµÄ³ÌÐò£¬ÊäÈëÊý¾ÝÊÇÒ»¸öÓзûºÅµÄ8λ¶þ½øÖÆÊý¡£ --½â£º3-8 Éè¼ÆÒ»¸öÇó²¹ÂëµÄ³ÌÐò£¬ÊäÈëÊý¾ÝÊÇÒ»¸öÓзûºÅµÄ8λ¶þ½øÖÆÊý¡£ LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY org_patch IS

PORT( org_data : IN STD_LOGIC_VECTOR(7 DOWNTO 0);--Ô­ÂëÊäÈë patch_data : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));--²¹ÂëÊä³ö

END org_patch;

ARCHITECTURE BHV OF org_patch IS BEGIN

PROCESS(org_data) BEGIN

IF(org_data(7)='0') THEN

patch_data<=org_data; --org_data>=0£¬²¹Âë=Ô­Âë¡£ else

patch_data<=org_data(7)&(not org_data(6 DOWNTO 0))+1;--org_data<0£¬²¹Âë=|Ô­Âë|È¡·´+1¡£ END IF;

END PROCESS; END BHV;

3-9 Éè¼ÆÒ»¸ö¸ñÀ×ÂëÖÁ¶þ½øÖÆÊýµÄת»»Æ÷¡£ --3-9 Éè¼ÆÒ»¸ö¸ñÀ×ÂëÖÁ¶þ½øÖÆÊýµÄת»»Æ÷¡£ LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; --ΪʹÓÃÀàÐÍת»»º¯Êý£¬´ò¿ª´Ë³ÌÐò°ü¡£ ENTITY grayTObinary IS

port( DIN: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT: OUT BIT_VECTOR(3 DOWNTO 0)); END grayTObinary;

ARCHITECTURE behave OF grayTObinary IS BEGIN

PROCESS (DIN) BEGIN

CASE DIN IS

WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN \ WHEN OTHERS => NULL;

END CASE; END PROCESS; END behave;

3-10 ÀûÓÃifÓï¾äÉè¼ÆÒ»¸ö3λ¶þ½øÖÆÊýA[2..0]¡¢B[2..0]µÄ±È½ÏÆ÷µç·¡£¶ÔÓڱȽÏ(AB)¡¢(A=B)µÄ½á¹û·Ö±ð¸ø³öÊä³öÐźÅLT=1¡¢GT=1¡¢EQ=1¡£

--3-10 ÀûÓÃifÓï¾äÉè¼ÆÒ»¸ö3λ¶þ½øÖÆÊýA[2..0]¡¢B[2..0]µÄ±È½ÏÆ÷µç·¡£

--¶ÔÓڱȽÏ(AB)¡¢(A=B)µÄ½á¹û·Ö±ð¸ø³öÊä³öÐźÅLT=1¡¢GT=1¡¢EQ=1¡£ LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY COMP IS

PORT( A,B: IN STD_LOGIC_VECTOR(2 DOWNTO 0); --Á½¸ö3λÊäÈë LT: OUT STD_LOGIC; --СÓÚÊä³ö GT: OUT STD_LOGIC; --´óÓÚÊä³ö EQ: OUT STD_LOGIC); --µÈÓÚÊä³ö END ENTITY COMP;

ARCHITECTURE ONE OF COMP IS BEGIN

PROCESS(A,B) BEGIN

IF (AB) THEN GT<='1';ELSE GT<='0';END IF; IF (A=B) THEN EQ<='1';ELSE EQ<='0';END IF; END PROCESS;

-- LT <= (AB); --´óÓÚ -- EQ <= (A=B); --µÈÓÚ END ARCHITECTURE ONE;

3-11 ÀûÓÃ8¸öÈ«¼ÓÆ÷£¬¿ÉÒÔ¹¹³ÉÒ»¸ö8λ¼Ó·¨Æ÷¡£ÀûÓÃÑ­»·Óï¾äÀ´ÊµÏÖÕâÏîÉè¼Æ¡£²¢ÒÔ´ËÏîÉè¼ÆÎªÀý£¬Ê¹ÓÃGENERIC²ÎÊý´«µÝµÄ¹¦ÄÜ£¬Éè¼ÆÒ»¸ö32λ¼Ó·¨Æ÷¡£ --3-11 ÀûÓÃGENERIC²ÎÊýºÍÑ­»·Óï¾ä½«8¸öÈ«¼ÓÆ÷¹¹³É³É8λ¼Ó·¨Æ÷ LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY ADDER8B IS

GENERIC(S: INTEGER:=8); --¶¨Òå²ÎÊýSΪÕûÊýÀàÐÍ£¬ÇÒµÈÓÚ4 PORT(A,B: IN STD_LOGIC_VECTOR(S-1 DOWNTO 0); CIN: IN STD_LOGIC;

SUM: OUT STD_LOGIC_VECTOR(S-1 DOWNTO 0); COUT: OUT STD_LOGIC); END ENTITY ADDER8B;

ARCHITECTURE ONE OF ADDER8B IS BEGIN

PROCESS(A,B,CIN)

VARIABLE S1: STD_LOGIC_VECTOR(S-1 DOWNTO 0);

VARIABLE C1: STD_LOGIC;--_VECTOR(S DOWNTO 0); BEGIN C1:=CIN; --C1(0):=CIN;

FOR i IN 1 TO S LOOP

IF A(i-1)='1' XOR B(i-1)='1' XOR C1='1' THEN S1(i-1):='1'; ELSE S1(i-1):='0'; END IF;

IF (A(i-1)='1' AND B(i-1)='1')OR(A(i-1)='1' AND C1='1')OR(B(i-1)='1' AND C1='1')OR(A(i-1)='1' AND B(i-1)='1' AND C1='1') THEN C1:='1'; ELSE C1:='0'; END IF; END LOOP;

SUM<=S1;COUT<=C1; END PROCESS;

END ARCHITECTURE ONE;

3-12 Éè¼ÆÒ»¸ö2λBCDÂë¼õ·¨Æ÷¡£×¢Òâ¿ÉÒÔÀûÓÃBCDÂë¼Ó·¨Æ÷À´ÊµÏÖ¡£ÒòΪ¼õÈ¥Ò»¸ö¶þ½øÖÆÊý£¬µÈÓÚ¼ÓÉÏÕâ¸öÊýµÄ²¹Âë¡£Ö»ÊÇÐèҪעÒ⣬×÷Ϊʮ½øÖƵÄBCDÂëµÄ²¹Âë»ñÈ¡·½Ê½ÓëÆÕͨ¶þ½øÖÆÊýÉÔÓв»Í¬¡£ÎÒÃÇÖªµÀ¶þ½øÖÆÊýµÄ²¹ÂëÊÇÕâ¸öÊýµÄÈ¡·´¼Ó1¡£¼ÙÉèÓÐÒ»¸ö4λ¶þ½øÖÆÊýÊÇ0011£¬ÆäÈ¡²¹Êµ¼ÊÉÏÊÇÓÃ1111¼õÈ¥0011£¬ÔÙ¼ÓÉÏl¡£ÏàÀàËÆ£¬ÒÔ4λ¶þ½øÖƱí´ïµÄBCDÂëµÄÈ¡²¹ÔòÊÇÓÃ9(1001)¼õÈ¥Õâ¸öÊýÔÙ¼ÓÉÏ1¡£

--3-12 Éè¼Æ2λBCDÂë¼õ·¨Æ÷(ÀûÓüõÈ¥ÊýµÈÓÚ¼ÓÉϸÃÊý²¹Âë·½·¨) (a-b=a+[-b]²¹Âë) LIBRARY IEEE; --´ýÀý»¯Ôª¼þ USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_arith.ALL; USE IEEE.STD_LOGIC_unsigned.ALL; ENTITY SUB2BCD IS

PORT(a,b: IN STD_LOGIC_VECTOR(7 DOWNTO 0); diff: out STD_LOGIC_VECTOR(7 DOWNTO 0); sout: OUT STD_LOGIC); END SUB2BCD;

ARCHITECTURE behave OF SUB2BCD IS BEGIN

PROCESS(a,b)

VARIABLE cc: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

IF a

IF cc(3 DOWNTO 0) > \ IF cc(7 DOWNTO 4) > \

cc:=a+cc;

¡¶EDA¼¼ÊõʵÓý̳̣¨µÚÎå°æ£©¡·Ï°Ìâ´ð°¸£¨µÚ1~10Õ£©--ÅË.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c8ysad731fy9ersa9r15c_3.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©

Ïà¹ØÍÆ¼ö£º

ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top