´Óͼ2.3.7¿ÉÒÔ¿´³öoclk½øÎ»Ðźųɹ¦ÊµÏÖÓëÇåÁãµÄͬ²½£¬Ïû³ýÁ˵ç·ðÏÕ¡£
´ËÍ⣬ÎÒÃÇ»¹¿¼ÂÇÁË´ÓÁíÒ»¸ö·½ÃæÀ´½â¾öÕâ¸öÎÊÌâ¡£ÓÉÓÚÊDzÉÓÿɱà³ÌÂß¼Æ÷¼þ£¨PLD£©À´ÊµÏÖµç·Éè¼Æ£¬Ó²¼þÃèÊöÓïÑÔ£¨HDL£¬Hardware Description Language£©¿ÉÒÔÃèÊöÓ²¼þµç·µÄ¹¦ÄÜ,ÎÒÃDzÉÓÃÓ¦ÓÃ×îΪ¹ã·ºµÄVHDLÓïÑÔ½øÐÐÁËÄ£60¼ÆÊýÆ÷µÄÉè¼Æ£¬³É¹¦µÄÏû³ýÁ˵ç·ÖеÄðÏÕ¡£ÒÔÏÂΪÆäÔ´´úÂ룺 library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all; ¿âºÍ°ü¼¯ºÏ˵Ã÷Óï¾ä
ENTITY mod60vhdl IS PORT (
ci :IN std_logic;
nreset :IN std_logic; ʵÌåÃèÊö²¿·Ö load :IN std_logic;
d :IN std_logic_vector(7 downto 0); clk :IN std_logic; co :out std_logic;
qh :buffer std_logic_vector(3 downto 0); ql :buffer std_logic_vector(3 downto 0) );
END mod60vhdl;
ARCHITECTURE behave OF mod60vhdl IS BEGIN
co<='1' when(qh=\½á¹¹ÌåÃèÊö
PROCESS(clk,nreset) ½ø³Ì¼°Ãô¸Ð±í BEGIN
IF(nreset='0')THEN ÇåÁã¶ËµÍµçƽÇåÁã qh<=\ql<=\
ELSIF(clk 'EVENT AND clk='1')THEN ʱÖÓÐźÅÉÏÉýÑØÀ´ÁÙ if(load='1')then ÖÃÊý¶Ë¸ßµçƽͬ²½ÖÃÊý qh<=d(7 downto 4);
9
ql<=d(3 downto 0);
elsif(ci='1')then
if(ql=9)then ¸÷λ¼ÆÂúºó×Ô¶¯ÇåÁã ql<=\if(ql=5)then qh<=\else
qh<=qh+1; 묒ÂúÔò¼Ó¼ÆÊý end if;
else ql<=ql+1; end if; END IF; END IF;
END PROCESS; ½áÊø½ø³Ì END behave; ½áÊø½á¹¹Ìå
¿É¼û£¬²ÉÓÃVHDL½øÐÐÉè¼Æ£¬²»¾ÖÏÞÓÚ½öÓеÄÔªÆ÷¼þ£¬Ïà±ÈÔÀíͼÉè¼Æ·½Ê½£¬Éè¼ÆµÄÁé»îÐÔ´ó´óÔö¼Ó£¬²¢ÇÒ˼·ÇåÎú£¬Âß¼ÑÏÃÜ£¬Éè¼ÆÆðÀ´Ê¡Ê±Ê¡Á¦¡£
ͼ2.3.10 ¼ÆÊýµç·µÄ×ÜÁ¬½Óͼ
¿ÉÒÔ·¢ÏÖ£¬quartus2µÄ·â×°¹¦ÄÜʹÉè¼Æ¹ý³ÌÌõÀíÇåÎú£¬Á¬Ïß¼ò½à£¬±ãÓÚʶͼ¡£Õâ¼ÈÊÇ×Ô¶¥ÏòÏÂÄ£¿é»¯Éè¼Æ·½·¨µÄ»ù±¾ÒªÇó£¬Ò²ÊÇÆä±ØÈ»½á¹û¡£
2.3.3 ÒëÂëÏÔʾµç·
´Ó¼ÆÊýµç·ËͳöµÄ¸÷λ¼ÆÊýÐźÅΪ8421BCDÂ룬²»ÄÜÖ±½ÓË͵½ÊýÂë¹Ü½øÐÐÏÔʾ¡£Ê×ÏÈÒª¾¹ýÒëÂëµç·½«ÆäÒëΪ¶ÔÓ¦µÄ¶ÎÂ룬²ÅÄÜʹÊýÂë¹ÜÏÔʾÕýÈ·µÄÊý×Ö¡£´ËÍ⣬Ϊ½ÚÊ¡µçÄܺ͵ç·Á¬Ïߣ¬Ðè²ÉÓö¯Ì¬ÏÔʾµç·¡£Æä»ù±¾ÔÀíΪ£ºÔÚÈÎһʱÖÓÖÜÆÚ£¬Ö»ÓÐÒ»¸öÊýÂë¹Ü±»µãÁÁ£¬²¢ÏÔʾÆä¶ÔÓ¦µÄÊý×Ö¡£Áù¸öÊýÂë¹Ü¼°Æä¶ÎÂëÔÚѡͨµç·µÄ×÷ÓÃÏÂÂÖÁ÷±»µãÁÁºÍ´«Êä¡£ÓÉÓÚÈËÑÛµÄÊÓ¾õÔÝÁôЧӦ£¬µ±Ñ¡Í¨µÄƵÂÊ×ã¹»¿ìʱ£¨>60HZ£©,ÈËÑÛ½«»á¸Ð¾õµ½ÁùλÊýÂë¹Ü±»Í¬Ê±µãÁÁ¡£ÒÔÏ·ֱðÌÖÂÛÒëÂëºÍÏÔʾµç·µÄ¾ßÌåÉè¼Æ¡£
10
ͼ 2.3.11 Æß¶ÎÊýÂë¹ÜµÄ½á¹¹
a b c d e f g
f
a
b g e
c d
ÊýÂë¹ÜµÄ¸ù¾ÝµãÁÁʱ¹«¹²¶ËµÄµçƽ·ÖΪ¹²ÒõºÍ¹²Ñô¡£ÏÔʾÒëÂëÆ÷µÄ¹¦ÄÜÊǽ«±íʾÊý×ÖµÄBCDÂëת»»ÎªÆß¶ÎÏÔʾÂë¡£
ÒÔÏÂΪÆäÕæÖµ±í£º
D C B A a b c d e f g ÏÔʾ 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 0 0 0 1 0 0 1 0 2 0 0 1 1 0 0 0 0 1 1 0 3 0 1 0 0 1 0 0 1 1 0 0 4 0 1 0 1 0 1 0 0 1 0 0 5 0 1 1 0 0 1 0 0 0 0 0 6 0 1 1 1 0 0 0 1 1 1 1 7 0 0 0 0 0 0 0 0 0 0 0 8 1 0 0 1 0 0 0 0 1 0 0 9
ͼ2.3.12 7447ÒëÂëÆ÷
»¯¼òºó±í´ïʽΪ£º
a=ABCD+ABC b=ABC+ABC c=ABC
d=ABC+ABC+ABCD e=A+ABC
f=AB+ABCD+ABC g=ABC+BCD
ÆäÖÐLTN¡¢RBINÒÔ¼°BINµÈ¹Ü½ÅÓëÏûÒþ¡¢µÆ²âÊÔÓйأ¬±¾´ÎÉè¼Æ²»Ó迼ÂÇ£¬¶¼ÖÃΪ¸ßµçλ¡£
11
¶¯Ì¬ÏÔʾ²¿·ÖµÄ»ù±¾¿òͼÈçÏ£º
ͼ 2.3.13 ¶¯Ì¬ÏÔʾµç·¿òͼ
DIG08421BCDSLDIG1SHMLMHHLHHDIG0DIG1DIG2DIG3DIG4DIG5DIG58421BCDabcdefg24Ñ¡4MUXÏÔʾÒëÂëÆ÷7447DIG2DIG3A2 A1 A0CLK2ÒëÂëÆ÷DIG4¼ÆÊýÆ÷74138
¼ÆÊýÆ÷ÔÚʱÖÓÐźŵÄ×÷ÓÃÏ£¬²úÉúģΪ6µÄBCDÂë¼ÆÊýÐźţ¬·Ö±ðË͵½24Ñ¡4MUXºÍ74138ÖÐ×÷ΪµØÖ·Ðźš£24Ñ¡4Êý¾ÝÑ¡ÔñÆ÷¸ù¾ÝA2A1A0µÄֵѡÔñSL¡¢SH¡¢ML¡¢MH¡¢HL¡¢HHÖеÄһ·Êý¾ÝË͵½7447ÒëÂëÆ÷½øÐÐÒëÂ룬ͬʱ74138ÒëÂëÆ÷½«A2A1A0µÄÖµÒëÂëºó·Ö±ðÊä³öµ½ÁùƬÊýÂë¹ÜµÄ¹²Òõ¶Ë£¬×÷ΪƬѡÐźš£ÕâÑù£¬ÔÚʱÖÓÐźÅCLK2µÄÇý¶¯Ï£¬¸÷¸öÊýÂë¹ÜÒÀ´ÎÂÖÁ÷ÏÔʾ¶ÔÓ¦µÄÊýÖµ¡£
ÆäÖУ¬24Ñ¡4MUX¿ÉÒÔÓÃËÄÆ¬74151À´×é³É¡£
ͼ 2.3.14 74151
74151оƬΪ8Ñ¡1Êý¾ÝÑ¡Ôñ Æ÷¡£Æä¸ù¾ÝABC½ÅÊäÈëµÄBCD ÂëÖµ·Ö±ðѡͨD0~D7µÄÖеÄһ·£¬´ÓYÊä³ö¡£GNΪʹÄÜ¿ØÖƶˡ£
12