Active-VHDL Tutorial for Xilinx FPGA Designs ÇÑ±ÛÆÇ release2...

 

Tutorial Contents

 

Introduction
Creating the Active-VHDL Design
Functional Simulation
Creating Test Bench
Synthesis and Implementation
Timing Simulation
Creating Macro for Timing Simulation

 

Introduction

 

º» ±³ÀçÀÇ ¸ñÀûÀº Active-VHDLÀ» °¡Áö°í FPGA¸¦ ¼³°èÇÏ´Â ÀüÇüÀûÀÎ È帧À» ÅëÇØ¼­ »ç¿ëÀÚ¿¡°Ô ¹æÇâÀ» Á¦½ÃÇϱâ À§ÇÔÀÌ´Ù.  Àü¹ÝÀûÀÎ ¼ø¼­´Â »ç¿ëÀÚ°¡ Â÷·Ê´ë·Î ÁøÇàÇÏ´Â °ÍÀ¸·Î °¡Á¤ÇÏ¿© ¿©·¯°³ÀÇ ´Ü¶ôÀ¸·Î ³í¸®Àû ±¸ºÐÀÌ µÈ´Ù.  ¶ÇÇÑ Synthesis¿Í Implementation ºÎºÐÀÌ ¼³°è °úÁ¤¿¡ Æ÷ÇÔµÊÀ¸·Î½á, »ç¿ëÀÚ´Â ´ÙÀ½¿¡ °¡¼úÇÏ´Â ¿ÜºÎ µµ±¸µéÀÇ ¼³Ä¡°¡ ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù: METAMOR (VHDL ÇÕ¼º±â)¿Í XACTstep M1. (XILINX Design Implementation Tool)  º» ±³Àç´Â Active-VHDL Software³»¿¡ Æ÷ÇÔµÈ Xilinx_counter¶ó´Â Sample Design¿¡ ±â¹ÝÇϰí ÀÖ´Ù.

(ÁÖ: ALDEC ȨÆäÀÌÁö¿¡¼­ ´Ù¿î·Îµå¸¦ ÇÑ »ç¿ëÀÚ¶ó¸é Metamor ÇÕ¼º±âµµ °°ÀÌ ´Ù¿î·Îµå ÇßÀ¸¸®¶ó »ý°¢ÀÌ µç´Ù...  ´Ù¿î·ÎµåÇÑ Metamor ÇÕ¼º±â¸¦ ¼³Ä¡ÇÏ¸é ±âº»ÀûÀ¸·Î "<Active-VHDL Directory>\mmvhdl"¿¡ À§Ä¡ÇÑ´Ù...  ±×¸®°í ±âÁ¸¿¡ Metamor ÇÔ¼º±â¸¦ »ç¿ëÁßÀ̶ó¸é ±×ÇÕ¼º±â¸¦ »ç¿ëÇØµµ ¹«¹æÇÏ´Ù...  ¿¹¸¦µé¸é Xilinx Foundation Series 1.4³ª ȤÀº Accolade PeakVHDL°°Àº Software¿¡ Æ÷ÇÔµÈ Metamor ÇÕ¼º±â¸¦ ÀǹÌÇÑ´Ù...  Æ¯È÷ PeakVHDL¿¡ Æ÷ÇÔµÈ Metamor ÇÕ¼º±â´Â Active-VHDL¿¡ Æ÷ÇÔµÈ °Íº¸´Ù ¹öÀüÀÌ ³ôÀ¸¹Ç·Î Á»´õ³ºÀº ÇÕ¼º°á°ú¸¦ ±â´ëÇÒ¼öµµ ÀÖÀ»°ÍÀÌ´Ù...)

 

Creating the Active-VHDL Design

 

  1. ¹ÙÅÁÈ­¸é¿¡ ÀÖ´Â ´ÜÃà¾ÆÀÌÄÜ()À» ´õºíŬ¸¯ÇÏ¿© Active-VHDLÀ» ½ÃÀÛÇÑ´Ù.  Getting Started ´ëÈ­ »óÀÚ¿¡¼­ Create new design Ç׸ñÀ» ¼±ÅÃÇϰí OK¸¦ Ŭ¸¯ÇÑ´Ù.

  1. New Design Wizard ¶ó´Â Á¦¸ñÀÇ Ã¹ ¹øÂ° ´ëÈ­ »óÀÚ°¡ ¿­¸®°í »õ·Î¿î DesignÀ» À§ÇÑ À̸§°ú ÀÛ¾÷µð·ºÅ丮ÀÇ °æ·Î¸¦ »ç¿ëÀÚ¿¡°Ô ÀÔ·ÂÇϵµ·Ï ¿ä±¸ÇÑ´Ù.  Design nameÀº MY_COUNTER¶ó°í ÀÔ·ÂÇÏ°í ´ÙÀ½(N)>À» Ŭ¸¯ÇÑ´Ù.  (Select the location of the design folder:Ç׸ñÀÇ ÀÛ¾÷µð·ºÅ丮´Â Active-VHDL¼³Ä¡½Ã ÁöÁ¤ÇÑ µð·ºÅ丮°¡ ±âº»ÀûÀ¸·Î ÀÔ·ÂµÈ »óŰ¡ µÈ´Ù.)

  1. ±×´ÙÀ½ ¸¶¹ý»ç ´ëÈ­ »óÀÚ¿¡¼­, Create new source files now optionÀ» ¼±ÅÃÇÏ°í ´ÙÀ½(N)>À» Ŭ¸¯ÇÑ´Ù.

  1. ±×´ÙÀ½À¸·Î, NEW¸¦ Ŭ¸¯ÇÏ¿© ¾Æ·¡ ±×¸²¿¡¼­ º¸¿©ÁöµíÀÌ VHDL Code source¿¡¼­ ¼±¾ðµÇ¾îÁú COUNTER Entity¸¦ Á¤ÀÇÇÑ´Ù.

  1. Entity¸íÀ» ÀÔ·ÂÇϰí <Enter>۸¦ ´©¸£¸é Design Wizard - Ports ´ëÈ­ »óÀÚ°¡ ³ªÅ¸³­´Ù.  ±×·¸Áö ¾Ê´Ù¸é Ports ¹öưÀ» Ŭ¸¯ÇÏ¿© COUNTER EntityÀÇ PortµéÀ» Á¤ÀÇÇÑ´Ù.
  2. New¸¦ Ŭ¸¯ÇÏ¿© Port name CLK¸¦ ÀÔ·ÂÇϰí Port directionÀº InÀ» ¼±ÅÃÇÑ´Ù.  ±×¸®°í TypeÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â Port Type ´ëÈ­ »óÀÚ¿¡¼­ Port typeÀ» STD_LOGICÀ¸·Î ¼±¾ðÇÑ´Ù.
  3. COUNTER EntityÀÇ ´ÙÀ½ Portµéµµ µ¿ÀÏÇÑ ¼ø¼­·Î ÁøÇàÇÑ´Ù:
    • RESET: in STD_LOGIC
    • Q: out STD_LOGIC_VECTOR (3 downto 0)

  1. New Design Wizard ´ëÈ­ »óÀÚ·Î µÇµ¹¾Æ°¡±âÀ§ÇØ OK¸¦ Ŭ¸¯Çϰí, ´ÙÀ½(N)>À» Ŭ¸¯ÇÑ´Ù.

  1. À§¿¡¼­ Á¤ÀÇÇÑ ³»¿ëó·³ Ãʱ⠵ðÀÚÀÎ ¼³Á¤»óŰ¡ ¸¶¹ý»çÀÇ ¸¶Áö¸· ´ëÈ­ »óÀÚ¿¡ Ç¥½Ã°¡ µÇ´ÂÁö¸¦ °Ë»çÇÑ´Ù.  ¸¸¾à Error°¡ ÀÖ´Ù¸é, <µÚ·Î(B) ¹öưÀ» Ŭ¸¯ÇÏ¿© ÇØ´ç ´ëÈ­ »óÀÚ·Î µÇµ¹¾Æ°¡¼­ Data¸¦ UpdateÇÑ´Ù.
  2. ÇöÀç ¼³Á¤°ªÀ» °¡Áø DesignÀ» »ý¼ºÇϱâ À§ÇØ ¸¶Ä§À» Ŭ¸¯ÇÑ´Ù.
  3. Design BrowserÀÇ Files Åǻ󿡼­ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼­ New Folder¸¦ ¼±ÅÃÇÑ´Ù.  »õ·Î¿î Folder¸íÀ¸·Î FUNCTIONALÀ» ÀÔ·ÂÇÑ´Ù.
  4. ²ø¾î´Ù³õ±â(drag and drop) ±â´ÉÀ» »ç¿ëÇÏ¿©, COUNTER.VHD source ÆÄÀÏÀ» »õ Æú´õ·Î À̵¿ÇÑ´Ù.
  5. COUNTER.VHD¸¦ ´õºíŬ¸¯ÇÏ¿© HDL Editor¿¡¼­ ÆÄÀÏÀ» ¿¬´Ù.

  1. Architecture block³»ÀÇ Begin¹®µÚ¿¡ Ä¿¼­¸¦ À§Ä¡½ÃŲ´Ù.  View Language Assistant ¹öư()À» Ŭ¸¯ÇÑ´Ù.
  2. VHDL Language Assistantâ¿¡¼­ Tutorial ÅÛÇø®Æ® ±×·ì¿¡ ÀÖ´Â Counter ÅÛÇø®Æ®¸¦ ¼±ÅÃÇÑ´Ù.  COUNTER.VHD ÆÄÀÏ¿¡ Counter ÅÛÇø®Æ®¸¦ ºÙ¿©³Ö±â À§ÇØ ¿À¸¥ÂÊ ¸¶¿ì½º¹öưÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´ºÁß¿¡¼­ Use¸¦ ¼±ÅÃÇÑ´Ù.

  1. COUNTER.VHD ÆÄÀÏÀÇ entity ¼±¾ð¹® ¹Ù·Î¾Õ¿¡ Ä¿¼­¸¦ À§Ä¡½ÃŲ´Ù.  Language ÅÛÇø®Æ® ±×·ì³»ÀÇ library packages ÅÛÇø®Æ®¿¡ ÀÖ´Â SYNOPSYS ÅÛÇø®Æ®¸¦ ¼±ÅÃÇÑÈÄ ´ÜÃà¸Þ´ºÀÇ Use¸¦ ½ÇÇàÇÑ´Ù.  SYNOPSYS ¶óÀ̺귯¸®¿Í packages ¼±¾ðºÎ´Â METAMOR·Î º» µðÀÚÀÎÀ» ÇÕ¼ºÇϱâÀ§Çؼ­ ÇÊ¿äÇÏ´Ù.

  1. VHDL Language Assistant âÀ» ´Ý´Â´Ù.

 

Functional Simulation

 

  1. Compile All Åø¹Ù ¹öư()À» Ŭ¸¯ÇÏ¿© Çö µðÀÚÀÎÀ» ÄÄÆÄÀÏÇÑ´Ù.
  2. ¼º°øÀûÀ¸·Î ÄÄÆÄÀÏÀÌ µÇ¾ú´Ù´Â ¸Þ½ÃÁö°¡ ³ª¿Ã ¶§±îÁö ±â´Ù¸°ÈÄ, Simulation ¸Þ´ºÀÇ Initialize Simulation ¸í·ÉÀ» ¼±ÅÃÇÑ´Ù.  Design Settings ´ëÈ­ »óÀÚ°¡ ³ªÅ¸³ª¸é, top-level entity¸¦ COUNTER·Î ¼±ÅÃÇÑ´Ù.  È®ÀÎÀ» Ŭ¸¯ÇÑ´Ù.

  1. New Waveform ¹öư À» Ŭ¸¯ÇÏ¸é »õ·Î¿î waveform À©µµ¿ì°¡ ¿­¸±°ÍÀÌ´Ù.
  2. µðÀÚÀÎ ºê¶ó¿ìÀúÀÇ Structure ÅÇ¿¡ ÀÖ´Â Root ±¸¼º ¿ä¼Ò ("Root: COUNTER"¶ó°í ÀûÈùºÎºÐÀ» ÀǹÌ...)¸¦ ¸¶¿ì½º·Î ²ø¾î¼­ waveform À©µµ¿ìÀÇ ¿ÞÂÊ ±¸È¹À¸·Î µå·ÓÇÏ¿© ÆÄÇü À©µµ¿ì¿¡ Root ±¸¼º ¿ä¼ÒÀÇ ¸ðµÎ ½ÅÈ£µéÀ» ´õÇÏ¿© ÁØ´Ù.

  1. ÆÄÇü À©µµ¿ì¿¡¼­ CLK ½ÅÈ£¸¦ ¼±ÅÃÇÏ¿© ÁØ´Ù.  ±×¸®°í ±× ´ÙÀ½¿¡ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» ´­·¯ ³ªÅ¸³ª´Â ´ÜÃà ¸Þ´º·ÎºÎÅÍ Stimulators¸¦ ¼±ÅÃÇÏ¿© ÁØ´Ù.  À̰ÍÀº Stimulators ´ÙÀ̾ó·Î±×¸¦ ³ªÅ¸³¾ °ÍÀÌ´Ù.

  1. Stimulator Type: ¹Ú½º¿¡¼­ Predefined¸¦ ¼±ÅÃÇÏ¿© ÁÖ°í ±× ´ÙÀ½¿¡ clock stimulator·Î »çÀü¿¡ ±ÔÁ¤µÈ B0À» ¼±ÅÃÇÏ¿© ÁØ´Ù.  CLK ÀÔ·Â Æ÷Æ®¿¡ ¼±ÅÃµÈ stimulator¸¦ Àû¿ëÇϱâ À§ÇØ Apply¸¦ Ŭ¸¯ÇÑ´Ù.
  2. Close¸¦ Ŭ¸¯ÇÏ¿© Stimulator ´ëÈ­ »óÀÚ¸¦ ´Ý´Â´Ù.
  3. RESET ½ÅÈ£¿¡ ´ëÇÏ¿© 5¹ø ´Ü°è¸¦ ¹Ýº¹ÇÑ´Ù.  Stimulator type ¹Ú½º¿¡¼­ Hotkey¸¦ ¼±ÅÃÇϰí Press new hotkey ¹Ú½º¿¡ 'A'¸¦ ÀÔ·ÂÇÑ´Ù.  ´ÙÀ½À¸·Î, Apply ¹öưÀ» Ŭ¸¯Çϰí Colse¹öưÀ» ´­·¯ ´ëÈ­ »óÀÚ¸¦ ´Ý´Â´Ù.

  1. waveform â¿¡¼­ RESETÀ» ¼±ÅÃÇϰí, "A"¸¦ ´­·¯¼­ RESET ÃʱⰪÀ¸·Î "1"À» ¼³Á¤ÇÑÈÄ, Time To Run ¹Ú½º Image1693.gif (250 bytes)¿¡ ½Ã¹°·¹ÀÌ¼Ç ½ºÅÜÀ» 100ns·Î ¼³Á¤ÇÑ´Ù.
  2. ƯÁ¤ÇÑ ½Ã°£±îÁö ½Ã¹°·¹À̼ÇÀ» ÀüÁø½Ã۱â À§ÇÏ¿© Åø¹Ù¹öư »óÀÇ Image1692.gif (117 bytes)¸¦ Ŭ¸¯ÇÑ´Ù.
  3. RESET °ªÀ» "0"À¸·Î Çϰí, ½Ã¹°·¹ÀÌ¼Ç ½ºÅÜÀ» 2000ns·Î ¼³Á¤ÇÑ´Ù.  ´Ù½ÃÇѹø Åø¹Ù¹öư »óÀÇ Run For¸¦ Ŭ¸¯ÇÑ´Ù.
  4. RESET °ªÀ» "1"·Î Çϰí Console â¿¡´Ù°¡ run 100ns¸¦ ±âÀÔÇϰí Enter۸¦ ´©¸¥´Ù.
  5. RESET °ªÀ» "0"À¸·Î Çϰí Çѹø´õ Run For ¹öưÀ» Ŭ¸¯ÇÑ´Ù.
  6. Simulation ¸Þ´º¿¡¼­ End simulationÀ» ¼±ÅÃÇÑ´Ù.

  1. ½Ã¹°·¹ÀÌ¼Ç °á°ú´Â À§ÀÇ ±×¸²Ã³·³ º¸¿©Áú °ÍÀÌ´Ù.  ÆÄÇü À©µµ¿ìÀÇ ½Ã°£Ç¥Çö ±¸°£À» Á¶Á¤ÇÏ·Á¸é È®´ë±â´É ()À» »ç¿ëÇÒ°Í.
  2. File -> Save¸í·ÉÀ» »ç¿ëÇÏ¿© Functional Æú´õ¿¡ FUNCTIONAL.AWF¶ó´Â À̸§À¸·Î ÆÄÇüÀ» ÀúÀåÇÑ´Ù.  ÆÄÇü À©µµ¿ì¸¦ ´Ý´Â´Ù.  Design BrowserÀÇ Resource ÅÇÀ¸·Î À̵¿ÇÏ¿© »ç¿ëÀÚ°¡ ÀúÀåÇÑ ÆÄÇüÀÌ WAVEFORMS ±×·ì¿¡ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÑ´Ù.

Image1691.gif (3230 bytes)

 

Creating Test Bench

 

  1. Design Browser â¿¡¼­ Files ÅÇÀ¸·Î À̵¿ÇÑ´Ù.
  2. °èÃþÆ®¸®³»ÀÇ COUNTER.VHD ÆÄÀÏ¿¡¼­ COUNTER ¿£Æ¼Æ¼¸¦ ¼±ÅÃÇÑ´Ù.

  1. ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ¿© ´ÜÃà¸Þ´º¿¡ ÀÖ´Â Generate Test Bench¸í·ÉÀ» ¼±ÅÃÇÑ´Ù.

  1. Test Bench Generator Wizard´Â test bench¸¦ ¸¸µå´Â °úÁ¤À» ÅëÇØ »ç¿ëÀÚ¸¦ µµ¿ÍÁÙ ÀÏ·ÃÀÇ Ã¢µéÀ» Ç¥½ÃÇÒ °ÍÀÌ´Ù.

  1. ù¹øÂ° â¿¡¼­ Single Process ¿É¼ÇÀ» ¼±ÅÃÇÏ°í ´ÙÀ½(N)>À» Ŭ¸¯ÇÑ´Ù.
  2. µÎ¹øÂ° ¸¶¹ý»ç â¿¡¼­ Test vectors from file üũ¹Ú½º¸¦ ¼±ÅÃÇÏ°í ±×¸®°í ³ª¼­ Browse ¹öưÀ» »ç¿ëÇÏ¿© ÀÔ·Â ÆÄÇü ÆÄÀϷμ­ Functional Æú´õ¿¡ ÀÖ´Â FUNCTIONAL.AWF¸¦ Á¤ÀÇÇÑ´Ù.

  1. ´ÙÀ½(N)>À» ´­·¯ ´ÙÀ½À¸·Î ÁøÇàÇÑ´Ù.
  2. À̹ø â¿¡¼­´Â "Type the name of the folder for test bench files:" Çʵ忡 ÀÖ´Â µðÆúÆ® Æú´õ À̸§À» »èÁ¦ÇÑ´Ù.  À̰ÍÀº ¸¶¹ý»ç°¡ root source file Æú´õ·Î »ðÀÔÀ» ½ÃÄѼ­ ±× ÆÄÀÏÀÌ ¸¸µé¾îÁö±â ¶§¹®ÀÌ´Ù.

  1. ±× ´ÙÀ½À¸·Î ÇöÀç ³ªÅ¸³ª´Â Å×½ºÆ® º¥Ä¡ »ç¾çÀ» ¹Þ¾ÆµéÀ̱â À§ÇØ ´ÙÀ½(N)>À» Ŭ¸¯ÇÑ´Ù.
  2. ¸¶¹ý»ç¿¡ ÀÇÇØ Ç¥½ÃµÇ´Â ¸¶Áö¸· â¿¡¼­ µðÀÚÀÎÀÇ Å¸ÀÌ¹Ö ½Ã¹Ä·¹À̼ÇÀ» °¡´ÉÇÏ°Ô ÇϱâÀ§ÇØ Generate üũ¹Ú½º¸¦ ¼±ÅÃÇÑ´Ù.

  1. ¸¶Ä§À» Ŭ¸¯ÇÏ¿© Å×½ºÆ® º¥Ä¡ ÀÛ¼ºÀ» ¿Þ·áÇÑ´Ù.  Test Bench Generator Wizard´Â ´ÙÀ½ÀÇ ¼¼ÆÄÀÏÀ» ÀÛ¼ºÇÒ °ÍÀÌ´Ù:
    • COUNTER_TB.VHD
    • COUNTER_TB_TIM_CFG.VHD
    • COUNTER_TB_RUNTEST.DO
  1. Design BrowserÀÇ Files ÅÇ¿¡¼­ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ°í ´ÜÃà¸Þ´º¿¡ ÀÖ´Â New Folder¸¦ ¼±ÅÃÇÑ´Ù.  Æú´õ¸íÀ» TIMING¶ó°í ÀÔ·ÂÇÑ´Ù.  SIMULATE Æú´õµµ °°Àº ¹æ¹ýÀ¸·Î »ý¼º½ÃŲ´Ù.

  1. µå·¹±× & µå·Ó±â´ÉÀ» »ç¿ëÇØ¼­ TIMING Æú´õ·Î COUNTER_TB_TIM_CFG.VHD ÆÄÀÏÀ» À̵¿Çϰí SIMULATE Æú´õ·Î COUNTER_TB_RUNTEST.DO ÆÄÀÏÀ» À̵¿ÇÑ´Ù.
  2. ÀÌÁ¦ »ç¿ëÀÚ´Â ÃÖ±Ù¿¡ ÀÛ¼ºµÈ Å×½ºÆ® º¥Ä¡¸¦ »ç¿ëÇØ¼­ Å×½ºÆ® ½Ã¹Ä·¹À̼ÇÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.  »ç¿ëÀÚ°¡ ÇàÇÒ ÀÏÀº COUNTER_TB_RUNTEST.DO ¸ÅÅ©·Î¸¦ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ¸·Î Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼­ Execute¸¦ ¼±ÅÃÇÏ¿© ¸ÅÅ©·Î¸¦ ½ÇÇàÇÏ´Â °ÍÀÌ´Ù...  
  3. °á°ú¸¦ ±â´Ù¸®°í Simulation ¸Þ´º¿¡¼­ End Simulation ¿É¼ÇÀ» ±× ´ÙÀ½¿¡ ¼±ÅÃÇÑ´Ù.

 

Synthesis and Implementation

 

±â´É ½Ã¹°·¹À̼ÇÀ» ¼öÇàÇÏ¿© ¼³°èÀÇ Ãʱ⠰ËÁõÈÄ, »ç¿ëÀÚ´Â µðÀÚÀÎÀ» ÇÕ¼ºÇϰí, ½ÇÁ¦ ±¸ÇöÀ» À§ÇÑ Netlist¸¦ ¸¸µé¾î ³½´Ù.  Active-VHDLÀº ÇÕ¼º ÅøÀ» À§ÇÑ ¾î¶°ÇÑ ÀÎÅÍÆäÀ̽ºµµ Á¦°øÇÏÁö ¾Ê±â ¶§¹®¿¡ »ç¿ëÀÚ´Â METAMOR ÇÕ¼º ÅøÀ» È£ÃâÇÒ ¸ÅÅ©·Î¸¦ ½ÇÇàÇØ¾ß¸¸ ÇÑ´Ù.  ±×´ÙÀ½ ´Ü°è´Â ÇÕ¼ºµÈ NetlistÀÇ Place and Route¸¦ ¼öÇàÇÒ XACTstep M1 toolÀÇ ½ÇÇàÀÌ´Ù.  À̴ܰèÀÇ °á°ú´Â FPGA Device¿¡ DownloadÇÒ ¼ö ÀÖ´Â ÇüÅÂÀÎ Bitstream FileÀÌ´Ù.  À̿ʹ º°µµ·Î XACTstep M1Àº ŸÀÌ¹Ö ½Ã¹°·¹À̼ÇÀ» À§ÇÑ post-place-and-route VHDL file°ú SDF Çü½ÄÀΠŸÀÌ¹Ö Data¸¦ »ý¼ºÇÒ °ÍÀÌ´Ù.

  1. À§¿¡¼­ ±â¼úÇÑ ÀýÂ÷¸¦ ÇàÇϱâ À§ÇØ, Design BrowserÀÇ File Åǻ󿡼­ IMPLEMENT¶ó´Â »õ·Î¿î Æú´õ¸¦ ¸¸µç´Ù.

  1. Design ¸Þ´º¿¡¼­ Add Files to Design¸¦ ¼±ÅÃÇÑ´Ù.
  2. Add Files to Design ´ëÈ­»óÀÚ¿¡¼­ Xilinx_counter sample design (¸ÇÀ§¿¡¼­ ¼³¸íÇßµíÀÌ Active-VHDLÀÌ ¼³Ä¡µÉ ¶§ °°ÀÌ º¹»çµÇ´Â sample designÁßÀÇ ÇϳªÀÌ´Ù...  À§Ä¡´Â <Active-VHDL Directory>\Projects\xilinx_counterÀÌ´Ù...)ÀÇ SRC Æú´õ¿¡ À§Ä¡ÇÑ IMPLEMENT Æú´õ¸¦ ¼±ÅÃÇÑ´Ù.
  3. IMPLEMENT Æú´õÀÇ ³»¿ëÀ» º¸±âÀ§ÇØ Files of Type Ç׸ñ¿¡¼­ All files(*.*)¸¦ ¼±ÅÃÇÑ´Ù.
  4. Çö Æú´õÀÇ ¸ðµç ÆÄÀÏÀ» ¼±ÅÃÇÑ´Ù.  (Ctrl+A¸¦ ´©¸£¸é µÈ´Ù...)
  5. Make local copy¸¦ ¼±ÅÃÇϰí, ±×¸®°í ³ª¼­ ¼±ÅÃÇÑ ÆÄÀϵéÀÇ º¹»çº»À» ¸¸µé°í »ç¿ëÀÚÀÇ µðÀÚÀο¡ À̵éÀ» Ãß°¡ÇϱâÀ§ÇØ, Add¸¦ Ŭ¸¯ÇÑ´Ù.

  1. Drag-and-drop ±â´ÉÀ» »ç¿ëÇÏ¿©, IMPLEMENT Æú´õ·Î ÆÄÀϵéÀ» À̵¿ÇÑ´Ù.
  2. ¸ÅÅ©·ÎÀÇ ³»¿ëÀ» º¸·Á¸é Design Browser³»¿¡¼­ IMPLEMENT.DO ÆÄÀÏÀ» ´õºíŬ¸¯ÇÑ´Ù.

  1. ÀÌ ¸ÅÅ©·Î´Â Àϰý󸮸ðµå·Î 2°³ÀÇ ¿ÜºÎ ÇÁ·Î¼¼½º¸¦ ¼öÇàÇÑ´Ù:
  1. Design Browser³»ÀÇ IMPLEMENT Æú´õ¿¡ ÀÖ´Â IMPLEMENT.DO ÆÄÀÏÀ» ¼±ÅÃÇÑ´Ù.  ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼­ Execute¸¦ ¼±ÅÃÇÑ´Ù.  ROUTE.BAT´Â Place and Route ÇÁ·Î¼¼½º¸¦ ó¸®ÇÏ´Â ÀÏ·ÃÀÇ °úÁ¤À» ¼öÇàÇÑ´Ù.  ÀÌ ½ÇÇà °úÁ¤Àº MS-DOS Prompt â¿¡ Ç¥½Ã°¡ µÈ´Ù.  ROUTE.BAT°¡ ³¡³¯ ¶§±îÁö ±â´Ù·È´Ù°¡ MS-DOS Prompt âÀ» ´Ý´Â´Ù.

  1. Design Browser âÀÇ Resource ÅÇÀ¸·Î À̵¿ÇÑ´Ù.  »ç¿ëÀÚ´Â ÇÕ¼º ¹× ±¸ÇöÅø¿¡ ÀÇÇØ¼­ ¸¸µé¾îÁø Log ÆÄÀϵéÀ» º¼ ¼ö ÀÖ´Ù: SYNTHESIS.LOG and IMPLEMENT.LOG.

    Place and Route process´Â µÎ °³ÀÇ ÆÄÀÏÀ» TIMING Æú´õ¿¡ »ý¼º½ÃŲ´Ù: COUNTER_TIM.VHD¿Í COUNTER_TIM.SDF.

  1. TIMING Æú´õ¸¦ ¼±ÅÃÇÏ°í ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÑ´Ù.  ±×¸®°í ³ª¼­ ´ÜÃà¸Þ´ºÁß¿¡¼­ Add Files to Folder¸¦ ¼±ÅÃÇÑ´Ù.  Add Files to Folderâ¿¡¼­ Çö µðÀÚÀÎÀÇ SRC Æú´õ¿¡ À§Ä¡ÇÑ TIMING Æú´õ¸¦ ¼±ÅÃÇϰí, COUNTER_TIM.VHD¿Í COUNTER_TIM.SDF¸¦ ¼±ÅÃÇϰí Add¸¦ Ŭ¸¯ÇÑ´Ù.

  1. ŸÀÌ¹Ö ½Ã¹°·¹À̼ÇÀ» °¡´ÉÄÉ ÇϱâÀ§Çؼ­´Â, »ç¿ëÀÚ°¡ (COUNTER_TB_TIM_CFG.VHD ÆÄÀÏ¿¡ ÀúÀåµÈ) ŸÀÌ¹Ö ½Ã¹°·¹À̼ÇÀ» À§ÇÑ ±¸¼ºÁ¤º¸¸¦ ¼öÁ¤ÇØ¾ß ÇÑ´Ù.  ±×¸®ÇÏ·Á¸é, TIMING Æú´õ¿¡ ÀÖ´Â COUNTER_TB_TIM_CFG.VHD ÆÄÀÏÀ» ´õºíŬ¸¯ÇÑ´Ù.  ÆÄÀÏÀÌ ¿­¸°´Ù.  »ç¿ëÀÚ°¡ ¼öÁ¤ÇؾßÇÒ ºÎºÐÀÇ ÇØ¼³Àº Code³»¿¡ ¼³¸íÀ¸·Î Á¦°øµÈ´Ù.  You have to uncomment line:

     
    use entity work. ENTITY NAME (ARCH NAME)

    ENTITY NAME°ú ARCH NAME ºÎºÐÀ» post-implementation VHDL ÆÄÀÏÀÎ COUNTER_TIM.VHD¿¡¼­ ½ÇÁ¦·Î »ç¿ëµÇ¾îÁö´Â ºÎºÐÀ¸·Î ¹Ù²Û´Ù. ±×°ÍÀº °¢°¢ COUNTER¿Í STRUCTUREÀÌ´Ù,
    ÀÌ ¸ðµç º¯È¯À» ³¡¸¶Ä¡¸é, ÆÄÀÏÀ» ÀúÀåÇÏ°í ´Ý´Â´Ù.
  2. COUNTER_TIM.VHD ÆÄÀÏÀÌ À§¿¡¼­ º¸¿©Áø TIMING Æú´õÀÇ ¸®½ºÆ®¿¡¼­ Counter_TB_tim_cfg.VHD ÆÄÀϺ¸´Ù ¸ÕÀú ÇàÇØÁöµµ·Ï È®½ÇÈ÷ ÇÏ¿©ÁØ´Ù.  (¸ñ·ÏÀÇ ¸ÇÀ§·Î °¡µµ·Ï ¸¶¿ì½º·Î µå·¢¾Ø µå·ÓÀ» ÇϸéµÈ´Ù...)

 

Timing Simulation

 

  1. Design BrowserÀÇ Files ÅÇ¿¡¼­ TIMING Æú´õ¸¦ ¼±ÅÃÇÑ´Ù.  ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼­ Compile All in Folder ¸í·ÉÀ» ¼±ÅÃÇÑ´Ù.
  2. Design ¸Þ´º¿¡¼­ SettingÀ» ¼±ÅÃÇÑ´Ù.
  3. Top-level Selection ÅÇÀ¸·Î À̵¿ÇÏ¿© TIMING_FOR_COUNTER configurationÀ» ¼±ÅÃÇÑ´Ù.

  1. SDF ÅÇÀ¸·Î ÀüȯÇÏ¿© ÆÄÀÏÀ̸§ ¾Æ·¡ÀÇ ºó¶óÀÎÀ» ´õºíŬ¸¯ÇÑ´Ù.  ¸¸¾à ºó¶óÀÎÀÌ »ç¿ë°¡´ÉÇÏÁö ¾Ê´Ù¸é, ÆÄÀϸíÀÌ ÀûÇôÀÖ´Â ¶óÀÎ À§¿¡¼­ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ°í ´ÜÃà¸Þ´º¿¡¼­ Add RegionÀ» ¼±ÅÃÇÑ´Ù.  ±×¸®°í ³ª¼­ Design Region ¿µ¿ª¿¡ /UUT¸¦ ÀÔ·ÂÇÑ´Ù.  Value Ä÷³À§¸¦ Ŭ¸¯ÇÏ°í ·ÎµåµÉ ŸÀÌ¹Ö °ªÀÇ ¼³Á¤À» Minimal·Î Drop-down ¸Þ´º¿¡¼­ ¼±ÅÃÇÑ´Ù.  ´ÙÀ½À¸·Î Load Ä÷³À§¸¦ Ŭ¸¯Çϰí ÁöÁ¤µÈ ¿µ¿ªÀ¸·Î SDF dataÀÇ ·ÎµùÀ» °¡´ÉÇÏ°Ô ÇϱâÀ§ÇØ Drop-down ¸Þ´º¿¡¼­ Yes¸¦ ¼±ÅÃÇÑ´Ù.

  1. ¼³Á¤À» ¹Þ¾ÆµéÀ̱â À§ÇØ È®ÀÎÀ» Ŭ¸¯ÇÏ°í ´ëȭâÀ» ´Ý´Â´Ù.
  2. Simulation ¸Þ´º¿¡¼­ Initialize Simulation¸¦ ¼±ÅÃÇÑ´Ù.
  3. »õ·Î¿î ÆÄÇü À©µµ¿ì¸¦ »ý¼ºÇϱâÀ§ÇØ New Waveform ¹öưÀ» Ŭ¸¯ÇÑ´Ù.
  4. Design Browser âÀÇ Structure ÅÇÀÇ Root Component·ÎºÎÅÍ ½ÅÈ£µéÀ» Ãß°¡ÇÑ´Ù.
  5. Run ¹öưÀ» Ŭ¸¯ÇÏ°í ½Ã¹°·¹ÀÌ¼Ç °á°ú¸¦ ÁöÄѺ»´Ù.
  6. Simulation ¸Þ´º¿¡¼­ End SimulationÀ» ¼±ÅÃÇÑ´Ù.

 

Creating Macro for Timing Simulation

 

¼³°èÀÇ ¸¶Áö¸· ´Ü°è´Â µðÀÚÀÎÀÇ Å¸ÀÌ¹Ö ½Ã¹°·¹À̼ÇÀ» ½ÇÇàÇÒ ¸ÅÅ©·Î¸¦ »ý¼ºÇÏ´Â °ÍÀÌ´Ù.  

  1. SIMULATE Æú´õ¿¡¼­ COUNTER_TB_RUNTEST.DO¸¦ ¼±ÅÃÇÏ°í ±×¸®°í ³ª¼­ ´ÜÃà¸Þ´º¿¡¼­ OpenÀ» ¼±ÅÃÇÑ´Ù.
  2. RUN_TIMING.DO·Î ÆÄÀÏÀ» ÀúÀåÇϱâÀ§ÇØ File ¸Þ´º¿¡¼­ Save As¸¦ ¼±ÅÃÇÑ´Ù.  ´ÜÃà¸Þ´º»óÀÇ Add Files to Folder¸¦ ¼±ÅÃÇÏ¿© SIMULATE Æú´õ·Î ÆÄÀÏÀ» Ãß°¡ÇÑ´Ù.
  3. RUN_TIMING.DO ÆÄÀÏÀ» ¿­¾î¼­ ¾Æ·¡¿¡ º¸ÀÌ´Â ¿¹Ã³·³ ¼öÁ¤ÇÑ´Ù:

# The following lines can be used for timing simulation
vcom COUNTER_TIM.VHD
vcom counter_TB_tim_cfg.vhd
vsim -sdfmin /UUT=$dsn\src\timing\counter_tim.sdf TIMING_FOR_counter
# vcom "$DSN\src\FUNCTIONAL\counter.VHD"
# vcom "$DSN\src\counter_TB.vhd"
# vsim TESTBENCH_FOR_counter

wave
wave CLK
wave RESET
wave Q
run 4.2 us

Image1689.gif (16639 bytes)

  1. File ¸Þ´ºÀÇ Save¸¦ ¼±ÅÃÇÏ¿© Â÷ÈÄ »ç¿ëÀ» À§ÇØ ¸ÅÅ©·Î¸¦ ÀúÀåÇÑ´Ù.
  2. RUN_TIMING.DO ÆÄÀÏÀ§¿¡¼­ ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ¸Þ´ºÁß Excute¸¦ ¼±ÅÃÇϸé Timing Simulation Chapter¿¡¼­ ÇàÇÑ °Í°ú °°Àº Timing SimulationÀÌ ¼öÇàµÈ´Ù...

 

 



Copyleft Chang-woo,YANG