News & Views / ALTERA Quarterly Newsletter...


 

 Quartus ŸÀÌ¹Ö ºÐ¼®, µðÀÚÀÎ ¼º´É °ËÁõ

Ãâó: News & Views Korean Edition / First Quarter, February 2000 / p.24~p.26

 

¼³°è°¡ ´õ¿í º¹ÀâÇØÁü¿¡ µû¶ó ÷´Ü ŸÀÌ¹Ö ºÐ¼® ±â´ÉÀÇ Çâ»óÀÌ ´õ¿í ´õ ¿ä±¸µÈ´Ù.  Å¸ÀÌ¹Ö ºÐ¼®Àº °¢ ¼³°è °æ·Î¸¦ ÃøÁ¤ÇÏ°í ¼³°è¿¡ ´ëÇÑ ÃÖ´ë ½Ã½ºÅÛ Å¬·° ¼Óµµ¸¦ ¾Ë·ÁÁØ´Ù.  Á¤Àû ŸÀÌ¹Ö ºÐ¼® (static timing analysis) Àº ¼³°èÀÇ ±â´ÉÀ» üũÇÏÁö´Â ¾Ê´Â´Ù.  ±×·¯¹Ç·Î ¼³°èÀÚ´Â ÀüüÀûÀÎ ¼³°è ±¸ÇöÀ» °ËÁõÇÒ ¼ö ÀÖ´Â ½Ã¹Ä·¹À̼ǰú ÇÔ²² ŸÀÌ¹Ö ºÐ¼®À» ½Ç½Ã ÇÏ¿©¾ß ÇÑ´Ù.

Quartus¢â ¼ÒÇÁÆ®¿þ¾î´Â ¿À´Ã³¯ÀÇ ½Ã½ºÅÛ ¿Â ¾î ÇÁ·Î±×·¡¸Óºí Ĩ ¼³°èÀÇ ½ÇÇöÀ» À§ÇÑ Ã·´Ü ŸÀÌ¹Ö ºÐ¼®À» ½ÇÇàÇÏ´Â µ¥ ÇÊ¿äÇÑ ±â´ÉµéÀ» Á¦°øÇÏ°í ÀÖ´Ù.

¿¹¸¦ µé¾î ÄÄÆÄÀÏÀÌ ³¡³¯ ¶§ ¸¶´Ù º°µµÀÇ Å¸ÀÌ¹Ö ºÐ¼® ÅøÀ» ÀÛµ¿½Ãų ÇÊ¿ä ¾øÀÌ ¼³°è ÄÄÆÄÀÏ µ¿¾È Quartus ¼ÒÇÁÆ®¿þ¾î´Â ÀÚµ¿ÀûÀ¸·Î Á¤Àû ŸÀÌ¹Ö ºÐ¼®±â¸¦ ÀÛµ¿½Ãų ¼ö ÀÖ´Ù.  Quartus Á¤Àû ŸÀÌ¹Ö ºÐ¼®±â´Â ¶ÇÇÑ ¿©·¯ distinct table·Î °á°ú¸¦ ¾Ë·ÁÁÖ¸ç ¸ðµç ŸÀÌ¹Ö ºÐ¼® °á°ú¿¡ ´ëÇÑ Áï°¢ÀûÀ̸ç Á÷Á¢ÀûÀÎ ¾×¼¼½º¸¦ Á¦°øÇÑ´Ù.

 

ŸÀÌ¹Ö ºÐ¼®ÀÇ ±âº»

Æ÷°ýÀûÀΠŸÀÌ¹Ö ºÐ¼®À» ½Ç½ÃÇϱâ À§ÇÏ¿© ¼³°èÀÚ´Â ±× ¼³°èÀÇ ¼Â¾÷ ŸÀÓ ¹× Ȧµå ŸÀÓ, Clock-to-output µô·¹ÀÌ, Ŭ·° skew, ÃÖ´ë Ŭ·° ÁÖÆļö ±×¸®°í slack timeÀ» °üÂûÇÒ ÇÊ¿ä°¡ ÀÖ´Ù.  ÀÌ Á¤º¸µéÀº ¼³°èÀÚ°¡ ȸ·ÎÀÇ ¼º´ÉÀ» ½ÇÇöÇÏ°í °¡´ÉÇÑ ½Ã°£ violationÀ» È®ÀÎÇϵµ·Ï ÇØÁØ´Ù.  ¹ß°ßµÇÁö ¾ÊÀº violationÀº ŸÀÌ¹Ö ÇØÀúµå (hazards) ³ª race conditions¸¦ ¾ß±âÇÒ ¼öµµ Àִµ¥ À̵éÀº ȸ·Î ½ÇÆÐÀÇ ÁÖ¿øÀεé ÁßÀÇ ÇϳªÀÌ´Ù.

¼Â¾÷ ŸÀÓ (tSU)

µ¥ÀÌÅͳª enable inputÀ» ÅëÇÏ¿© ·¹Áö½ºÅ͸¦ ÇǵåÇÏ´Â µ¥ÀÌÅʹ Ŭ·° ÇÉ¿¡ ·¹Áö½ºÅÍÀÇ Å¬·° ½Ã±×³ÎÀÌ assert µÇ±â Àü¿¡ ÀÔ·Â ÇÉ¿¡ µµÂøÇÏ¿©¾ß ÇÑ´Ù.  ¼Â¾÷ ŸÀÓÀº ¾×Ƽºê Ŭ·° edgeÀü¿¡ ÀÌ µ¥ÀÌÅÍ°¡ µµÂøÇØ¾ß ÇÏ´Â ÃÖ¼ÒÇÑÀÇ ½Ã°£ ±æÀÌÀÌ´Ù.

Ȧµå ŸÀÓ (tH)

µ¥ÀÌÅͳª enable inputÀ» ÅëÇÏ¿© ·¹Áö½ºÅ͸¦ ÇǵåÇÏ´Â µ¥ÀÌÅʹ Ŭ·° ÇÉ¿¡ ·¹Áö½ºÅÍÀÇ Å¬·° ½Ã±×³ÎÀÌ assertµÈ ÈÄ¿¡´Â ÀÔ·Â ÇÉ¿¡¼­ hold µÇ¾î¾ß ÇÑ´Ù.  È¦µå ŸÀÓÀº ¾×Ƽºê Ŭ·° edge ÀÌÈÄ ÀÌ µ¥ÀÌÅÍ°¡ ¾ÈÁ¤µÇ¾î¾ß ÇÏ´Â ÃÖ¼ÒÇÑÀÇ ½Ã°£ ±æÀÌÀÌ´Ù.

Clock-to-output Delay (tCO)

Clock-to-output Delay´Â Ŭ·° ÇÉ¿¡¼­ Ŭ·°ÀÌ Æ®·£Áö¼ÇÀ» ÇÑ ÈÄ¿¡ Ãâ·Â ÇÉ¿¡¼­ À¯È¿ÇÑ Ãâ·ÂÀ» ¾ò¾î³»´Âµ¥ ÇÊ¿äÇÑ ½Ã°£ÀÌ´Ù.

Ŭ·° skew

Ŭ·° skew´Â µÎ°³ÀÇ ¼­·Î ´Ù¸¥ ·¹Áö½ºÅÍ¿¡¼­ÀÇ Å¬·° ½Ã±×³ÎÀÇ µµÂø ½Ã°£ Â÷ÀÌÀÌ´Ù.  ÀÌ ½Ã°£Â÷´Â µÎ°³ÀÇ Å¬·° ½Ã±×³Î °æ·Î°¡ ¼­·Î ´Ù¸¥ ±æÀ̸¦ °®°í ÀÖÀ» ¶§ ¹ß»ýÇÑ´Ù.  Å¬·° skew´Â ÀüüÀûÀÎ ¶ó¿ìÆÃÀÌ µÇÁö ¾ÊÀº Ŭ·° ½Ã±×³ÎÀ» Æ÷ÇÔÇÏ´Â ¼³°è¿¡¼­´Â ÈçÇÑ ÀÏÀÌ´Ù.  Quartus ¼ÒÇÁÆ®¿þ¾î´Â ±×µéÀÌ ÇÉÀ§¿¡ ÀÖµç ȤÀº ³»ºÎÀûÀ¸·Î ÆÄ»ýµÈ Ŭ·°À̵çÁö °£¿¡ ¸ðµç Ŭ·°¿¡ ´ëÇÑ Å¬·° skew¸¦ ¾Ë·ÁÁØ´Ù.

ÃÖ´ë Ŭ·° ÁÖÆļö (fMAX)

ÃÖ´ë Ŭ·° ÁÖÆļö´Â µðÀÚÀΠŬ·°ÀÌ ³»ºÎ ¼Â¾÷°ú Ȧµå ŸÀÓ ¿ä°ÇÀ» À§¹ÝÇÏÁö ¾Ê°í ÀÛµ¿µÉ ¼ö ÀÖ´Â °¡Àå ºü¸¥ ¼ÓµµÀÌ´Ù.  Quartus ¼ÒÇÁÆ®¿þ¾î´Â ¼³°èÀÇ ³»ºÎ ¹× ½Ã½ºÅÛ fMAX¸¦ ¾Ë·ÁÁָ鼭 ´ÜÀÏ È¤Àº ´Ù¼öÀÇ Å¬·° ¼³°è¿¡ ´ëÇÏ¿© ¸ðµÎ ŸÀÌ¹Ö ºÐ¼®À» ½ÇÇàÇÑ´Ù.  ³»ºÎ fMAX ºÐ¼®Àº µð¹ÙÀ̽º³»ÀÇ Register-to-Register ŸÀ̹ÖÀ» °è»êÇÏ°í ½Ã½ºÅÛ fMAX´Â µð¹ÙÀ̽º¿¡ ´ëÇÑ ¿ÜºÎ µô·¹À̸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù.

³»ºÎ fMAX¸¦ °áÁ¤ÇÏ·Á¸é ȸ·ÎÀÇ Å¬·° ÁֱⰡ °è»êµÇ¾î¾ß ÇÑ´Ù.  Å¬·° ÁÖ±â´Â µ¥ÀÌÅÍ °æ·Î µô·¹À̳ª ·¹Áö½ºÅÍ°£ÀÇ Å¬·° skew, ¼Ò½º ·¹Áö½ºÅÍÀÇ clock-to-output ½Ã°£ ±×¸®°í ¸ñÇ¥ ·¹Áö½ºÅÍÀÇ ¼Â¾÷ ŸÀÓ¿¡ ´Þ·Á ÀÖ´Ù.

Quartus ¼ÒÇÁÆ®¿þ¾î´Â Ŭ·° ÁÖ±â¿Í ³»ºÎ fMAX¸¦ °è»êÇϱâ À§ÇÏ¿© ´ÙÀ½ µî½ÄÀ» »ç¿ëÇÑ´Ù.  Å¬·° Áֱ⠵î½Ä¿¡ ÀÖ´Â Register-to-Register Delay (tRD) ´Â µÎ ·¹Áö½ºÅÍ°£ÀÇ µ¥ÀÌÅÍ °æ·Î µô·¹À̸¦ ³ªÅ¸³½´Ù.

  • Clock period = tRD - Clock Skew + Micro tCO + Micro tSU
  • Internal fMAX = 1 / Clock period

´ÙÀ½ µî½ÄÀº À§ ±×¸² 1¿¡¼­ º¸¿©Áø ȸ·Î¿¡ ´ëÇÑ ³»ºÎ fMAX¸¦ °è»êÇÑ´Ù.

  • Internal fMAX = 1 / [ B - ( E - C ) + Source Micro tCO + Destination Micro tSU ]

 

Slack

SlackÀº ŸÀÌ¹Ö ¿ä°Ç (¿¹: fMAX) À» ¸¸Á·½ÃÅ°´Âµ¥ ÇÊ¿äÇÑ marginÀÌ´Ù.  ¾ç¼öÀÇ slackÀº ȸ·Î°¡ ŸÀÌ¹Ö ¿ä°ÇÀ» ¸¸Á·ÇÑ °ÍÀ» °¡¸®Å°°í À½¼öÀÇ slackÀº ¼³°è°¡ ŸÀÌ¹Ö À§¹ÝÀ» °®°í ÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.  Quartus ¼ÒÇÁÆ®¿þ¾î´Â ´ÙÀ½ µî½ÄÀ» °¡Áö°í slackÀ» °áÁ¤ÇÑ´Ù.

  • Slack = Required clock period - Actual clock period
  • Slack = Slack clock period - ( Micro tCO + Data Delay + Micro tSU )

±×¸² 2´Â slack °è»ê ´ÙÀ̾î±×·¥À» º¸¿©ÁØ´Ù.

 

÷´Ü ±â´Éµé

Quartus ¼ÒÇÁÆ®¿þ¾î´Â ¼³°èÀÚ°¡ ¼³°è ±â´ÉÀ» ¸Å¿ì Àß ÄÁÆ®·ÑÇÒ ¼ö ÀÖµµ·Ï ´Ù¼öÀÇ Å¬·° µµ¸ÞÀεéÀ» ¿À°¡´Â °æ·Î¸¦ Æ÷ÇÔÇÏ´Â ¼³°è ¹× ¸ÖƼ»çÀÌŬ °æ·Î¸¦ Æ÷ÇÔÇÏ´Â ¼³°èÀÇ Å¸ÀÌ¹Ö ºÐ¼®À» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.  ÀÌ ¼½¼Ç¿¡¼­´Â ÀÌ·¯ÇÑ Ã·´Ü ±â´Éµé¿¡ ´ëÇØ ¼³¸íÇÏ°íÀÚ ÇÑ´Ù.

Quartus Á¤Àû ŸÀÌ¹Ö ºÐ¼®±â ±â´ÉÀ̳ª ÀÌ·¯ÇÑ Ã·´Ü ±â¼úµéÀ» »ç¿ëÇÏ´Â ¹æ¹ý¿¡ °üÇÑ ÀÚ¼¼ÇÑ Á¤º¸´Â Quartus help¸¦ ÂüÁ¶ÇÏÀÚ.

´Ù¼öÀÇ Å¬·° µµ¸ÞÀεé

´Ù¼öÀÇ Å¬·° ȸ·Î´Â ȸ·Î¸¦ µå¶óÀ̺êÇÏ´Â ÇÑ °³ ÀÌ»óÀÇ Å¬·°À» °®´Â ¼³°èÀÌ´Ù.  Å¬·°ÀÌ ÁöÁ¤µÈ ÈÄ¿¡ Quartus ¼ÒÇÁÆ®¿þ¾î´Â ¼­·Î ´Ù¸¥ Ŭ·°¿¡ ÀÇÇÏ¿© ÄÁÆ®·ÑµÇ´Â Register-to-Register °æ·Î¿¡ ´ëÇÑ Å¸À̹ÖÀ» ºÐ¼®ÇÏ¸ç °á°ú¿¡ ´ëÇؼ­´Â slackÀ» ÅëÇÏ¿© ³ªÅ¸³½´Ù.  Å¬·°µéÀÌ ÁöÁ¤µÇÁö ¾Ê¾ÒÀ» ¶§´Â Quartus ¼ÒÇÁÆ®¿þ¾î´Â °¢ Ŭ·° ÇÉ¿¡ ´ëÇÏ¿© fMAX¸¦ ¾Ë·ÁÁØ´Ù.

¸ÖƼ»çÀÌŬ °æ·Î

¸ÖƼ»çÀÌŬ °æ·Î¶õ ÀǵµÀûÀ¸·Î Çϳª ÀÌ»óÀÇ ¾ÈÁ¤µÈ Ŭ·°À» ÇÊ¿ä·Î ÇÏ´Â ·¹Áö½ºÅ͵鰣ÀÇ °æ·ÎÀÌ´Ù.

¿¹¸¦ µé¾î ·¹Áö½ºÅÍ´Â µÎ ¹ø° rising Ŭ·° edge ¸¶´Ù ½ÅÈ£¸¦ Æ®¸®°Å¸µÇÒ ÇÊ¿ä°¡ ÀÖÀ» ¼öµµ ÀÖ´Ù.

±×¸² 3Àº ÀÛÀº ¿É¼Â (offset) ÀÌ ¹ß»ýÇϴ Ŭ·°ÀÌ ¸¹ÀÌ ÀÖ´Â ¼³°èÀÇ ·¹Áö½ºÅÍµé »çÀÌÀÇ ¸ÖƼ»çÀÌŬ °æ·Î ŸÀÌ¹Ö ´ÙÀ̾î±×·¥ÀÌ´Ù.

ÀÌ·¯ÇÑ °æ¿ì ¼³°èÀÚ´Â ºÎÁ¤È®ÇÑ ¼Â¾÷ ŸÀÓ À§¹Ý report¸¦ ÇÇÇϱâ À§ÇÏ¿© ¼³°è¿¡ ¸ÖƼ»çÀÌŬ °æ·Î¸¦ ÁöÁ¤ÇØ¾ß ÇÑ´Ù.  ÀÌ ÁöÁ¤Àº QuartusÀÇ Assignment Organizer¿¡¼­ ÇÒ ¼ö ÀÖ´Ù.

False Path

¶§·Î ¼³°è´Â ȸ·ÎÀÇ ÀÛµ¿°ú °ü·Ã ¾ø´Â ·¹Áö½ºÅ͵鰣ÀÇ °æ·Î¸¦ Æ÷ÇÔÇÒ ¼öµµ ÀÖ´Ù.  ÀÌ·¯ÇÑ °æ·ÎµéÀº false path·Î °£ÁֵȴÙ.  Á¤È®ÇÑ °á°ú¸¦ ¾ò±â À§ÇÏ¿© ¼³°èÀÚ´Â Á¤Àû ŸÀÌ¹Ö ºÐ¼®ÇÏ´Â µ¿¾È ÀÌ·¯ÇÑ °æ·Î¸¦ ¹«½Ã (Áï Á¦°Å) ÇÒ ¼ö ÀÖµµ·Ï Quartus Á¤Àû ŸÀÌ¹Ö ºÐ¼®±â¸¦ ¼¼ÆÃÇÒ ¼ö ÀÖ´Ù.

False path ½Ã±×³ÎÀÇ ¿¹´Â Á¤»óÀûÀÎ ÀÛµ¿ (¿¹: ¸®¼ÂÀ̳ª Å×½ºÆ® ¸ðµå) ÇÏ¿¡¼­´Â »ç¿ëµÇÁö ¾Ê´Â ½Ã±×³ÎÀÌ´Ù.  ¼³°èÀÚ´Â Quartus ¼ÒÇÁÆ®¿þ¾îÀÇ Timing settings (project ¸Þ´º) À̳ª Assignment Organizer (Tool ¸Þ´º) ´ëÈ­ »óÀÚ¸¦ »ç¿ëÇÔÀ¸·Î½á ÀÌ·¯ÇÑ °æ·Î¸¦ Á¦°ÅÇÒ ¼ö ÀÖ´Ù.

 

°á·Ð

°¡±î¿î ¹Ì·¡ÀÇ Â÷±â ¼³°è ¹æ½Ä°ú Áøº¸ÀûÀÎ ÇÁ·Î¼¼½º Å×Å©³î·ÎÁö´Â ´õ Å©°í ´õ ³ôÀº ¼º´ÉÀÇ ¼³°è¸¦ ÇÁ·Î±×·¡¸Óºí ·ÎÁ÷ µð¹ÙÀ̽º (PLD) ¿¡ ±¸ÇöÇϱ⸦ ¿äÇÑ´Ù.  ÀÌ·¯ÇÑ °íµµ·Î Á¤¹ÐÇÑ ¼³°èÀÇ Áõ°¡ Ãß¼¼´Â ¼³°èÀÚ°¡ ¼³°è ŸÀÌ¹Ö ¿ä°ÇÀ» ºü¸£°í ½±°Ô ºÐ¼®ÇÒ ¼ö ÀÖµµ·Ï ÇØÁÖ´Â Çâ»óµÈ ŸÀÌ¹Ö ºÐ¼® ÅøÀ» ÇÊ¿ä·Î ÇÑ´Ù.  Ã·´Ü ŸÀÌ¹Ö ºÐ¼® ÅøÀÌ ¾øÀÌ´Â ¼³°èÀÚ´Â ´Ù¼öÀÇ Å¬·°°ú °æ·Î°¡ µÚ¼¯ÀÎ º¹ÀâÇÑ ¼³°è¿¡ ´ëÇØ È¸·Î ½ÇÆÐÀÇ À§ÇèÀ» °®°Ô µÈ´Ù.  Quartus Á¤Àû ŸÀÌ¹Ö ºÐ¼®±â´Â ½Ã½ºÅÛ ¿Â ¾î ÇÁ·Î±×·¡¸Óºí Ĩ (System-On-a-Programmable-Chip) ¼³°è ½ÇÇö¿¡ ÇʼöÀûÀΠŹ¿ùÇÑ »õ·Î¿î ŸÀÌ¹Ö ºÐ¼® ±â´É ¼¼Æ®¸¦ Á¦°øÇÑ´Ù. (2000.7.4)

  Send to a colleague | Print this document