verilog HDLÖÐwireºÍregµÄÇø±ð ÏÂÔØ±¾ÎÄ

wire±íʾֱͨ£¬¼´Ö»ÒªÊäÈëÓб仯£¬Êä³öÂíÉÏÎÞÌõ¼þµØ·´Ó³(ÈçÓë¡¢·ÇÃŵȼòµ¥µÄÁ¬½Ó)£»reg±íʾһ¶¨ÒªÓд¥·¢£¬Êä³ö²Å»á·´Ó³ÊäÈë¡£

²»Ö¸¶¨¾ÍĬÈÏΪ1λwireÀàÐÍ¡£×¨ÃÅÖ¸¶¨³öwireÀàÐÍ£¬¿ÉÄÜÊǶàλ»òΪʹ³ÌÐòÒ×¶Á¡£wireÖ»Äܱ»assignÁ¬Ðø¸³Öµ£¬regÖ»ÄÜÔÚinitialºÍalwaysÖи³Öµ¡£wireʹÓÃÔÚÁ¬Ðø¸³ÖµÓï¾äÖУ¬¶øregʹÓÃÔÚ¹ý³Ì¸³ÖµÓï¾äÖС£

wireÈôÎÞÇý¶¯Á¬½Ó£¬ÆäֵΪz£¬regĬÈϳõʼֵΪ²»¶¨Öµx¡£

reg±íʾһ¶¨ÒªÓд¥·¢£¬Ã»ÓÐÊäÈëµÄʱºò¿ÉÒÔ±£³ÖÔ­À´µÄÖµ£¬µ«²»Ö±½ÓÓëʵ¼ÊµÄÓ²¼þµç·¶ÔÓ¦¡£

ÔÚÁ¬Ðø¸³ÖµÓï¾äÖУ¬±í´ïʽÓÒ²àµÄ¼ÆËã½á¹û¿ÉÒÔÁ¢¼´¸üбí´ïʽµÄ×ó²à¡£ÔÚÀí½âÉÏ£¬Ï൱ÓÚÒ»¸öÂß¼­Ö®ºóÖ±½ÓÁ¬ÁËÒ»ÌõÏߣ¬Õâ¸öÂß¼­¶ÔÓ¦ÓÚ±í´ïʽµÄÓҲ࣬¶øÕâÌõÏ߾ͶÔÓ¦ÓÚwire¡£ÔÚ¹ý³Ì¸³ÖµÓï¾äÖУ¬±í´ïʽÓÒ²àµÄ¼ÆËã½á¹ûÔÚijÖÖÌõ¼þµÄ´¥·¢Ï·ŵ½Ò»¸ö±äÁ¿µ±ÖУ¬¶øÕâ¸ö±äÁ¿¿ÉÒÔÉùÃ÷³ÉregÀàÐ͵ġ£¸ù¾Ý´¥·¢Ìõ¼þµÄ²»Í¬£¬¹ý³Ì¸³ÖµÓï¾ä¿ÉÒÔ½¨Ä£²»Í¬µÄÓ²¼þ½á¹¹£ºÈç¹ûÕâ¸öÌõ¼þÊÇʱÖÓµÄÉÏÉýÑØ»òϽµÑØ£¬ÄÇôÕâ¸öÓ²¼þÄ£Ð;ÍÊÇÒ»¸ö´¥·¢Æ÷£»Èç¹ûÕâ¸öÌõ¼þÊÇijһÐÅºÅµÄ¸ßµçÆ½»òµÍµçƽ£¬ÄÇôÕâ¸öÓ²¼þÄ£Ð;ÍÊÇÒ»¸öËø´æÆ÷£»Èç¹ûÕâ¸öÌõ¼þÊǸ³ÖµÓï¾äÓÒ²àÈÎÒâ²Ù×÷ÊýµÄ±ä»¯£¬ÄÇôÕâ¸öÓ²¼þÄ£Ð;ÍÊÇÒ»¸ö×éºÏÂß¼­¡£ ¼òµ¥À´ËµÓ²¼þÃèÊöÓïÑÔÓÐÁ½ÖÖÓÃ;£º1¡¢·ÂÕæ£¬2¡¢×ۺϡ£ ¶ÔÓÚwireºÍreg£¬Ò²Òª´ÓÕâÁ½¸ö½Ç¶ÈÀ´¿¼ÂÇ¡£

´Ó·ÂÕæµÄ½Ç¶ÈÀ´Ëµ£¬HDLÓïÑÔÃæ¶ÔµÄÊDZàÒëÆ÷£¨ÈçModelsimµÈ£©£¬Ï൱ÓÚÈí¼þ˼·¡£ Õâʱ£º

wire¶ÔÓ¦ÓÚÁ¬Ðø¸³Öµ£¬Èçassign reg¶ÔÓ¦ÓÚ¹ý³Ì¸³Öµ£¬Èçalways£¬initial

´Ó×ۺϵĽǶÈÀ´Ëµ£¬HDLÓïÑÔÃæ¶ÔµÄÊÇ×ÛºÏÆ÷£¨ÈçDCµÈ£©£¬Òª´Óµç·µÄ½Ç¶ÈÀ´¿¼ÂÇ¡£ Õâʱ£º

1¡¢wireÐ͵ıäÁ¿×ۺϳöÀ´Ò»°ãÊÇÒ»¸ùµ¼Ïߣ» 2¡¢reg±äÁ¿ÔÚalways¿éÖÐÓÐÁ½ÖÖÇé¿ö£º

(1)¡¢alwaysºóµÄÃô¸Ð±íÖÐÊÇ£¨a or b or c£©ÐÎʽµÄ£¬Ò²¾ÍÊDz»´øÊ±ÖÓ±ßÑØµÄ£¬×ۺϳöÀ´»¹ÊÇ×éºÏÂß¼­

(2)¡¢alwaysºóµÄÃô¸Ð±íÖÐÊÇ£¨posedge clk£©ÐÎʽµÄ£¬Ò²¾ÍÊÇ´ø±ßÑØµÄ£¬×ۺϳöÀ´Ò»°ãÊÇʱÐòÂß¼­£¬»á°üº¬´¥·¢Æ÷£¨Flip£­Flop£©

ÔÚÉè¼ÆÖУ¬ÊäÈëÐźÅÒ»°ãÀ´ËµÄãÊDz»ÖªµÀÉÏÒ»¼¶ÊǼĴæÆ÷Êä³ö»¹ÊÇ×éºÏÂß¼­Êä³ö£¬ÄÇô¶ÔÓÚ±¾¼¶À´Ëµ¾ÍÊÇÒ»¸ùµ¼Ïߣ¬Ò²¾ÍÊÇwireÐÍ¡£¶øÊä³öÐźÅÔòÓÉÄã×Ô¼ºÀ´¾ö¶¨ÊǼĴæÆ÷Êä³ö»¹ÊÇ×éºÏÂß¼­Êä³ö£¬wireÐÍ¡¢regÐͶ¼¿ÉÒÔ¡£µ«Ò»°ãµÄ£¬Õû¸öÉè¼ÆµÄÍⲿÊä³ö£¨¼´×î¶¥²ãÄ£¿éµÄÊä³ö£©£¬ÒªÇóÊǼĴæÆ÷Êä³ö£¬½ÏÎȶ¨¡¢ÉȳöÄÜÁ¦Ò²½ÏºÃ¡£ 1£®wireÐÍ

wireÐÍÊý¾Ý³£ÓÃÀ´±íʾÒÔassign¹Ø¼ü×ÖÖ¸¶¨µÄ×éºÏÂß¼­Ðźš£Verilog³ÌÐòÄ£¿éÖÐÊäÈë¡¢Êä³öÐźÅÀàÐÍĬÈÏΪwireÐÍ¡£wireÐÍÐźſÉÒÔÓÃ×ö·½³ÌʽµÄÊäÈ룬Ҳ¿ÉÒÔÓÃ×ö¡°assign¡±Óï¾ä»òÕßʵÀýÔª¼þµÄÊä³ö¡£

wireÐÍÐźŵ͍Òå¸ñʽÈçÏ£º

wire [n-1:0] Êý¾ÝÃû1£¬Êý¾ÝÃû2£¬¡­¡­Êý¾ÝÃûN;

ÕâÀ×ܹ²¶¨ÒåÁËNÌõÏߣ¬Ã¿ÌõÏßµÄλ¿íΪn¡£ÏÂÃæ¸ø³ö¼¸¸öÀý×Ó£º wire [9:0] a, b, c; // a, b, c¶¼ÊÇλ¿íΪ10µÄwireÐÍÐźŠwire d; 2£®regÐÍ

regÊǼĴæÆ÷Êý¾ÝÀàÐ͵Ĺؼü×Ö¡£¼Ä´æÆ÷ÊÇÊý¾Ý´æ´¢µ¥ÔªµÄ³éÏó£¬Í¨¹ý¸³ÖµÓï¾ä¿ÉÒԸıä¼Ä´æÆ÷´æ´¢µÄÖµ£¬Æä×÷ÓÃÏ൱Óڸı䴥·¢Æ÷´æ´¢Æ÷µÄÖµ¡£regÐÍÊý¾Ý³£ÓÃÀ´±íʾalwaysÄ£¿éÄÚµÄÖ¸¶¨Ðźţ¬´ú±í´¥·¢Æ÷¡£Í¨³£ÔÚÉè¼ÆÖÐÒªÓÉalwaysÄ£¿éͨ¹ýʹÓÃÐÐΪÃèÊöÓï¾äÀ´±í´ïÂß¼­¹ØÏµ¡£ÔÚalways¿éÄÚ±»¸³ÖµµÄÿһ¸öÐźŶ¼±ØÐ붨ÒåΪregÐÍ£¬¼´¸³Öµ²Ù×÷·ûµÄÓҶ˱äÁ¿±ØÐëÊÇregÐÍ¡£

regÐÍÐźŵ͍Òå¸ñʽÈçÏ£º

reg [n-1:0] Êý¾ÝÃû1£¬Êý¾ÝÃû2£¬¡­¡­Êý¾ÝÃûN;

ÕâÀ×ܹ²¶¨ÒåÁËN¸ö¼Ä´æÆ÷±äÁ¿£¬Ã¿ÌõÏßµÄλ¿íΪn¡£ÏÂÃæ¸ø³ö¼¸¸öÀý×Ó£º reg [9:0] a, b, c; // a, b, c¶¼ÊÇλ¿íΪ10µÄ¼Ä´æÆ÷ reg d;

regÐÍÊý¾ÝµÄȱʡֵÊÇδ֪µÄ¡£regÐÍÊý¾Ý¿ÉÒÔΪÕýÖµ»ò¸ºÖµ¡£µ«µ±Ò»¸öregÐÍÊý¾ÝÊÇÒ»¸ö±í´ïʽÖеIJÙ×÷Êýʱ£¬ËüµÄÖµ±»µ±×÷ÎÞ·ûºÅÖµ£¬¼´ÕýÖµ¡£Èç¹ûÒ»¸ö4λµÄregÐÍÊý¾Ý±»Ð´Èë-1£¬ÔÚ±í´ïʽÖÐÔËËãʱ£¬ÆäÖµ±»ÈÏΪÊÇ+15¡£

regÐͺÍwireÐ͵ÄÇø±ðÔÚÓÚ£ºregÐͱ£³Ö×îºóÒ»´ÎµÄ¸³Öµ£¬¶øwireÐÍÔòÐèÒª³ÖÐøµÄÇý¶¯.