Active-VHDL Tutorial
for Xilinx FPGA Designs ÇÑ±ÛÆÇ... |
Tutorial Contents
º» ±³ÀçÀÇ ¸ñÀûÀº Active-VHDLÀ» °¡Áö°í FPGA¸¦ ¼³°èÇÏ´Â ÀüÇüÀûÀÎ
È帧À» ÅëÇØ¼ »ç¿ëÀÚ¿¡°Ô ¹æÇâÀ» Á¦½ÃÇϱâ À§ÇÔÀÌ´Ù. Àü¹ÝÀûÀÎ ¼ø¼´Â »ç¿ëÀÚ°¡
Â÷·Ê´ë·Î ÁøÇàÇÏ´Â °ÍÀ¸·Î °¡Á¤ÇÏ¿© ¿©·¯°³ÀÇ ´Ü¶ôÀ¸·Î ³í¸®Àû ±¸ºÐÀÌ µÈ´Ù. ¶ÇÇÑ
Synthesis¿Í Implementation ºÎºÐÀÌ ¼³°è °úÁ¤¿¡ Æ÷ÇÔµÊÀ¸·Î½á, »ç¿ëÀÚ´Â ´ÙÀ½¿¡
°¡¼úÇÏ´Â ¿ÜºÎ µµ±¸µéÀÇ ¼³Ä¡°¡ ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù: METAMOR (VHDL ÇÕ¼º±â)¿Í XACTstep M1. (XILINX Design Implementation
Tool) º» ±³Àç´Â Active-VHDL Software³»¿¡ Æ÷ÇÔµÈ Xilinx_counter¶ó´Â Sample
Design¿¡ ±â¹ÝÇϰí ÀÖ´Ù.
¹ÙÅÁȸ鿡 ÀÖ´Â ´ÜÃà¾ÆÀÌÄÜÀ» ´õºíŬ¸¯ÇÏ¿©
Active-VHDLÀ» ½ÃÀÛÇÑ´Ù. Getting Started ´ëÈ »óÀÚ¿¡¼ Create new design Ç׸ñÀ» ¼±ÅÃÇϰí OK¸¦
Ŭ¸¯ÇÑ´Ù.
- New Design Wizard ¶ó´Â Á¦¸ñÀÇ
ù ¹øÂ° ´ëÈ »óÀÚ°¡ ¿¸®°í »õ·Î¿î DesignÀ» À§ÇÑ À̸§°ú ÀÛ¾÷µð·ºÅ丮ÀÇ °æ·Î¸¦
»ç¿ëÀÚ¿¡°Ô ÀÔ·ÂÇϵµ·Ï ¿ä±¸ÇÑ´Ù. Design nameÀº MY_COUNTER¶ó°í ÀÔ·ÂÇϰí
Next¸¦ Ŭ¸¯ÇÑ´Ù.
±×´ÙÀ½ ¸¶¹ý»ç ´ëÈ »óÀÚ¿¡¼, Create new source files now optionÀ»
¼±ÅÃÇϰí Next¸¦ Ŭ¸¯ÇÑ´Ù.
±×´ÙÀ½À¸·Î, NEW¸¦ Ŭ¸¯ÇÏ¿© ¾Æ·¡ ±×¸²¿¡¼ º¸¿©ÁöµíÀÌ VHDL Code source¿¡¼ ¼±¾ðµÇ¾îÁú
COUNTER Entity¸¦ Á¤ÀÇÇÑ´Ù.
- Design Wizard - Ports ´ëÈ
»óÀÚ°¡ ³ªÅ¸³´Ù. Ports
¹öưÀ» Ŭ¸¯ÇÏ¿© COUNTER EntityÀÇ PortµéÀ» Á¤ÀÇÇÑ´Ù.
- New¸¦ Ŭ¸¯ÇÏ¿© Port name
CLK¸¦ ÀÔ·ÂÇϰí Port directionÀº InÀ» ¼±ÅÃÇÑ´Ù. ±×¸®°í TypeÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â Port Type ´ëÈ »óÀÚ¿¡¼ Port typeÀ» STD_LOGICÀ¸·Î ¼±¾ðÇÑ´Ù.
- COUNTER EntityÀÇ ´ÙÀ½ Portµéµµ µ¿ÀÏÇÑ ¼ø¼·Î ÁøÇàÇÑ´Ù:
- RESET: in STD_LOGIC
- Q: out STD_LOGIC_VECTOR (3 downto 0)
New Design Wizard ´ëÈ »óÀÚ·Î µÇµ¹¾Æ°¡±âÀ§ÇØ OK¸¦ Ŭ¸¯Çϰí, Next¸¦
Ŭ¸¯ÇÑ´Ù.
- À§¿¡¼ Á¤ÀÇÇÑ ³»¿ëó·³ µðÀÚÀÎ ¼Ó¼ºÀÌ ¸¶¹ý»çÀÇ ¸¶Áö¸·
´ëÈ »óÀÚ¿¡ Ç¥½Ã°¡ µÇ´ÂÁö¸¦ °Ë»çÇÑ´Ù. ¸¸¾à Error°¡ ÀÖ´Ù¸é, Back ¹öưÀ» Ŭ¸¯ÇÏ¿© ÇØ´ç ´ëÈ »óÀÚ·Î
µÇµ¹¾Æ°¡¼ Data¸¦ UpdateÇÑ´Ù.
- ÇöÀç ¼³Á¤°ªÀ» °¡Áø DesignÀ» »ý¼ºÇϱâ À§ÇØ Finish¸¦ Ŭ¸¯ÇÑ´Ù.
- Design BrowserÀÇ Files Åǻ󿡼 ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼
New Folder¸¦ ¼±ÅÃÇÑ´Ù.
»õ·Î¿î Folder¸íÀ¸·Î FUNCTIONALÀ» ÀÔ·ÂÇÑ´Ù.
- ²ø¾î´Ù³õ±â(drag and drop) ±â´ÉÀ» »ç¿ëÇÏ¿©, COUNTER.VHD
source ÆÄÀÏÀ» »õ Æú´õ·Î À̵¿ÇÑ´Ù.
- COUNTER.VHD¸¦ ´õºíŬ¸¯ÇÏ¿© HDL Editor¿¡¼ ÆÄÀÏÀ» ¿¬´Ù.
- Architecture block³»ÀÇ Begin¹®µÚ¿¡ Ä¿¼¸¦ À§Ä¡½ÃŲ´Ù. View Language Assistant ¹öư(
)À» Ŭ¸¯ÇÑ´Ù.
- Language Assistantâ¿¡¼
Tutorial ÅÛÇø®Æ® ±×·ì¿¡
ÀÖ´Â Counter ÅÛÇø®Æ®¸¦
¼±ÅÃÇÑ´Ù. COUNTER.VHD ÆÄÀÏ¿¡ Counter ÅÛÇø®Æ®¸¦ ºÙ¿©³Ö±â À§ÇØ ´ÜÃà¸Þ´º¿¡¼ Use¸¦ ¼±ÅÃÇÑ´Ù.
COUNTER.VHD ÆÄÀÏÀÇ entity ¼±¾ð¹® ¹Ù·Î¾Õ¿¡ Ä¿¼¸¦ À§Ä¡½ÃŲ´Ù. Language
ÅÛÇø®Æ® ±×·ì³»ÀÇ linrary
packages ÅÛÇø®Æ®¿¡ ÀÖ´Â SYNOPSYS ÅÛÇø®Æ®¸¦ ¼±ÅÃÇÑÈÄ
´ÜÃà¸Þ´ºÀÇ Use¸¦ ½ÇÇàÇÑ´Ù.
SYNOPSYS ¶óÀ̺귯¸®¿Í
packages ¼±¾ðºÎ´Â METAMOR·Î º» µðÀÚÀÎÀ» ÇÕ¼ºÇϱâÀ§Çؼ ÇÊ¿äÇÏ´Ù.
Language Assistant âÀ» ´Ý´Â´Ù.
- Compile All Åø¹Ù ¹öư(
)À» Ŭ¸¯ÇÏ¿© Çö µðÀÚÀÎÀ» ÄÄÆÄÀÏÇÑ´Ù.
- ¼º°øÀûÀ¸·Î ÄÄÆÄÀÏÀÌ µÇ¾ú´Ù´Â ¸Þ½ÃÁö°¡ ³ª¿Ã ¶§±îÁö ±â´Ù¸°ÈÄ,
Simulation ¸Þ´ºÀÇ Initialize Simulation ¸í·ÉÀ» ¼±ÅÃÇÑ´Ù.
Design Settings
´ëÈ »óÀÚ°¡ ³ªÅ¸³ª¸é, top-level entity¸¦ COUNTER·Î ¼±ÅÃÇÑ´Ù. OK¸¦ Ŭ¸¯ÇÑ´Ù.
- New Waveform button
À» Ŭ¸¯ÇÏ¸é »õ·Î¿î waveform À©µµ¿ì°¡
¿¸±°ÍÀÌ´Ù.
- µðÀÚÀÎ ºê¶ó¿ìÀúÀÇ Structure ÅÇÀ¸·ÎºÎÅÍ Root ±¸¼º ¿ä¼Ò¸¦
²ø°í ±×¸®°í waveform À©µµ¿ìÀÇ ¿ÞÂÊ ÆäÀÎÀ¸·Î ±×°ÍÀ» µå·ÓÇÏ¿© ÆÄÇü À©µµ¿ì¿¡
Root ±¸¼º ¿ä¼ÒÀÇ ¸ðµÎ ½ÅÈ£µéÀ» ´õÇÏ¿© ÁØ´Ù.
- ÆÄÇü À©µµ¿ì¿¡¼ CLK ½ÅÈ£¸¦ ¼±ÅÃÇÏ¿© ÁØ´Ù. ±×¸®°í
±× ´ÙÀ½¿¡ ´ÜÃà ¸Þ´º·ÎºÎÅÍ Stimulators¸¦ ¼±ÅÃÇÏ¿© ÁØ´Ù. À̰ÍÀº Stimulators
´ÙÀ̾ó·Î±×¸¦ ³ªÅ¸³¾ °ÍÀÌ´Ù.
- 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¸¦ Ŭ¸¯ÇÑ´Ù.
- Close¸¦ Ŭ¸¯ÇÏ¿© Stimulator ´ëÈ »óÀÚ¸¦ ´Ý´Â´Ù.
- RESET ½ÅÈ£¿¡ ´ëÇÏ¿© 5¹ø ´Ü°è¸¦ ¹Ýº¹ÇÑ´Ù. Stimulator type ¹Ú½º¿¡¼ Hotkey¸¦
¼±ÅÃÇϰí Press new hotkey
¹Ú½º¿¡ 'A'¸¦ ÀÔ·ÂÇÑ´Ù. ´ÙÀ½À¸·Î, Apply ¹öưÀ» Ŭ¸¯ÇÏ°í ´ëÈ »óÀÚ¸¦ ´Ý´Â´Ù.
- wavefor â¿¡¼ RESETÀ» ¼±ÅÃÇϰí, "A"¸¦ ´·¯¼
RESET ÃʱⰪÀ¸·Î "1"À» ¼³Á¤ÇÑÈÄ, Time
To Run ¹Ú½º
¿¡ ½Ã¹°·¹ÀÌ¼Ç ½ºÅÜÀ»
100ns·Î ¼³Á¤ÇÑ´Ù.
- ƯÁ¤ÇÑ ½Ã°£±îÁö ½Ã¹°·¹À̼ÇÀ» ÀüÁø½Ã۱â À§ÇÏ¿© Åø¹Ù¹öư
»óÀÇ
¸¦
Ŭ¸¯ÇÑ´Ù.
- RESET °ªÀ» "0"À¸·Î Çϰí, ½Ã¹°·¹ÀÌ¼Ç ½ºÅÜÀ»
2000ns·Î ¼³Á¤ÇÑ´Ù. ´Ù½ÃÇѹø Åø¹Ù¹öư »óÀÇ Run
For¸¦ Ŭ¸¯ÇÑ´Ù.
- RESET °ªÀ» "1"·Î Çϰí Console â¿¡´Ù°¡ run 100ns¸¦
±âÀÔÇϰí Enter۸¦ ´©¸¥´Ù.
- RESET °ªÀ» "0"À¸·Î Çϰí Çѹø´õ Run For ¹öưÀ» Ŭ¸¯ÇÑ´Ù.
- Simulation ¸Þ´º¿¡¼ End simulationÀ» ¼±ÅÃÇÑ´Ù.
- ½Ã¹°·¹ÀÌ¼Ç °á°ú´Â À§ÀÇ ±×¸²Ã³·³ º¸¿©Áú °ÍÀÌ´Ù. ÆÄÇü
À©µµ¿ìÀÇ ½Ã°£Ç¥Çö ±¸°£À» Á¶Á¤ÇÏ·Á¸é È®´ë±â´ÉÀ» »ç¿ëÇÒ°Í.
- ÆÄÇü À©µµ¿ì¸¦ ´Ý´Â´Ù. Function Æú´õ¿¡ FUNCTIONAL.AWF¶ó´Â
À̸§À¸·Î ÆÄÇüÀ» ÀúÀåÇÑ´Ù. Design BrowserÀÇ Resource ÅÇÀ¸·Î À̵¿ÇÏ¿© »ç¿ëÀÚ°¡ ÀúÀåÇÑ ÆÄÇüÀÌ WAVEFORMS ±×·ì¿¡ Á¸ÀçÇÏ´ÂÁö
È®ÀÎÇÑ´Ù.

- Design Browser â¿¡¼ Files ÅÇÀ¸·Î À̵¿ÇÑ´Ù.
- °èÃþÆ®¸®³»ÀÇ COUNTER.VHD ÆÄÀÏ¿¡¼ COUNTER ¿£Æ¼Æ¼¸¦ ¼±ÅÃÇÑ´Ù.
- ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ¿© ´ÜÃà¸Þ´º¿¡ ÀÖ´Â Generate Test Bench¸í·ÉÀ» ¼±ÅÃÇÑ´Ù.
- Test Bench Generator Wizard´Â
test bench¸¦ ¸¸µå´Â °úÁ¤À» ÅëÇØ »ç¿ëÀÚ¸¦ µµ¿ÍÁÙ ÀÏ·ÃÀÇ Ã¢µéÀ» Ç¥½ÃÇÑ °ÍÀÌ´Ù.
- ù¹øÂ° â¿¡¼ Single Process ¿É¼ÇÀ» ¼±ÅÃÇϰí Next¸¦ Ŭ¸¯ÇÑ´Ù.
- µÎ¹øÂ° ¸¶¹ý»ç â¿¡¼ Test vectors
from file üũ¹Ú½º¸¦ ¼±ÅÃÇÏ°í ±×¸®°í ³ª¼ Browse ¹öưÀ» »ç¿ëÇÏ¿© ÀÔ·Â ÆÄÇü
ÆÄÀϷμ Functional Æú´õ¿¡ ÀÖ´Â FUNCTIONAL.AWF¸¦ Á¤ÀÇÇÑ´Ù.
- Next¸¦ ´·¯ ´ÙÀ½À¸·Î ÁøÇàÇÑ´Ù.
- À̹ø â¿¡¼´Â ÀûÇÕÇÑ Çʵå·ÎºÎÅÍ µðÆúÆ® Æú´õ À̸§À» »èÁ¦ÇÑ´Ù.
À̰ÍÀº ¸¶¹ý»ç°¡ root source file Æú´õ·Î »ðÀÔÀ» ½ÃÄѼ ±× ÆÄÀÏÀÌ ¸¸µé¾îÁö±â
¶§¹®ÀÌ´Ù.
- ±× ´ÙÀ½À¸·Î ÇöÀç ³ªÅ¸³ª´Â Å×½ºÆ® º¥Ä¡ »ç¾çÀ» ¹Þ¾ÆµéÀ̱â
À§ÇØ Next¸¦ Ŭ¸¯ÇÑ´Ù.
- ¸¶¹ý»ç¿¡ ÀÇÇØ Ç¥½ÃµÇ´Â ¸¶Áö¸· â¿¡¼ µðÀÚÀÎÀÇ Å¸À̹Ö
½Ã¹Ä·¹À̼ÇÀ» °¡´ÉÇÏ°Ô ÇϱâÀ§ÇØ Generate üũ¹Ú½º¸¦ ¼±ÅÃÇÑ´Ù.
- Finish¸¦ Ŭ¸¯ÇÏ¿© Å×½ºÆ®
º¥Ä¡ ÀÛ¼ºÀ» ¿Þ·áÇÑ´Ù. Test Bench Generator
Wizard´Â ´ÙÀ½ÀÇ ¼¼ÆÄÀÏÀ» ÀÛ¼ºÇÒ °ÍÀÌ´Ù:
- COUNTER_TB.VHD
- COUNTER_TB_TIM_CFG.VHD
- COUNTER_TB_RUNTEST.DO
- Design BrowserÀÇ Files ÅÇ¿¡¼ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ°í ´ÜÃà¸Þ´º¿¡ ÀÖ´Â New Folder¸¦ ¼±ÅÃÇÑ´Ù. Æú´õ¸íÀ»
TIMING¶ó°í ÀÔ·ÂÇÑ´Ù. SIMULATE Æú´õµµ °°Àº ¹æ¹ýÀ¸·Î »ý¼º½ÃŲ´Ù.
- µå·¹±× & µå·Ó±â´ÉÀ» »ç¿ëÇØ¼ TIMING Æú´õ·Î COUNTER_TB_TIM_CFG.VHD
ÆÄÀÏÀ» À̵¿Çϰí SIMULATE Æú´õ·Î COUNTER_TB_RUNTEST.DO ÆÄÀÏÀ» À̵¿ÇÑ´Ù.
- ÀÌÁ¦ »ç¿ëÀÚ´Â ÃÖ±Ù¿¡ ÀÛ¼ºµÈ Å×½ºÆ® º¥Ä¡¸¦ »ç¿ëÇØ¼ Å×½ºÆ®
½Ã¹Ä·¹À̼ÇÀ» ½ÇÇàÇÒ ¼ö ÀÖ´Ù. »ç¿ëÀÚ°¡ ÇÊ¿ä·ÎÇÏ´Â ¸ðµç °ÍÀº ¿À¸¥ÂÊ
¸¶¿ì½º ¹öưÀ¸·Î ¸ÅÅ©·Î ¶óº§À» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼ Execute¸¦ ¼±ÅÃÇϸé COUNTER_TB_RUNTEST.DO
¸ÅÅ©·Î°¡ ½ÇÇàÀ» ÇÑ´Ù.
- °á°ú¸¦ ±â´Ù¸®°í Simulation ¸Þ´º¿¡¼ End Simulation ¿É¼ÇÀ» ±× ´ÙÀ½¿¡ ¼±ÅÃÇÑ´Ù.
±â´É ½Ã¹°·¹À̼ÇÀ» ¼öÇàÇÏ¿© ¼³°èÀÇ Ãʱ⠰ËÁõÈÄ, »ç¿ëÀÚ´Â µðÀÚÀÎÀ»
ÇÕ¼ºÇϰí, ½ÇÁ¦ ±¸ÇöÀ» À§ÇÑ 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¸¦ »ý¼ºÇÒ °ÍÀÌ´Ù.
- À§¿¡¼ ±â¼úÇÑ ÀýÂ÷¸¦ ÇàÇϱâ À§ÇØ, IMPLEMENT¶ó´Â »õ·Î¿î
Æú´õ¸¦ ¸¸µç´Ù.
- Design ¸Þ´º¿¡¼ Add Files to Design¸¦ ¼±ÅÃÇÑ´Ù.
- Add Files to Design ´ëÈ»óÀÚ¿¡¼
Xilinx_counter sample
designÀÇ SRC Æú´õ¿¡ À§Ä¡ÇÑ IMPLEMENT Æú´õ¸¦ ¼±ÅÃÇÑ´Ù.
- IMPLEMENT Æú´õÀÇ ³»¿ëÀ» º¸±âÀ§ÇØ Files
of Type Ç׸ñ¿¡¼ All
files(*.*)¸¦ ¼±ÅÃÇÑ´Ù.
- Çö Æú´õÀÇ ¸ðµç ÆÄÀÏÀ» ¼±ÅÃÇÑ´Ù.
- Make local copy¸¦ ¼±ÅÃÇϰí,
±×¸®°í ³ª¼ ¼±ÅÃÇÑ ÆÄÀϵéÀÇ º¹»çº»À» ¸¸µé°í »ç¿ëÀÚÀÇ µðÀÚÀο¡ À̵éÀ» Ãß°¡ÇϱâÀ§ÇØ
Add¸¦ Ŭ¸¯ÇÑ´Ù.
- Drag-and-drop ±â´ÉÀ» »ç¿ëÇÏ¿©, IMPLEMENT Æú´õ·Î ÆÄÀϵéÀ»
À̵¿ÇÑ´Ù.
- ¸ÅÅ©·ÎÀÇ ³»¿ëÀ» º¸·Á¸é Design Browser³»¿¡¼ IMPLEMENT.DO
ÆÄÀÏÀ» ´õºíŬ¸¯ÇÑ´Ù.
- ÀÌ ¸ÅÅ©·Î´Â Àϰý󸮸ðµå·Î 2°³ÀÇ ¿ÜºÎ ÇÁ·Î¼¼½º¸¦ ¼öÇàÇÑ´Ù:
- COUNTER.PAR¶ó´Â parameter ÆÄÀÏ¿¡¼ Á¦°øµÇ´Â parameter¸¦
°¡Áö°í METAMOR ÇÕ¼ºÅø ¼öÇà.
- ROUTE.BAT ÆÄÀÏ¿¡ ÀÇÇØ¼ XACTStep
M1 Place and Route ´Ü°è¸¦ ½ÇÇà.
- Design Browser³»ÀÇ IMPLEMENT Æú´õ¿¡ ÀÖ´Â IMPLEMENT.DO
ÆÄÀÏÀ» ¼±ÅÃÇÑ´Ù. ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ¿© ³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼
Execute¸¦ ¼±ÅÃÇÑ´Ù. ROUTE.BAT´Â
Place and Route ÇÁ·Î¼¼½º¸¦ ó¸®ÇÏ´Â ÀÏ·ÃÀÇ °úÁ¤À» ¼öÇàÇÑ´Ù. ÀÌ ½ÇÇà
°úÁ¤Àº MS-DOS Prompt â¿¡ Ç¥½Ã°¡ µË´Ï´Ù. ROUTE.BAT°¡ ³¡³¯ ¶§±îÁö ±â´Ù·È´Ù°¡
MS-DOS Prompt âÀ» ´Ý´Â´Ù.
- Design Browser âÀÇ Resource ÅÇÀ¸·Î À̵¿ÇÑ´Ù. »ç¿ëÀÚ´Â
ÇÕ¼º ¹× ±¸ÇöÅø¿¡ ÀÇÇØ¼ ¸¸µé¾îÁø Log ÆÄÀϵéÀ» º¼ ¼ö ÀÖ´Ù: SYNTHESIS.LOG
and IMPLEMENT.LOG.
Place and Route process´Â µÎ °³ÀÇ ÆÄÀÏÀ» TIMING Æú´õ¿¡ »ý¼º½ÃŲ´Ù:
COUNTER_TIM.VHD¿Í COUNTER_TIM.SDF.
- TIMING Æú´õ¸¦ ¼±ÅÃÇÏ°í ¸¶¿ì½º ¿À¸¥ÂÊ ¹öưÀ» Ŭ¸¯ÇÑ´Ù.
±×¸®°í ³ª¼ ´ÜÃà¸Þ´ºÁß¿¡¼ Add Files to Folder¸¦ ¼±ÅÃÇÑ´Ù. Add Files to Folderâ¿¡¼ Çö µðÀÚÀÎÀÇ SRC Æú´õ¿¡ À§Ä¡ÇÑ TIMING Æú´õ¸¦ ¼±ÅÃÇϰí, COUNTER_TIM.VHD¿Í
COUNTER_TIM.SDF¸¦ ¼±ÅÃÇϰí Add¸¦
Ŭ¸¯ÇÑ´Ù.
- ŸÀÌ¹Ö ½Ã¹°·¹À̼ÇÀ» °¡´ÉÄÉ ÇϱâÀ§Çؼ´Â, »ç¿ëÀÚ°¡ (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ÀÌ´Ù,
ÀÌ ¸ðµç º¯È¯À» ³¡¸¶Ä¡¸é, ÆÄÀÏÀ» ÀúÀåÇÏ°í ´Ý´Â´Ù.
- COUNTER_TIM.VHD ÆÄÀÏÀÌ À§¿¡¼ º¸¿©Áø TIMING Æú´õÀÇ ¸®½ºÆ®¿¡¼
Counter_TB_tim_cfg.VHD ÆÄÀϺ¸´Ù ¸ÕÀú ÇàÇØÁöµµ·Ï È®½ÇÈ÷ ÇÏ¿©ÁØ´Ù.
- Design BrowserÀÇ Files ÅÇ¿¡¼ TIMING Æú´õ¸¦ ¼±ÅÃÇÑ´Ù. ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ¿©
³ªÅ¸³ª´Â ´ÜÃà¸Þ´º¿¡¼ Compile All in Folder ¸í·ÉÀ» ¼±ÅÃÇÑ´Ù.
- Design ¸Þ´º¿¡¼ SettingÀ» ¼±ÅÃÇÑ´Ù.
- Top-level Selection ÅÇÀ¸·Î À̵¿ÇÏ¿© TIMING_FOR_COUNTER
configurationÀ» ¼±ÅÃÇÑ´Ù.
- SDF ÅÇÀ¸·Î ÀüȯÇÏ¿© ÆÄÀÏÀ̸§
¾Æ·¡ÀÇ ºó¶óÀÎÀ» ´õºíŬ¸¯ÇÑ´Ù. ¸¸¾à ºó¶óÀÎÀÌ »ç¿ë°¡´ÉÇÏÁö ¾Ê´Ù¸é, ÆÄÀϸíÀÌ
ÀûÇôÀÖ´Â ¶óÀÎ À§¿¡¼ ¿À¸¥ÂÊ ¸¶¿ì½º ¹öưÀ» Ŭ¸¯ÇÏ°í ´ÜÃà¸Þ´º¿¡¼ Add RegionÀ» ¼±ÅÃÇÑ´Ù. ±×¸®°í
³ª¼ Design Region ¿µ¿ª¿¡ /UUT¸¦
ÀÔ·ÂÇÑ´Ù. Value Ä÷³À§¸¦ Ŭ¸¯ÇÏ°í ·ÎµåµÉ ŸÀÌ¹Ö °ªÀÇ ¼³Á¤À» Minimal·Î Drop-down ¸Þ´º¿¡¼ ¼±ÅÃÇÑ´Ù.
´ÙÀ½À¸·Î Load Ä÷³À§¸¦
Ŭ¸¯Çϰí ÁöÁ¤µÈ ¿µ¿ªÀ¸·Î SDF dataÀÇ ·ÎµùÀ» °¡´ÉÇÏ°Ô ÇϱâÀ§ÇØ Drop-down ¸Þ´º¿¡¼
Yes¸¦ ¼±ÅÃÇÑ´Ù.
- ¼³Á¤À» ¹Þ¾ÆµéÀ̱â À§ÇØ OK¸¦ Ŭ¸¯ÇÏ°í ´ëÈâÀ» ´Ý´Â´Ù.
- Simulation ¸Þ´º¿¡¼ Initialize Simulation¸¦ ¼±ÅÃÇÑ´Ù.
- »õ·Î¿î ÆÄÇü À©µµ¿ì¸¦ »ý¼ºÇϱâÀ§ÇØ New
Waveform ¹öưÀ» Ŭ¸¯ÇÑ´Ù.
- Design Browser âÀÇ Structure ÅÇÀÇ Root Component·ÎºÎÅÍ
½ÅÈ£µéÀ» Ãß°¡ÇÑ´Ù.
- Run ¹öưÀ» Ŭ¸¯ÇÏ°í ½Ã¹°·¹À̼Ç
°á°ú¸¦ ÁöÄѺ»´Ù.
- Simulation ¸Þ´º¿¡¼ End SimulationÀ» ¼±ÅÃÇÑ´Ù.
¼³°èÀÇ ¸¶Áö¸· ´Ü°è´Â µðÀÚÀÎÀÇ Å¸ÀÌ¹Ö ½Ã¹°·¹À̼ÇÀ» ½ÇÇàÇÒ ¸ÅÅ©·Î¸¦
»ý¼ºÇÏ´Â °ÍÀÌ´Ù.
- SIMULATE Æú´õ¿¡¼ COUNTER_TB_RUNTEST.DO¸¦ ¼±ÅÃÇÏ°í ±×¸®°í
³ª¼ ´ÜÃà¸Þ´º¿¡¼ OpenÀ»
¼±ÅÃÇÑ´Ù.
- RUN_TIMING.DO·Î ÆÄÀÏÀ» ÀúÀåÇϱâÀ§ÇØ File ¸Þ´º¿¡¼ Save As¸¦
¼±ÅÃÇÑ´Ù. ´ÜÃà¸Þ´º»óÀÇ Add Files to Folder¸¦ ¼±ÅÃÇÏ¿© SIMULATE Æú´õ·Î ÆÄÀÏÀ» Ãß°¡ÇÑ´Ù.
- RUN_TIMING.DO ÆÄÀÏÀ» ¿¾î¼ ¾Æ·¡¿¡ º¸ÀÌ´Â ¿¹Ã³·³ ¼öÁ¤ÇÑ´Ù:
- File ¸Þ´ºÀÇ Save¸¦ ¼±ÅÃÇÏ¿© Â÷ÈÄ »ç¿ëÀ» À§ÇØ ¸ÅÅ©·Î¸¦
ÀúÀåÇÑ´Ù.
Copyleft Chang-woo,YANG