5.½áÂÛ
ͨ¹ýΪÆÚÒ»ÖܵĿγÌÉè¼Æ£¬Íê³ÉÁ˱¾´ÎÉè¼ÆµÄ¼¼ÊõÖ¸±ê£¬¸Õ¿ªÊ¼Éè¼ÆµÄʱºò£¬ÓÉÓÚVHDLÓïÑÔ±àд³ÌÐòÕⲿ·Ö±È½ÏÄѶ®£¬ ËùÒԲο¼Á˺ܶàÍøÉϵijÌÐò£¬ÓÉÓÚ¶à¸öÄ£¿éµÄʹÓýÏΪ»ìÂÒ£¬ËùÒÔÎÒÑ¡ÔñÁ˽«¸÷¸öÄ£¿é·ÅÔÚÒ»¸ö¶¥²ãÎļþÀïÃæ£¬ÕâÑù¿´ÆðÀ´¸üºÃÀí½â£¬Ò²·½±ãÐ޸ġ£ÔÚÓ²¼þ²âÊԵĹý³ÌÖз¢ÏÖ²âÁ¿ÆµÂÊʱ£¬µµÎ»ÔÚ1Hz~9999999Hz£¬×îÖյõ½µÄ½á¹û£¬²âÁ¿½á¹û·Ç³£½Ó½ü²âÁ¿Öµ¡£
6.ÐĵÃÌå»á
±¾´Î¿Î³ÌÉè¼ÆÈÃÎÒÌåζµ½Éè¼Æµç·¡¢µ÷²âµç·¹ý³ÌÖеÄÐÁ¿àºÍ³É¹¦Ê±µÄϲÔá£Õâ´Î¿Î³ÌÉè¼Æ¸øÎÒÃÇÌṩÁËÒ»¸öÓ¦ÓÃ×Ô¼ºËùѧ֪ʶµÄ»ú»á£¬¾¡¹ÜÖ®Ç°ÕÆÎÕÕâ·½ÃæµÄ֪ʶ½ÏΪƶ·¦£¬µ«ÊÇ´Óµ½ÍøÉϲéÕÒ×ÊÁϵ½¶Ôµç·µÄÉè¼Æ¶Ôµç·µÄµ÷ÊÔÔÙµ½×îºóµç·µÄ³ÉÐÍ£¬ÎÒ¶¼ÊǾ¡È«Á¦ÈÏÕæÍê³É£¬²¢ÇÒÐéÐÄ»ý¼«µÄÏòËûÈËÇë½Ì£¬¹ý³ÌÖз¢ÏÖÁË×Ô¼ºÓкܶàÏà¹ØÖªÊ¶²¢²»ÕÆÎÕ¡£¼ì²é¹ý³ÌÊÇÒ»¸ö¿¼ÑéÈËÄÍÐĵĹý³Ì£¬²»ÄÜÓÐË¿ºÁµÄ¼±Ô꣬Âí»¢£¬¶Ôµç·µÄµ÷ÊÔÒªÒ»²½Ò»²½À´£¬ÓÐʱһ¸ö×ÖÑ۵ĴíÎó¾Í¿ÉÄÜÈÃÎÒÕҺܾã¬Èç¹ûûÓÐÄÍÐĺÍϸÐÄ£¬ÊǺÜÄÑÕÒµ½µÄ£¬ÔÚ¶¨Òå¹Ü½Åʱ£¬ÓÖÒªÇóÎÒÃǶԹܽÅÉèÖÃÇå³þ¡£ÔÚÕû¸ö¿Î³ÌÉè¼ÆÍêºó£¬ÎÒ¾õµÃѧÒÔÖÂÓÃÊÇѧϰµÄÖØÒª¹ý³Ì£¬ÒÔǰÉϿζ¼ÊÇÀíÂ۵Ķ«Î÷£¬Ö»Óн«ËùѧµÄ֪ʶÔËÓõ½Êµ¼ÊÖÐÈ¥£¬²ÅÄÜÌåÏÖÆä¼ÛÖµ¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬ÎÒѧµÃµ½ºÜ¶àÔÚÊé±¾ÉÏѧ²»µ½µÄ¶«Î÷£¬È磺¶Ô³ÌÐòµÄÕûÌå°ÑÎÕÌáÉýÁË£¬¶ÔVHDLÓïÑÔµÄÀí½â¸ü¼ÓÉî¿ÌµÈ¡£²»¹ÜÊÇÔÚQuartusÈí¼þµÄÓ¦Ó㬻¹ÊÇÔÚVHDL±à³ÌÓïÑÔµÄѧϰ£¬»òÊÇÓ²¼þµÄ²Ù×÷ÎÒ¶¼ÓÐÁËÒ»¶¨µÄÌá¸ß¡£Í¨¹ý½ôÕŵÄÉè¼ÆÊµ¼ù£¬ÎÒ¾õµÃ×Ô¼ºµÄ¶¯ÊÖÄÜÁ¦ÓÐÁ˺ܴóµÄÌá¸ß£¬ÔڿγÌÉè¼ÆÖÐ×Ô¼º¶¯ÄÔ×Ó½â¾öÓöµ½µÄÎÊÌ⣬Óв»¶®µÄµØ·½ÏòËûÈËÇë½Ì¡£Êé±¾ÉϵÄ֪ʶÓÐÁËÓÃÎäÖ®µØ£¬ÕâÓÖ¹®¹ÌºÍÉÁË×Ô¼ºµÄ֪ʶ½á¹¹¡£
6
¸½Â¼£º
³ÌÐò£º library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity plj is
port ( start:in std_logic; --¸´Î»ÐźŠclk :in std_logic; --ϵͳʱÖÓ clk2: IN STD_LOGIC; --±»²âÐźŠkey2 :in std_logic; --µÍËÄλÏÔʾ¿ØÖÆ yy1:out std_logic_vector(7 downto 0); --°Ë¶ÎÂë
w1 :out std_logic_vector(3 downto 0)); --ÊýÂë¹ÜλѡÐźŠend plj;
architecture behav of plj is signal clk1: std_logic; --±»²âÐźÅÊäÈë¶Ë signal b1,b2,b3,b4,b5,b6,b7:std_logic_vector(3 downto 0); --Ê®½øÖƼÆÊýÆ÷ signal bcd:std_logic_vector(3 downto 0); --Êý¾ÝËø´æÆ÷ signal q :integer range 0 to 49999999; --Ãë·ÖƵϵÊý
signal qq : integer range 0 to 499999; --¶¯Ì¬É¨Ãè·ÖƵϵÊý
signal en,bclk:std_logic; --ʹÄÜÐźţ¬ÓÐЧ±»²âÐźŠsignal sss : std_logic_vector(3 downto 0); --СÊýµã signal bcd0,bcd1,bcd2,bcd3: std_logic_vector(3 downto 0); --Ëø´æ7λʮ½øÖƼÆÊýÆ÷ÖÐÓÐЧµÄ¸ß4λ»òµÍ4λÊý¾Ý
begin
clk1<=clk2; --±»²âÐźŸ³¸ø±»²âÐźÅÊäÈë¶Ë
second:process(clk) --´Ë½ø³Ì²úÉúÒ»¸ö³ÖÐøÊ±¼äΪһÃëµÄµÄÕ¢ÃÅÐźŠbegin
if start='0' then q<=0;
elsif clk'event and clk='1' then if q<49999999 then q<=q+1; else q<=49999999; end if; end if;
if q<49999999 and start='1' then en<='1'; else en<='0'; end if; end process;
7
and2:process(en,clk1) --´Ë½ø³ÌµÃµ½7λʮ½øÖƼÆÊýÆ÷µÄ¼ÆÊýÂö³å begin
bclk<=clk1 and en; end process;
com:process(start,bclk) --´Ë½ø³ÌÍê³É¶Ô±»²âÐźżÆÂö³åÊý begin
if start='0' then --¸´Î»
b1<=\ elsif bclk'event and bclk='1' then
if b1=\ --´ËIFÓï¾äÍê³É¸öλʮ½øÖƼÆÊý if b2=\ --´ËIFÓï¾äÍê³É°Ùλʮ½øÖƼÆÊý if b3=\ --´ËIFÓï¾äÍê³Éǧλʮ½øÖƼÆÊý if b4=\ --´ËIFÓï¾äÍê³ÉÍòλʮ½øÖƼÆÊý if b5=\ --´ËIFÓï¾äÍê³ÉÊ®Íòλʮ½øÖƼÆÊý if b6=\ --´ËIFÓï¾äÍê³É°ÙÍòλʮ½øÖƼÆÊý if b7=\´ËIFÓï¾äÍê³ÉǧÍòλʮ½øÖƼÆÊý else b7<=b7+1; end if;
else b6<=b6+1; end if;
else b5<=b5+1; end if;
else b4<=b4+1; end if;
else b3<=b3+1; end if;
else b2<=b2+1; end if;
else b1<=b1+1; end if; end if; end process;
process(clk) --´Ë½ø³Ì°Ñ7λʮ½øÖƼÆÊýÆ÷ÓÐЧÊý¾ÝËÍÈëbcd0~3,²¢µÃµ½Ð¡ÊýµãÐÅÏ¢ begin
if rising_edge(clk) then if en='0' then
if key2='0' then bcd3<=b4; bcd2<=b3; bcd1<=b2; bcd0<=b1; sss<=\ else if b7>\ sss<=\ --СÊýµãÔÚµÚ4λ
8
elsif b6>\then bcd3<=b6; bcd2<=b5; bcd1<=b4; bcd0<=b3; sss<=\--СÊýµãÔÚµÚ3λ elsif b5>\then bcd3<=b5; bcd2<=b4; bcd1<=b3; bcd0<=b2; sss<=\СÊýµãÔÚµÚ2λ else bcd3<=b4; bcd2<=b3; bcd1<=b2; bcd0<=b1; sss<=\ --µ±Ð¡ÓÚ10kHzʱ£¬Ð¡ÊýµãÈ¥µô,µ¥Î»±äΪHz end if; end if; end if; end if; end process;
weixuan:process(clk) --´Ë½ø³ÌÍê³ÉÊý¾ÝµÄ¶¯Ì¬ÏÔʾ begin
if clk'event and clk='1' then
if qq< 99999 then qq<=qq+1;bcd<=bcd3; w1<=\ if sss=\ --ÏÔʾµÚ1λµÄÊýÖµºÍСÊýµã else yy1(0)<='1'; end if;
elsif qq<199999 then qq<=qq+1;bcd<=bcd2; w1<=\ if sss=\ --ÏÔʾµÚ2λµÄÊýÖµºÍСÊýµã else yy1(0)<='1'; end if;
elsif qq<299999 then qq<=qq+1;bcd<=bcd1; w1<=\ if sss=\ --ÏÔʾµÚ3λµÄÊýÖµºÍСÊýµã else yy1(0)<='1'; end if;
elsif qq<399999 then qq<=qq+1;bcd<=bcd0; w1<=\ if sss=\ --ÏÔʾµÚ4λµÄÊýÖµºÍСÊýµã else yy1(0)<='1'; end if; else qq<=0; end if; end if; end process;
m0: process (bcd) --ÒëÂë begin
case bcd is
when \ when \
9
when \ when \ when \ when \ when \ when \ when \ when \ when others=>yy1(7 downto 1)<=\ end case; end process; end behav;
10
Ïà¹ØÍÆ¼ö£º