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

 

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¿¡ ±â¹ÝÇϰí ÀÖ´Ù.

 

Creating the Active-VHDL Design

 

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

  1. New Design Wizard ¶ó´Â Á¦¸ñÀÇ Ã¹ ¹øÂ° ´ëÈ­ »óÀÚ°¡ ¿­¸®°í »õ·Î¿î DesignÀ» À§ÇÑ À̸§°ú ÀÛ¾÷µð·ºÅ丮ÀÇ °æ·Î¸¦ »ç¿ëÀÚ¿¡°Ô ÀÔ·ÂÇϵµ·Ï ¿ä±¸ÇÑ´Ù.  Design nameÀº MY_COUNTER¶ó°í ÀÔ·ÂÇϰí Next¸¦ Ŭ¸¯ÇÑ´Ù.

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

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

  1. 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¸¦ Ŭ¸¯Çϰí, Next¸¦ Ŭ¸¯ÇÑ´Ù.

  1. À§¿¡¼­ Á¤ÀÇÇÑ ³»¿ëó·³ µðÀÚÀÎ ¼Ó¼ºÀÌ ¸¶¹ý»çÀÇ ¸¶Áö¸· ´ëÈ­ »óÀÚ¿¡ Ç¥½Ã°¡ µÇ´ÂÁö¸¦ °Ë»çÇÑ´Ù.  ¸¸¾à Error°¡ ÀÖ´Ù¸é, Back ¹öưÀ» Ŭ¸¯ÇÏ¿© ÇØ´ç ´ëÈ­ »óÀÚ·Î µÇµ¹¾Æ°¡¼­ Data¸¦ UpdateÇÑ´Ù.
  2. ÇöÀç ¼³Á¤°ªÀ» °¡Áø DesignÀ» »ý¼ºÇϱâ À§ÇØ Finish¸¦ Ŭ¸¯ÇÑ´Ù.
  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. Language Assistantâ¿¡¼­ Tutorial ÅÛÇø®Æ® ±×·ì¿¡ ÀÖ´Â Counter ÅÛÇø®Æ®¸¦ ¼±ÅÃÇÑ´Ù.  COUNTER.VHD ÆÄÀÏ¿¡ Counter ÅÛÇø®Æ®¸¦ ºÙ¿©³Ö±â À§ÇØ ´ÜÃà¸Þ´º¿¡¼­ Use¸¦ ¼±ÅÃÇÑ´Ù.

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

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

 

Functional Simulation

 

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

  1. New Waveform button À» Ŭ¸¯ÇÏ¸é »õ·Î¿î waveform À©µµ¿ì°¡ ¿­¸±°ÍÀÌ´Ù.
  2. µðÀÚÀÎ ºê¶ó¿ìÀúÀÇ Structure ÅÇÀ¸·ÎºÎÅÍ Root ±¸¼º ¿ä¼Ò¸¦ ²ø°í ±×¸®°í waveform À©µµ¿ìÀÇ ¿ÞÂÊ ÆäÀÎÀ¸·Î ±×°ÍÀ» µå·ÓÇÏ¿© ÆÄÇü À©µµ¿ì¿¡ Root ±¸¼º ¿ä¼ÒÀÇ ¸ðµÎ ½ÅÈ£µéÀ» ´õÇÏ¿© ÁØ´Ù.

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

  1. Select Predefined from the Stimulator type box, and then select the B0 predefined clock stimulator. Next click Apply to apply the selected stimulator to the CLK input port. Stimulator ŸÀÌÇÁ ¹Ú½º¿¡¼­ Predefined¸¦ ¼±ÅÃÇÏ¿© ÁÖ°í ±× ´ÙÀ½¿¡ clock stimulator·Î »çÀü¿¡ ±ÔÁ¤µÈ B0À» ¼±ÅÃÇÏ¿© ÁØ´Ù.  CLK ÀÔ·Â Æ÷Æ®¿¡ ¼±ÅÃµÈ stimulator¸¦ Àû¿ëÇϱâ À§ÇØ Apply¸¦ Ŭ¸¯ÇÑ´Ù.
  2. Close¸¦ Ŭ¸¯ÇÏ¿© Stimulator ´ëÈ­ »óÀÚ¸¦ ´Ý´Â´Ù.
  3. RESET ½ÅÈ£¿¡ ´ëÇÏ¿© 5¹ø ´Ü°è¸¦ ¹Ýº¹ÇÑ´Ù.  Stimulator type ¹Ú½º¿¡¼­ Hotkey¸¦ ¼±ÅÃÇϰí Press new hotkey ¹Ú½º¿¡ 'A'¸¦ ÀÔ·ÂÇÑ´Ù.  ´ÙÀ½À¸·Î, Apply ¹öưÀ» Ŭ¸¯ÇÏ°í ´ëÈ­ »óÀÚ¸¦ ´Ý´Â´Ù.

  1. wavefor â¿¡¼­ 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. ÆÄÇü À©µµ¿ì¸¦ ´Ý´Â´Ù.  Function Æú´õ¿¡ 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 ¿É¼ÇÀ» ¼±ÅÃÇϰí Next¸¦ Ŭ¸¯ÇÑ´Ù.
  2. µÎ¹øÂ° ¸¶¹ý»ç â¿¡¼­ Test vectors from file üũ¹Ú½º¸¦ ¼±ÅÃÇÏ°í ±×¸®°í ³ª¼­ Browse ¹öưÀ» »ç¿ëÇÏ¿© ÀÔ·Â ÆÄÇü ÆÄÀϷμ­ Functional Æú´õ¿¡ ÀÖ´Â FUNCTIONAL.AWF¸¦ Á¤ÀÇÇÑ´Ù.

  1. Next¸¦ ´­·¯ ´ÙÀ½À¸·Î ÁøÇàÇÑ´Ù.
  2. À̹ø â¿¡¼­´Â ÀûÇÕÇÑ Çʵå·ÎºÎÅÍ µðÆúÆ® Æú´õ À̸§À» »èÁ¦ÇÑ´Ù.  À̰ÍÀº ¸¶¹ý»ç°¡ root source file Æú´õ·Î »ðÀÔÀ» ½ÃÄѼ­ ±× ÆÄÀÏÀÌ ¸¸µé¾îÁö±â ¶§¹®ÀÌ´Ù.

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

  1. Finish¸¦ Ŭ¸¯ÇÏ¿© Å×½ºÆ® º¥Ä¡ ÀÛ¼ºÀ» ¿Þ·áÇÑ´Ù.  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. ÀÌÁ¦ »ç¿ëÀÚ´Â ÃÖ±Ù¿¡ ÀÛ¼ºµÈ Å×½ºÆ® º¥Ä¡¸¦ »ç¿ëÇØ¼­ Å×½ºÆ® ½Ã¹Ä·¹À̼ÇÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù.  »ç¿ëÀÚ°¡ ÇÊ¿ä·ÎÇÏ´Â ¸ðµç °ÍÀº ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ¸·Î ¸ÅÅ©·Î ¶óº§À» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼­ Execute¸¦ ¼±ÅÃÇϸé COUNTER_TB_RUNTEST.DO ¸ÅÅ©·Î°¡ ½ÇÇàÀ» ÇÑ´Ù.
  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. À§¿¡¼­ ±â¼úÇÑ ÀýÂ÷¸¦ ÇàÇϱâ À§ÇØ, IMPLEMENT¶ó´Â »õ·Î¿î Æú´õ¸¦ ¸¸µç´Ù.

  1. Design ¸Þ´º¿¡¼­ Add Files to Design¸¦ ¼±ÅÃÇÑ´Ù.
  2. Add Files to Design ´ëÈ­»óÀÚ¿¡¼­ Xilinx_counter sample designÀÇ SRC Æú´õ¿¡ À§Ä¡ÇÑ IMPLEMENT Æú´õ¸¦ ¼±ÅÃÇÑ´Ù.
  3. IMPLEMENT Æú´õÀÇ ³»¿ëÀ» º¸±âÀ§ÇØ Files of Type Ç׸ñ¿¡¼­ All files(*.*)¸¦ ¼±ÅÃÇÑ´Ù.
  4. Çö Æú´õÀÇ ¸ðµç ÆÄÀÏÀ» ¼±ÅÃÇÑ´Ù.
  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. ¼³Á¤À» ¹Þ¾ÆµéÀ̱â À§ÇØ OK¸¦ Ŭ¸¯ÇÏ°í ´ëȭâÀ» ´Ý´Â´Ù.
  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 ÆÄÀÏÀ» ¿­¾î¼­ ¾Æ·¡¿¡ º¸ÀÌ´Â ¿¹Ã³·³ ¼öÁ¤ÇÑ´Ù:

Image1689.gif (16639 bytes)

  1. File ¸Þ´ºÀÇ Save¸¦ ¼±ÅÃÇÏ¿© Â÷ÈÄ »ç¿ëÀ» À§ÇØ ¸ÅÅ©·Î¸¦ ÀúÀåÇÑ´Ù.

 

 



Copyleft Chang-woo,YANG