»ùÓÚVHDLµÄ½»Í¨µÆ¿ØÖÆϵͳµÄÉè¼Æ ÁªÏµ¿Í·þ

·¢²¼Ê±¼ä : ÐÇÆÚÁù ÎÄÕ»ùÓÚVHDLµÄ½»Í¨µÆ¿ØÖÆϵͳµÄÉè¼Æ¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ3718202de2bd960590c677f1

µÚ4Õ ½»Í¨µÆ¿ØÖÆϵͳµÄÉè¼Æ

reset£ºÏµÍ³ÄÚ²¿×Ô¸´Î»Ðźţ»

ena_scan£º½ÓÊÕÓÉʱÖÓ·¢Éúµç·ÌṩµÄ250HzµÄʱÖÓÂö³åÐźţ» recount£º½ÓÊÕÓɽ»Í¨µÆÐźſØÖƵç·²úÉúµÄÖØмÆÊýµÄʹÄÜ¿ØÖÆÐźţ» sign_state£º½ÓÊÕÓɽ»Í¨µÆÐźſØÖƵç·²úÉúµÄ״̬Ðźš£ ϵͳÊä³öÐźţº

load£º¸ºÔð²úÉú¼ÆÊýÆ÷ËùÐèÒªµÄ¼ÆÊýÊýÖµ¡£ ¾­·ÂÕæºóµÃµ½µÄʱÐòͼ(¼ûͼ7)£º

ÂÛÎÄ×ÊÁϼ¯ÖÐÓª

http://shop.paipai.com/15410938

ͼ4-7 ¼ÆÊýÃëÊýÑ¡Ôñµç·ʱÐòͼ

ÓɼÆÊýÃèÊöÑ¡Ôñµç·µÄʱÐòͼ(¼ûͼ7)¿ÉÒÔ¿´³öÕâ¶Î³ÌÐòÖж¨ÒåÁËÔÚÕý³£³µÁ÷

Á¿Çé¿öÏ£¬¶«Î÷¼°Äϱ±·½ÏòºìµÆ¡¢»ÆµÆºÍÂ̵ÆÐèҪά³ÖµÄÃëÊý·Ö±ðÊÇ15s¡¢5sºÍ25s¡£

architecture bhv of hld2 is

constant redew_time:integer:=15;---¶«Î÷·½ÏòºìµÆÉ趨Ϊ15s¡£ constant yellowew_time:integer:=5;--¶«Î÷·½Ïò»ÆµÆÉ趨Ϊ5s¡£ constant greenew_time:integer:=25;--¶«Î÷·½ÏòÂ̵ÆÉ趨Ϊ25s¡£

13

constant redsn_time:integer:=15;--Äϱ±·½ÏòºìµÆÉ趨Ϊ15s¡£ constant yellowsn_time:integer:=5;--Äϱ±·½Ïò»ÆµÆÉ趨Ϊ5s¡£ constant greensn_time:integer:=25;--Äϱ±·½ÏòÂ̵ÆÉ趨Ϊ25s¡£ begin

process(reset,clk) begin

if reset='1' then load<=\ elsif (clk'event and clk='1') then if (ena_scan='1' and recount='1') then case sign_state is

when \ --sign_state=¡°000¡±Ê±£¬Äϱ±·½ÏòÂ̵ÆÁÁ25s¡£

when \ --sign_state=¡°001¡±Ê±£¬Äϱ±·½Ïò»ÆµÆÁÁ5s¡£

when \ --sign_state=¡°010¡±Ê±£¬Äϱ±·½ÏòºìµÆÁÁ15s¡£ when \ --sign_state=¡°011¡±Ê±£¬¶«Î÷·½ÏòºìµÆÁÁ15s¡£

14

µÚ4Õ ½»Í¨µÆ¿ØÖÆϵͳµÄÉè¼Æ

when \ --sign_state=¡°100¡±Ê±£¬¶«Î÷·½Ïò»ÆµÆÁÁ5s¡£

when \ --sign_state=¡°101¡±Ê±£¬¶«Î÷·½ÏòÂ̵ÆÁÁ25s¡£

when others=>load<=conv_std_logic_vector(yellowsn_time,8); end case;

µ±ÍⲿÐźŷ¢ÉúÆ÷ÌṩÁË1kHZµÄʱÖÓÐźţ¬²¢ÇÒÖØмÆÊýÐźÅ(recount)Ϊ¡°1¡±Ê±,loadÐźžͻᰴÕÕÔ¤ÏÈÉèÖõÄÊýÖµÖð1µÝ¼õ,Ö±ÖÁ¼õµ½ÁãΪֹ,µ±ÏÂÒ»¸öÖØмÆÊýÐźÅ(recount)ÔÙ´ÎΪ¡°1¡±Ê±£¬»áÖظ´´Ë¹ý³Ì¡£

ÔÚÕâ¶Î³ÌÐòµÄÉè¼ÆÖÐÓõ½ÁËconv_std_logic_vector(value,n)Óï¾ä£¬ËüµÄÓ÷¨¾ÍÊǽ«ÒѾ­¶¨ÒåµÄÊýÖµ (value)ת»»³Énλ(bit)µÄ±íʾ·½·¨¡£ÀýÈç³ÌÐòÖУºwhen \¾ÍÊǽ«Ê®½øÖƵÄ25ת»»³ÉÊ®Áù½øÖƵÄ19£¬Õâ¾ÍʹÉè¼Æ¼õÉÙÁ˺ܶ಻±ØÒªµÄÂé·³¡£³ÌÐò´úÂë¼û¸½Â¼2.¼ÆÊýÃëÊýÑ¡Ôñµç·³ÌÐò´úÂë 4.3.3 µ¹¼Æʱ¿ØÖƵç·

ͨ¹ýÈÕ³£Éú»îÖеĹ۲죬ÎÒ·¢ÏÖÔÚһЩ½»Í¨Â·¿ÚÒѾ­¿ªÊ¼Ê¹Óõ¹¼ÆʱÏÔʾÆ÷£¬ËüÃǵÄ×÷ÓþÍÊÇÓÃÀ´Ìáʾ³µÁ¾ÐÐÈËÄ¿Ç°»¹Óж೤ʱ¼äÐźŵƻᷢÉú±ä»¯£¬ÕâÑù³µÁ¾ÐÐÈ˾ͿÉÒÔÌáÇ°ÅжÏÊÇ·ñÓÐ×ã¹»µÄʱ¼äͨ¹ý·¿Ú£¬½ø¶ø¾Í¿ÉÒÔ±ÜÃâºÜ¶àÒâÍâʹʵķ¢Éú¡£ÀýÈ磺Äϱ±·½ÏòÂ̵ƣ¬³µÁ¾´¦ÓÚÕý³£ÐÐÊ»ÖУ¬¶«Î÷·½ÏòºìµÆ£¬³µÁ¾´¦ÓڵȴýÖУ¬ÈôÄϱ±·½ÏòÐÐÊ»µÄ³µÁ¾¿´µ½µ¹¼ÆʱÏÔʾÆ÷ÉÏ¿ÉÒÔͨÐеÄʱ¼äºÜ¶Ì£¬¿ÉÄܾͻá·ÅÂýËٶȵȴýÏÂÒ»´ÎͨÐУ¬ÕâÑùÔÚ¶«Î÷·½ÏòÂ̵Æʱ£¬³µÁ¾¾ÍÄܹ»Õý³£ÐÐÊ»£¬²»»áΪµÈ´ýÄϱ±·½ÏòÇ¿ÐеijµÁ¾¶øµ¢Îó¸ü¶àµÄʱ¼ä¡£Èç´ËÑ­»·ÏÂÈ¥£¬µÀ·¾Í»á³©Í¨ÎÞ×èÁË¡£¿¼Âǵ½ÓÐЩ·¿ÚµÄ½»Í¨Óµ¶ÂÏÖÏó½ÏΪÑÏÖØ£¬³µÁ¾»áÔÚµÀ·ÉÏÅųɺܳ¤µÄÒ»¶Ó£¬ÕâÑùÅÅÔÚ½ÏÔ¶¾àÀëµÄ˾»ú¾ÍºÜÄÑ¿´Çå³þµ¹¼ÆʱÏÔʾÆ÷Éϱ仯µÄÊý×Ö£¬ÓпÉÄÜ»áÓ°Ïìµ½³µÁ¾Ö®¼äµÄÕý³£ÐÐÊ»¡£Òò´Ë£¬Èç¹û²ÉÓ÷¢¹â¶þ¼«¹Ü×÷Ϊµ¹¼ÆʱµÄÏÔ

15

ʾװÖþͻáʹ˾»úºÍÐÐÈËһĿÁËÈ»£¬Í¬ÑùÒ²Äܹ»Æ𵽺ܺõÄÌáʾ×÷Óá£ËùÒÔ£¬hld3µ¹¼Æʱ¿ØÖƵç·(¼ûͼ8)×îÖ÷ÒªµÄ¹¦ÄܾÍÊǸºÔð½ÓÊÕhld2µç·Êä³öµÄÖµ£¬È»ºó½«Æäת»»³ÉBCDÂ룬²¢ÀûÓ÷¢¹â¶þ¼«¹ÜÏÔʾ³öÀ´£¬ÈóµÁ¾ÐÐÈËÄܹ»Çå³þµØÖªµÀÔÙ¹ý¶à¾ÃÐźŵƾͻᷢÉú±ä»¯¡£

ͼ4-8 µ¹¼Æʱ¿ØÖƵç·

ϵͳÊäÈëÐźţº

clk£ºÓÉÍⲿÐźŷ¢ÉúÆ÷Ìṩ1kHzµÄʱÖÓÐźţ» reset£ºÏµÍ³ÄÚ²¿×Ô¸´Î»Ðźţ»

ena_1hz£º½ÓÊÕÓÉʱÖÓ·¢Éúµç·ÌṩµÄ1HzµÄÂö³åÐźţ» recount£ºÖØмÆÊýµÄʹÄÜ¿ØÖÆÐźţ» load£º¸ºÔð½ÓÊÕ¼ÆÊýÆ÷ËùÐèÒªµÄ¼ÆÊýÊýÖµ¡£ ϵͳÊä³öÐźţº

led£º¸ºÔ𽫼ÆÊýÊýֵת»»³ÉBCDÂ룬²¢ÀûÓ÷¢¹â¶þ¼«¹ÜÏÔʾµ¹¼Æʱ״̬£» next_state£ºµ±¼ÆÊýÆ÷¼ÆʱÍê±Ïºó£¬¸ºÔð²úÉúÒ»¸öÂö³åÐźţ¬×÷ΪÏÂÒ»¸ö״̬µÄ´¥·¢Ðźš£

16