eda¼¼Êõ¼°Ó¦ÓÿκóϰÌâ´ð°¸ ÏÂÔØ±¾ÎÄ

²»Í¬µã£ºcaseÓï¾äÖ»ÄÜÔÚ½ø³ÌÖÐʹÓã¬ÖÁÉÙ°üº¬Ò»¸öÌõ¼þÓï¾ä£¬¿ÉÒÔÓжà¸ö¸³ÖµÄ¿±ê£»with_seclectÓï¾ä¸ù¾ÝÂú×ãµÄÌõ¼þ£¬¶ÔÐźŽøÐи³Öµ£¬Æä¸³ÖµÄ¿±êÖ»ÓÐÒ»¸ö£¬ÇÒ±ØÐëÊÇÐźš£ ¢Úlibrary ieee; use ieee.std_logic_1164.all; entity mux is

port( dina : in std_logic_vector(0 to 15); dinb : in

std_logic_vector(0 to 15); dinc : in std_logic_vector(0 to 15); dind : in std_logic_vector(0 to 15);

sel: in std_logic_vector(0 to 1); dout : out std_logic_vector(0 to 15)); end mux;

architecture rtl of mux is begin with sel select

dout=dina when 00,dinb when 01, dinc when 10, dind when 11,

zzzzzzzzzzzzzzzz when others; end rtl;

13-3 Ϊʲô˵һÌõ²¢Ðи³ÖµÓï¾ä¿ÉÒÔµÈЧΪһ

¸ö½ø³Ì£¿Èç¹ûÊÇÕâÑùµÄ»°£¬¸ÃÓï¾äզôʵÏÖÃô¸ÐÐźŵļì²â£¿

½â£ºÒòΪÐźŸ³ÖµÓï¾äµÄ¹²Í¬µãÊǸ³ÖµÄ¿±ê±ØÐë¶¼ÊÇÐźţ¬ËùÓи³ÖµÓï¾äÓëÆäËü²¢ÐÐÓï¾äÒ»Ñù£¬ÔڽṹÌåÄÚµÄÖ´ÐÐÊÇͬʱ·¢ÉúµÄ£¬ÓëËüÃǵÄÊéд˳ÐòûÓйØÏµ£¬ËùÒÔÿһÐźŸ³ÖµÓï¾ä¶¼Ï൱ÓÚÒ»ÌõËõдµÄ½ø³ÌÓï¾ä¡£ÓÉÓÚÕâÌõÓï¾äµÄËùÓÐÊäÈëÐźŶ¼±»ÒþÐÔµØÁÐÈë´ËËõд½ø³ÌµÄÃô¸ÐÐźűíÖУ¬¹ÊÈκÎÐźŵı仯¶¼½«Ïà¹Ø²¢ÐÐÓï¾äµÄ¸³Öµ²Ù×÷£¬ÕâÑù¾ÍʵÏÖÁËÃô¸ÐÐźŵļì²â¡£

13-4 ÔÚstring,time£¬real,bitÊý¾ÝÀàÐÍÖУ¬vhdl ×ÛºÏÆ÷Ö§³ÖÄÄЩÀàÐÍ£¿

´ð£ºvhdlÖ§³ÖbitÀàÐͺÍstringÀàÐÍ£¬ÆäËûÊôÓÚÓû§¶¨ÒåµÄÊý¾ÝÀàÐͲ»ÄÜ×ÛºÏ

13-5 ÅжÏÏÂÁÐvhdl±êʶ·ûÊÇ·ñºÏ·¨£¬Èç¹ûÓÐÎó

ÔòÖ¸³öÔ­Òò16#0fa#£¬10#12f#£¬8#789#£¬8#356#£¬2#0101010#£¬74hc245£¬\\74hc574\\£¬clr/reset£¬\\in 4/sclk\\£¬ d100%¡£

´ð£ºÊ¶·ûÓ÷¨¹æ¶¨£º£¨1£©Ö»Äܰüº¬Ó¢ÎÄ×Öĸ£¬Êý×Ö£¬Ï»®Ïߣ¨2£©±êʶ·ûµÄÊ××Ö·ûÖ»ÄÜÊÇ×Öĸ¡£¹Ê£º £¨1£©16#0fa#´íÔÚÊ××Ö·ûÊÇÊý×Ö£¬ÇÒ°üº¬·Ç·¨×Ö·û¡°#¡°¡£ 10#12f#¡¢8#789#£¬8#356#£¬2#0101010#£¬74hc245Ò²ÊÇ·¸Í¬Ò»´íÎó¡£

£¨2£©\\74hc574\\,clr/reset,\\in4/sclk\\,d100%¶¼ ÊÇ·Ç·¨,°üº¬·Ç·¨×Ö·û¡­.

13-6 Êý¾ÝÀàÐÍbit,integerºÍboolean·Ö±ð¶¨Òå

ÔÚÄǸö¿âÖУ¿ÄÄЩ¿âºÍ³ÌÐò°ü×ÜÊǿɼûµÄ£¿´ð£ºbit¶¨ÒåÔÚieee¿âÖУ¬integerºÍboolean¶¨ÒåÔÚstd¿âÖУ¬³ýÁËstd¿âºÍwork¿âÍ⣬ieee¿âÃæÏòasicµÄ¿âºÍÓû§×Ô¶¨ÒåµÄ¿â¼°ÆäÖеİü¼¯ºÏ 13-7 º¯ÊýÓë¹ý³ÌµÄÉè¼ÆÓ빦ÄÜÓÐÊ²Ã´Çø±ð? µ÷ÓÃÉÏÓÐÊ²Ã´Çø±ð?

1.º¯ÊýµÄ¶¨ÒåÓɺ¯ÊýÊ׺ͺ¯ÊýÌåÁ½²¿·Ö×é³É£¬ÔÚ½ø³Ì»ò½á¹¹ÌåÖв»±Ø¶¨Ò庯ÊýÊ×£¬¶øÔÚ³ÌÐò°üÖбØÐ붨Ò庯ÊýÊס£

¹ý³ÌÒ²Óɹý³ÌÊ׺͹ý³ÌÌå¹¹³É£¬ÔÚ½ø³Ì»ò½á¹¹ÌåÖв»±Ø¶¨Òå¹ý³ÌÊ×£¬¶øÔÚ¹ý³Ì°üÖбØÐ붨Òå¹ý³ÌÊס£ 2.º¯ÊýÊÇ´®ÐУ¬¹ý³ÌÊÇ´®ÐС£

3Çø±ð£º(1)²ÎÊý±íµÄÇø±ð¡£º¯ÊýµÄ²ÎÊý±íÊÇÓÃÀ´¶¨ÒåÊä³öÖµµÄ£¬ËùÒÔ²»±ØÒÔÏÔʽ±íʾ²ÎÊýµÄ·½Ïò£»¹ý³ÌµÄ²ÎÊý±í¿ÉÒÔ¶Ô³£Êý¡¢±äÁ¿ºÍÐźÅÈýÀàÊý¾Ý¶ÔÏóÄ¿±ê×÷³ö˵Ã÷£¬²¢Óùؼü´Êin¡¢outºÍinout¶¨ ÒåÕâЩ²ÎÊýµÄ¹¤×÷ģʽ£¬¼´ÐÅÏ¢µÄÁ÷Ïò¡£Èç¹ûûÓÐÖ¸¶¨Ä£Ê½£¬ÔòĬÈÏΪin¡£ (2)º¯Êý²ÎÁ¿¿ÉÒÔÊÇÐźŻò³£Êý£¬Ä¬ÈϺ¯Êý²ÎÊýΪ³£Êý£»¹ý³ÌµÄ²ÎÊýÀàÐÍ¿ÉÒÔÊdz£Á¿»òÕßÊDZäÁ¿¡£

(3)¹ý³Ì¿ÉÓжà¸ö·µ»ØÖµ£¬º¯ÊýÖ»ÄÜÓÐÒ»¸ö¡£ (4)¹ý³ÌÖпÉÒÔÓÐwait£¬¶øº¯ÊýÖв»¿ÉÒÔ¡£

(5)µ÷Ó÷½Ê½£ºº¯Êýµ÷ÓÃʱ½«Ëù¶¨ÒåµÄº¯Êý×÷ΪÓï¾äÖеÄÒ»¸öÒò×ÓÈçÈçÒ»²Ù×÷Êý»ò¸³Öµ¾ä¡£¹ý³Ìµ÷Óý«¶¨ÒåµÄ¹ý³ÌÃû×÷ΪһÌõÓï¾äÀ´Ö´ÐС£ Ãû´Ê½âÊÍ 1¡¢pld/fpga

pldÊǿɱà³ÌÂß¼­Æ÷¼þµÄ¼ò³Æ£¬fpgaÊÇÏÖ³¡¿É±à³ÌÃÅÕóÁеļò³Æ£¬Á½ÕߵŦÄÜ»ù±¾Ïàͬ£¬Ö»ÊÇʵÏÖÔ­ÀíÂÔÓв»Í¬£¬ËùÒÔÎÒÃÇÓÐʱ¿ÉÒÔºöÂÔÕâÁ½ÕßµÄÇø±ð£¬Í³³ÆÎª¿É±à³ÌÂß¼­Æ÷¼þ»òpld/fpga¡£ 2¡¢prom¡¢palºÍpla

prom£ºÓëÕóÁй̶¨£¬»òÕóÁпɱà³Ì£¬Ò»°ãÓÃ×÷´æ´¢Æ÷£¬ÆäÊäÈëΪ´æ´¢Æ÷µÄµØÖ·£¬Êä³öΪ´æ´¢Æ÷µ¥ÔªµÄÄÚÈÝ¡£µ«ÊäÈëµÄÊýĿ̫´óʱ£¬Æ÷¼þ¹¦ºÄÔö¼Ó£¬Æä¾ÖÏÞÐÔ´ó¡£

pla£ºÓë»òÕóÁоù¿É±à³Ì£¬µ«ÊÇÆäÂýËÙÌØÐÔºÍÏà¶Ôpal¡¢prom¶ø¸ßµÃ¶àµÄ¼Û¸ñ·Á°­ÁËËü±»¹ã·ºÊ¹Óᣠpal£º»òÕóÁй̶¨£¬ÓëÕóÁпɱà³Ì£¬ÆäµÚ¶þ´ú²úÆ·gal¾ßÓÐÁ˿ɵç²Áд¡¢¿ÉÖØ¸´±à³Ì¡¢¿ÉÉèÖüÓÃܵŦÄÜ¡£

3¡¢vhdlÖÐÓÐÄÄÈýÖÖÊý¾Ý¶ÔÏ󣨿ÍÌ壩£¿Ïêϸ˵Ã÷ËûÃǵĹ©¹¦ÄÜÌØµãÒÔ¼°Ê¹Ó÷½·¨¡£

Ö÷Òª°üÀ¨ÈýÖÖÊý¾Ý¶ÔÏó£ºÐźţ¬±äÁ¿£¬³£Êý¡£ ÆäÖг£ÊýÊÇÒ»¸ö¹Ì¶¨µÄÖµ£¬³£Êý˵Ã÷¾ÍÊǶÔijһ³£ÊýÃû¸³ÓèÒ»¸ö¹Ì¶¨µÄÖµ£¬Ò»µ©¸³Öµ²»

Äܸı䣻³£Ê츳ֵһ°ãÔÚ³ÌÐòµÄ¿ªÊ¼£»Æä¸ñʽΪ£ºconstant³£ÊýÃû£ºÊý¾ÝÀàÐÍ£º=±í´ïʽ£»

±äÁ¿Ö»ÄÜÔÚ½ø³ÌÓï¾ä£¬¿éÓï¾ä£¬º¯ÊýÓï¾äºÍ¹ý³ÌÓï¾ä½á¹¹ÖÐʹÓã¬ÊǾֲ¿Á¿£¬Æä¸³ÖµÁ¢¼´ÉúЧÇÒ¸³ÖµÊ±²»ÄܲúÉú¸½¼ÓÑÓʱ¡£Æä¸ñʽΪ£ºvariable ±äÁ¿Ãû£ºÊý¾ÝÀàÐÍ Ô¼ÊøÌõ¼þ £º=±í´ïʽ£»

ÐźÅÊǵç×Óµç·ÄÚ²¿Ó²¼þÁ¬½ÓµÄ³éÏó¿ÉÒÔ²úÉú¸½¼ÓÑÓʱ£¬Êý¾Ý¶ÔÏóÊÇ¿ÉÒÔ±»¸³ÖµµÄ¶ÔÏó¡£ÐźŶ¨ÒåÔÚʵÌå¡¢¹¹ÔìÌå¡¢°ü¼¯ºÏÖУ»Æä¸ñʽΪ£ºsignal ÐźÅÃû£ºÊý¾ÝÀàÐÍ Ô¼ÊøÌõ¼þ£º=±í´ïʽ¡£