ÒýÑÔ
Ëæ×ÅFPGAÆ÷¼þ¹æÄ£µÄ²»¶ÏÔö¼Ó¡¢·â×°ÃܶȲ»¶ÏÌá¸ß£¬´«Í³Âß¼·ÖÎöÒÇÔÚFPGA°å¼¶µ÷ÊÔÖеÄÓ¦ÓÃÈÕÒæÀ§ÄÑ¡£Îª´Ë£¬Ö÷Á÷FPGA³§ÉÌÏà¼ÌÔÚÆ俪·¢¹¤¾ßÖÐÔö¼ÓÁËǶÈëʽÂß¼·ÖÎöÒÇ(ELA) IPÈíºË£¬ÈçLatticeÔÚispLEVERÖÐÌṩµÄispTRACY£¬XilinxÔÚISEÖÐÌṩµÄChipScopePro£¬AlteraÔÚQuartus IIÌṩÖеÄSignal Tap IIµÈ¡£ELAÔÚFPGAÄÚ²¿Ô¤ÏÈÉè¼Æ̽²âµãºÍ²âÊÔÂß¼£¬¿ÉÔÚÈí¼þ¹¤¾ßµÄÅäºÏ϶ÔFPGAÉè¼Æ½øÐнÏÈ«ÃæµÄ²âÊÔ¡£²ÉÓÃELA£¬Ö»ÐèÓÃJTAGÏÂÔصçÀÂÁ¬½Ó´ýµ÷ÊÔµÄFPGAÆ÷¼þ£¬Õ¼ÓÃFPGAµÄ²¿·ÖÂß¼×ÊÔ´ºÍÄÚ²¿´æ´¢Æ÷×ÊÔ´£¬ÎÞÐ贫ͳµÄÂß¼·ÖÎöÒǾͿÉÒÔ¹Û²ìFPGAµÄÄÚ²¿ÐźźÍI/OÒý½ÅµÄ״̬¡£
ÒÔÎÒÃÇ¿ª·¢µÄÈ«²ÊLEDͬ²½ÏÔʾ¿ØÖÆϵͳΪÀý£¬¸Ãϵͳ°üÀ¨²É¼¯¡¢´«Êä¡¢½ÓÊÕµÈÄ£¿é£¬FPGAΪAltera CycloneϵÁÐPQFP·â×°µÄEP1C6Q240C8£¬Âß¼µ¥Ôª(LE)ÊýÁ¿Îª5980¸ö£¬RAM´óСΪ92160 bit¡£Ê¹ÓÃQuartus IIÈí¼þÊ״ζÔÉè¼ÆÎļþ½øÐÐ×ۺϲ¼¾ÖºÍ²¼Ïߣ¬½«²¼ÏߺõŤ³ÌÏÂÔص½FPGA°åÉÏÔËÐÐʱ£¬È«²ÊLEDÆÁÏÔʾЧ¹û·Ç³£²î£¬Í¼ÏñÉÁ˸ÇÒ×óÓÒÒƶ¯¡£¸ù¾ÝQuartus II±àÒ뱨¸æ¿ÉÒÔ¿´³ö£¬¸Ã¹¤³ÌÏûºÄµÄÆ÷¼þ×ÊÔ´½öΪ26%£¬µ«ÊÇÈ´Õ¼ÓÃÁË90%µÄÒý½Å£¬Áô¸øÍⲿ²âÊÔµÄÒý½Å½öΪ10%£¬Ê¹µÃÀûÓÃQuartus IIÄÚ²¿¼¯³ÉÈí¼þ²âÊÔµÄÓÅÊƵÃÒÔÌåÏÖ¡£ÎªÁËÕÒ³öÉè¼ÆȱÏÝ£¬²ÉÓÃSignal Tap II²É¼¯µ½FPGAÄÚ¸÷¸ö¹Ø¼üÐźŵIJ¨ÐΣ¬¸ù¾Ý²¨ÐÎÕÒ³öÔÒòÔÚÓÚLEDÏÔʾÆÁ½ÓÊÕ°åÖеÄÊý¾ÝÐźŽϿØÖÆÐźÅÐγÉÁËÑÓʱ£¬Ôì³ÉÁËʱÐò²»Æ¥Åä¡£
±¾ÎĽéÉܵÄFPGAʱÐòÆ¥ÅäÉè¼Æ·½·¨£¬ÀûÓÃQuartus IIÈí¼þÖеÄSignal Tap II²É¼¯FPGAÄÚ²¿ÐźŲ¨ÐΣ¬Í¨¹ý±È½Ï·ÖÎö²É¼¯µÄÊý¾Ý£¬¿ÉµÃ³ö¾«È·µÄÑÓʱÐÅÏ¢¡£ÔÚSignal Tap IIʱÐò²âÊÔ½á¹ûµÄÖ¸µ¼Ï¸ĽøÁËÉè¼Æ£¬¾Êµ¼Êµç·µÄ²¨ÐβâÊÔÖ¤Ã÷£¬LEDÏÔʾÆÁ½ÓÊÕ°åÖеÄÊý¾ÝÐźÅÓë¿ØÖÆÐźÅʱÐòÆ¥ÅäÁ¼ºÃ¡£
Signal Tap II
Signal Tap IIÊÇAltera¹«Ë¾FPGA¿ª·¢Èí¼þQuartus IIÖеÄÒ»¸öʵÓù¤¾ß£¬Äܹ»²¶»ñ¡¢ÏÔʾFPGAÄÚ²¿½Úµã»òI/OÒý½ÅʵʱÐźŵÄ״̬£¬°ïÖúÉè¼ÆÕßÔÚϵͳÉè¼Æʱ¹Û²ìÓ²¼þºÍÈí¼þµÄ½»»¥×÷Óá£
ͼ1ΪSignal Tap IIǶÈëʽÂß¼·ÖÎöÒDzɼ¯Êý¾ÝµÄÔÀí¿òͼ¡£ÆäÖÐCLK(²ÉÑùʱÖÓ)ºÍTrigger(´¥·¢Âß¼)¿ÉÒÔ¸ù¾ÝÐèÒªÉ趨¡£ÔÚSignal Tap II¹¤×÷ʱ£¬´ý²âÊÔÐźÅÔÚCLKµÄÉÏÉýÑر»Ç¶ÈëʽÂß¼·ÖÎöÒÇʵʱ²¶»ñ£¬¾FPGAÄÚ²¿µÄRAM»º´æºó£¬Í¨¹ýJTAG½Ó¿Ú´«ËÍÖÁQuratus IIÈí¼þÖÐÏÔʾ¡£ÆäÖУ¬RAM»º´æ·½Ê½ÓÐÁ¬Ðø´æ´¢ºÍ·Ö¶Î´æ´¢¡£JTAG½Ó¿ÚÓõÄÏÂÔصçÀ°üÀ¨USB Blaster¡¢ByteBlasterMV¡¢ByteBlaster II»òMasterBlasterµÈ¡£ÕâЩÔÚSignal Tap II¹¤×÷´°¿Ú¿ÉÒÔÁé»îÉèÖá£
ǶÈëʽÂß¼·ÖÎöÒDz¶»ñÊý¾ÝµÄÁ÷³ÌÈçͼ2Ëùʾ¡£Ê×ÏÈÅжÏʱÖÓµÄÉÏÉýÑØÊÇ·ñÂú×㣬²»Âú×ã¼ÌÐøµÈ´ýʱÖÓ£¬Âú×ãÏȲ¶»ñÇ°´¥·¢Êý¾Ý£¬´¥·¢¼¶±ðÂú×ãºó£¬²¶»ñºó´¥·¢Êý¾Ý£¬È»ºóÇå³ýÊý¾Ý£¬½áÊø¸Ã²¶»ñÁ÷³Ì¡£ÆäÖÐSignal Tap II×î¶à¿ÉÖ§³Ö10¼¶´¥·¢¼¶±ð¡£´¥·¢¼¶±ð¸ßÒâζ×ſɽÓÊÕ¸ü¸´ÔÓµÄÊý¾Ý»ñÈ¡ÃüÁÌṩ¸ü¸ßµÄ¾«¶ÈºÍÎÊÌâ½â¾öÄÜÁ¦¡£
ʹÓÃSignal Tap IIÉè¼ÆʱÐòÆ¥Åäµç·
ÑÓʱµÄ²úÉú
ÔÚLEDÈ«²Ê´óÆÁͬ²½ÏÔʾ¿ØÖÆϵͳÖУ¬Õë¶ÔÕ¼¿Õ±È¿ØÖÆÁÁ¶ÈËðʧ´óµÄÎÊÌ⣬ÔÚÏÔʾÇý¶¯¿ØÖÆÄ£¿éÉè¼ÆÖвÉÓÃÁË·Ö³¡µþ¼ÓÓëÕ¼¿Õ±È¿ØÖÆÏà½áºÏµÄ·½·¨¶Ô´æ´¢µÄͼÏñÊý¾Ý½øÐзֳ¡É¨Ã裬ʵÏÖÁ˵ÍÁÁ¶ÈËðʧ¡¢800×512·Ö±æÂÊ¡¢256¼¶»Ò¶ÈLEDÈ«²Ê´óÆÁµÄÏÔʾ¡£ÆäÖУ¬“·Ö³¡µþ¼Ó”ÊÇÖ¸£ºÇ°¶Ë½«Ò»·ù²ÊɫͼÏñµÄÊý¾Ý°´»Ò¶È¼¶·Ö½âΪ¶à¸öλƽÃ棬Öն˸ù¾Ý²»Í¬Î»Æ½ÃæÊý¾ÝɨÃ費ͬµÄ³¡´Î£¬ÔÚÓÐÏÞʱ¼äÄÚʵÏÖ¸÷³¡´ÎµÄµþ¼Ó£¬´Ó¶øÔÚLEDÈ«²Ê´óÆÁÉÏÖؽ¨²ÊɫͼÏñ¡£
ͼ3ΪλÃæ·ÖÀëÄ£¿éÔÚQuartus IIÈí¼þÖÐÉú³ÉµÄÒý½Åͼ¡£ÆäÖÐRGBdin[23..0]ΪÊäÈëµÄÑÕÉ«Êý¾Ý(R¡¢G¡¢BÈýÖÖÑÕÉ«¸÷°Ëλ)£¬clkin156ΪÊäÈëÊý¾ÝʱÖÓ£¬clk_after85pcΪÑÓʱºóµÄʹÄÜÐźţ¬rst_bit_regroupΪÒÆλ¼Ä´æÆ÷µÄ¸´Î»Ðźţ¬rst_muxΪÑÕɫλѡÔñÆ÷µÄ¸´Î»Ðźţ¬rgb_regroup_output[23..0]ÊǾ¹ýÊý¾ÝÖØ×éºóÊä³öµÄÊý¾Ý¡£
“λÃæ·ÖÀëÄ£¿é”ʵÏÖ“·Ö³¡´æ´¢”¹¦ÄÜ£¬¼´½«Ã¿¸öÑÕÉ«µÄ8±ÈÌØÊý¾Ý(ÒÔ256¼¶»Ò¶ÈΪÀý)°´»Ò¶È¼¶·ÖÀ࣬·Ö±ð´æÈë´æ´¢Æ÷µÄ8¸öÊý¾Ý¶ÎÖС£Î»Æ½ÃæµÄ·ÖÀëÐèҪʱ¼ä£¬½«´øÀ´ÏµÍ³ÑÓʱ¡£Í¼4ΪÀûÓÃSignal Tap II²É¼¯µÄÊäÈëÊý¾ÝRGBdin[23..16]ºÍÊä³öÊý¾Ýrgb_regroup_output[23..16]µÄ²¨ÐιØϵ¡£ÆäÖвÉÑùʱÖÓÉèÖÃΪclk38 (CRTÏÔʾÆ÷·Ö±æÂÊΪ800×600£¬Ë¢ÐÂƵÂÊΪ60Hz£¬Êä³öµÄµãʱÖÓΪ38MHz)£¬²ÉÑùÉî¶ÈÉèÖÃΪ4K bit£¬ÔòSignal Tap II²É¼¯²¨ÐÎʱռÓÃÁË16×4K=64K bit¸ö´æ´¢µ¥Ôª¡£
ÓÉͼ4 (ºÚÉ«ÁÁÏß)¿ÉÒÔ¿´³ö£¬Êä³öÊý¾ÝÔÚµÚ9¸öʱÖÓ(clk38)ʱÓÉFF(¸ß×è)±ä³ÉÓÐЧÊý¾Ý¡£¸ÃÄ£¿éµÄÊä³öÊý¾ÝÊÇË͵½Íⲿ´æ´¢Æ÷ÖнøÐлº´æµÄ£¬´æ´¢Æ÷µÄдʹÄÜÐźÅΪÊäÈëÊý¾ÝµÄÊý¾ÝÓÐЧÐźš£ÓÉÓÚ¸ÃÊý¾ÝÑÓʱÁË9¸öclk38ʱÖÓ£¬´æ´¢Æ÷µÄдʹÄÜ¿ØÖÆÐźÅÒ²Ó¦ÑÓʱ9¸öclk38ʱÖÓÉúЧ¡£
ʱÐòÆ¥ÅäÉè¼Æ¼°²âÊÔ²¨ÐÎ
»ùÓÚD´¥·¢Æ÷µÄÑÓʱ¹¦ÄÜ£¬Éè¼ÆÁËÈçͼ5ËùʾµÄʱÐòÆ¥ÅäÄ£¿é£¬½â¾öÁËÉÏÊöλÃæ·ÖÀë²Ù×÷Óëд´æ´¢Æ÷¿ØÖÆÐźŵÄʱÐòÆ¥ÅäÎÊÌ⡣ͼ5ÖУ¬flagΪÊý¾ÝµÄÓÐЧÐźűêÖ¾£¬¸ßµçƽʱÊý¾ÝÊä³öÓÐЧ£»Clk156ΪµãʱÖÓ38MHzµÄËı¶ÆµÊ±ÖÓ£¬Flag_delay8ºÍflag_delay9·Ö±ðÊÇflagÑÓʱ8¸öclk38ʱÖÓºÍ9¸öclk38ʱÖÓµÄеÄÊý¾ÝÓÐЧÐźűêÖ¾¡£
¸ù¾ÝÀíÂÛ¼ÆË㣬һ¸öD´¥·¢Æ÷»á´øÀ´Ò»¸öclk156µÄʱÖÓµÄÑÓʱ£¬ÄÇôҪÑÓʱ9¸öclk38µÄʱÖÓ±ØÐëʹÓÃ36¸öD´¥·¢Æ÷¡£Êµ¼ÊÉÏ£¬D´¥·¢Æ÷¹Ì¶¨µÄ½¨Á¢Ê±¼ä¡¢±£³Öʱ¼ä£¬Ò²»á´øÀ´ÏµÍ³ÑÓʱ¡£¸ù¾ÝSignal Tap II²É¼¯µÄ²¨ÐζÔD´¥·¢Æ÷µÄ¸öÊý½øÐÐÊʵ±µÄɾ¼õ£¬´ïµ½Á˾«È·µÄ9¸öclk38ʱÖÓµÄÑÓʱ£¬×îºóµÄʱÐòÆ¥ÅäÄ£¿éÓÉ34¸öD´¥·¢Æ÷¹¹³É¡£
ͼ6ΪʱÐòÆ¥ÅäÄ£¿éµÄÄÚ²¿¿òͼ¡£D´¥·¢Æ÷D¶Ë¿Ú½Óflag£¬clk¶Ë¿Ú½Óclk156£¬µÚ30¸öºÍµÚ34¸öD´¥·¢Æ÷Q¶Ë¿Ú·Ö±ðÁ¬½ÓFlag_delay8ºÍflag_delay9¡£¸ÃʱÐòÆ¥ÅäÄ£¿é²ÉÓÃËı¶ÓÚclk38µÄclk156×÷ΪÇý¶¯Ê±ÖÓ£¬ÒÔÈ·±£ÑÓʱÐźŵÄÏàλÑÓʱ×ã¹»¾«È·¡£
ͼ7ΪSignal Tap II²É¼¯Ê±ÐòÆ¥ÅäÄ£¿éµÄ²¨ÐÎÊä³ö¡£Æä²ÉÑùʱÖÓΪ38MHz£¬²ÉÑùÉî¶ÈΪ4K bit¡£rgb_regroup_output[23..0]ΪλÃæ·ÖÀëºóºìÉ«Êä³öµÄÊý¾Ý¡£¿ÉÒÔ¿´³ö£¬Êä³öÊý¾ÝÔÚflag_delay9µÄÉÏÉýÑØ¿ªÊ¼ÓÉFFh(¸ß×è)±ä³ÉÓÐЧÊý¾Ý00h£¬´ïµ½ÁËÊý¾ÝºÍ¿ØÖÆÐźŵÄÍêȫͬ²½¡£
ÐÔÄÜ·ÖÎö
°Ñ¸ÃʱÐòÆ¥ÅäÄ£¿é¼ÓÈ빤³Ì£¬ÖØÐÂ×ۺϲ¼¾Ö²¼Ïߣ¬ÏÂÔص½È«²ÊLED´óÆÁͬ²½ÏÔʾ¿ØÖÆϵͳµÄ½ÓÊÕ°åÉÏ£¬Quartus II±àÒ뱨¸æÖгýÁËÕ¼Óò¿·ÖÄÚ²¿´æ´¢Æ÷×ÊÔ´ºÍLE×ÊÔ´£¬ÆäËüµÄ(ÈçI/OÒý½ÅµÄÀûÓÃÂÊ)¶¼Ã»Óб仯¡£¹Û²ìLED´óÆÁÏÔʾЧ¹û£¬Í¼ÏñÇåÎúÎȶ¨£¬Ö¤Ã÷Á˸ÃʱÐòÆ¥ÅäÄ£¿éµÄ¿ÉÐÐÐÔ¡£
¸ÃʱÐòÆ¥ÅäÄ£¿é½öΪLEDͬ²½ÏÔʾ¿ØÖÆϵͳÖÐÒ»¸ö×î¼òµ¥µÄÄ£¿é£¬ÓÃÓÚʾÀý˵Ã÷ǶÈëʽÂß¼·ÖÎöÒÇSignal Tap IIÔÚFPGAʱÐòÆ¥ÅäÉè¼ÆÖеÄÓ¦Ó÷½·¨¡£Ó¦ÓÃSignal Tap II»¹Äܽâ¾ö¸÷ÖÖ¸÷ÑùµÄÎÊÌ⣬ÈçÍⲿ´æ´¢Æ÷µÄË«ÏòÊý¾Ý¿ÚµÄʵʱ²¨Ðμì²â¡¢Çý¶¯Ä£¿éµÄ²¢´®×ª»»²¨Ðεȡ£Ê¹ÓÃSignal Tap IIÓÐÈçÏÂÓŵ㣺
·²»Õ¼ÓöîÍâµÄI/OÒý½Å¡£ÀûÓÃSignal Tap II³É¹¦µÄ²É¼¯ÁËFPGAÄÚ²¿ÐźŵIJ¨ÐΣ¬Èçflag,flag_delay8,flag_delay9µÈ¶¼ÎªFPGAÄÚ²¿¼Ä´æÆ÷Ðźš£
·Signal Tap IIΪӲ¼þ°å¼¶µ÷ÊÔ¹¤¾ß£¬Ëü²É¼¯µÄ²¨ÐÎÊǹ¤³ÌÏÂÔغóµÄʵʱ²¨ÐΣ¬·½±ãÉè¼ÆÕß²éÕÒÒýÆðÉè¼ÆȱÏݵÄÔÒò¡£
·½ÚÔ¼³É±¾¡£Signal Tap II¼¯³ÉÔÚQuartus IIÈí¼þÖУ¬ÎÞÐèÁíÍ⸶·Ñ¡£
ʹÓÃSignal Tap IIʱӦעÒ⣺
·ÓÃSignal Tap II ²É¼¯Êý¾Ýʱ£¬Ó¦·ûºÏ²ÉÑù¶¨ÂÉ£¬¼´²ÉÑùƵÂʱØÐëÊÇÐźÅ×î´óƵÂʵÄÁ½±¶»ò¸ü¸ß£¬·ñÔò²É¼¯µ½µÄ²¨ÐλáʧÕæ»òÕßÊÇÒ»ÌõÈ«µÍµÄÖ±Ïß¡£
·²ÉÑùÉî¶È¾ö¶¨ÁËÿ¸öÐźſɴ洢µÄ²ÉÑùÊýÄ¿£¬ÐźŵÄÊýÁ¿ºÍ²ÉÑùÉî¶ÈµÄ³Ë»ý²»Äܳ¬¹ýËùÑ¡FPGAоƬÄÚ²¿RAMµÄ´óС£¬Ìí¼Ó´ý¹Û²ìÐźš¢ÉèÖÃÁ˲ÉÑùÉî¶Èºó£¬¿ÉÒÔ¸ù¾ÝSignal Tap IIµÄInstance Manager ´°¿Ú¹Û²ìÄÚ²¿´æ´¢×ÊÔ´µÄʹÓÃÇé¿ö¡£Èç¹û¹Û²ìµÄÐźÅÊýÁ¿¶à£¬²ÉÑùÉî¶ÈÉèÖÃÊܵ½ÏÞÖÆ£¬´ËʱÁé»îÉèÖô¥·¢Ìõ¼þÏ൱±ØÒª¡£Í¼4ºÍͼ7²É¼¯µÄ²¨Ðζ¼ÊÇÒÔÉèÖÃRGBdin[23..16]Ϊ00hΪ´¥·¢Ìõ¼þ£¬Èçͼ4£¬7ÖеÄÐéÏßËùʾ¡£
·Signal Tap II±ØÐ빤×÷ÔÚJTAG·½Ê½£¬µ÷ÊÔÍê³ÉºóÓ¦½«Signal Tap IIÎļþÒƳý£¬ÒÔÃâÀË·ÑFPGA×ÊÔ´¡£
½áÓï
ʱÐòÆ¥ÅäÊÇFPGAµç·Éè¼ÆÖеÄÒ»¸öÖØÒªÎÊÌ⣬½éÉÜÁËÒ»ÖÖÓ¦ÓÃǶÈëʽÂß¼·ÖÎöÒÇSignal Tap II²¶»ñFPGAÄÚ²¿ÐźŲ¨Ðεķ½·¨£¬Í¨¹ý±È½Ï·ÖÎö²É¼¯µÄÊý¾Ý£¬¿ÉµÃ³ö¾«È·µÄÑÓʱÐÅÏ¢£¬Ö¸µ¼FPGAʱÐòÆ¥ÅäµÄÉè¼Æ¡£
ÒÔLEDÈ«²Ê´óÆÁͬ²½ÏÔʾ¿ØÖÆϵͳÖÐÏÔʾÇý¶¯¿ØÖƲ¿·ÖµÄλÃæ·ÖÀëÄ£¿éΪÀý£¬ÔÚǶÈëʽÂß¼·ÖÎöÒÇSignal Tap IIµÄʱÐò²âÊÔ½á¹ûµÄÖ¸µ¼Ï£¬Éè¼ÆÒ»¸öÓÉ34¸öD´¥·¢Æ÷¹¹³ÉµÄʱÐòÆ¥ÅäÄ£¿é£¬¾Êµ¼Êµç·µÄ²¨ÐβâÊÔÖ¤Ã÷£¬ÐźÅʱÐòÆ¥ÅäÁ¼ºÃ¡£