Verilog HDL
2007/05/31 14:42
http://blog.naver.com/PostPrint.nhn?blogId=babojay&logNo=40038195998#
1.1 CADÀÇ ÁøÈ - Evolution of Computer Aided Digital
Design
Áö³ ¼ö ½Ê³â°£ µðÁöÅРȸ·Î ¼³°è´Â ºü¸£°Ô ÁøÈÇØ¿Ô´Ù. ÃʱâÀÇ µðÁöÅРȸ·Î´Â Áø°ø°ü°ú Æ®·£Áö½ºÅÍ·Î ¼³°èÇß´Ù.
ÇϳªÀÇ Ä¨À§¿¡ ³í¸®È¸·Î¸¦ ÁýÀûÇÑ ÁýÀûȸ·Î(IC-Integrated Circuit)°¡ ±× µÚ¸¦ À̾ú´Ù. ±â¼úÀÇ ¹ßÀüÀ¸·Î ³í¸®È¸·Î(Gate)ÀÇ ¼ö°¡
¾ÆÁÖ Àû¾ú´ø SSI(Small Scale Integration)·ÎºÎÅÍ MSS(Medium Scale Integration), ĨÀ§¿¡ ¼öõ°³ÀÇ
Gate¸¦ ÁýÀûÇؾßÇÏ´Â LSI(Large Scale Integration)±îÁö ÃâÇöÇÏ°Ô µÇ¾ú´Ù. ÀÌ ½ÃÁ¡¿¡¼ CAD(Computer Aided
Design)±â¼úÀÌ ÇÊ¿äÇÏ°Ô µÇ¸ç ¹ßÀüÀ» ½ÃÀÛÇÑ´Ù. Ĩ ¼³°èÀÚµéÀº ´ë·« 100¿©°³ÀÇ Æ®·£Áö½ºÅÍ·Î ÀÌ·ç¾îÁø ºí·°µéÀÇ ±â´ÉÀûÀÎ °ËÁõÀ» Çϱâ À§ÇØ
³í¸® ½Ã¹Ä·¹ÀÌ¼Ç ±â¼úÀ» ÀÌ¿ëÇϱ⠽ÃÀÛÇÑ´Ù. ȸ·Î´Â ¿©ÀüÈ÷ Breadboard(ÀÏ¸í »§ÆÇ)¿¡¼ ½ÃÇèÇÏ°í, ·¹À̾ƿô(Layout)Àº Á¾ÀÌ¿¡ ±×¸®°Å³ª
ÄÄÇ»Å͸¦ ÀÌ¿ëÇÑ´Ù ÇÏ´õ¶ó°í ¼ÕÀ¸·Î Á÷Á¢ ±×·È´Ù.
VLSI(Very Large Scale Integration)±â¼ú·Î ¹ßÀüÇÏ¸é¼ ´ÜÀÏ Ä¨À§¿¡
100,000°³ÀÇ Æ®·£Áö½ºÅ͸¦ ¿Ã¸± ¼ö ÀÖ°Ô µÇ¾ú´Ù. ȸ·Î°¡ º¹ÀâÇØÁü¿¡ µû¶ó ´õÀÌ»ó BreadboardÀ§¿¡´Ù ½ÃÇèÀ» ÇÒ ¼ö ¾ø°Ô µÇ¾ú´Ù.
ÄÄÇ»Å͸¦ ÀÌ¿ëÇÑ ±â¼úÀº VLSIÀÇ °ËÁõ¿¡ ÀÖ¾î¼ Çʼö°¡ µÇ¾úÀ¸¸ç, P&R(Place & Routing)µµ ÄÄÇ»ÅÍÀÀ ÀÌ¿ëÇÏ¿©
ÀÚµ¿ÈµÇ¾ú´Ù. ¼³°èÀÚµéÀº ³í¸®°ÔÀÌÆ® ¼öÁØ¿¡¼ ÀÛÀº ºí·°´ÜÀ§·Î ¼³°èÇÏ°í ÀÌ ºí·°µéÀ» ÀÌ¿ëÇØ ÃÖ»óÀ§ ºí·°±îÁö ¼³°èÇß´Ù. ³í¸® ½Ã¹Ä·¹ÀÌÅÍ°¡ Ĩ¿¡
½ÇÁ¦·Î Á¦À۵ǾîÁö±â Àü¿¡ ±â´É°ËÁõÀ» À§ÇØ µµÀԵǾú´Ù.
ȸ·Î°¡ Ä¿Áö°í ´õ¿í º¹ÀâÇØÁü¿¡ µû¶ó ³í¸® ½Ã¹Ä·¹À̼ÇÀº ¼³°è°øÁ¤¿¡¼ ¸Å¿ì Áß¿äÇÑ À§Ä¡¸¦
Â÷ÁöÇÏ¿´´Ù.
1.2 HDLÀÇ ÃâÇö - Emergence of HDLs
Fortran, Pascal, C¿Í °°Àº
ÇÁ·Î±×·¡¹Ö¾ð¾îµéÀº ¿À·§µ¿¾È ¼±ÃµÀûÀ¸·Î ¼øÂ÷ÀûÀ¸·Î µ¿ÀÛÇÏ´Â ÄÄÇ»ÅÍ ÇÁ·Î±×·¥À» ±â¼úÇϴµ¥ »ç¿ëµÇ¾ú´Ù. ÀÌ¿Í ºñ½ÁÇÏ°Ô µðÁöÅРȸ·Î ¼³°èÀÚµéÀº
µðÁöÅÐȸ·Î¸¦ ±â¼úÇÒ ¼ö Àִ ǥÁØÈµÈ ¾ð¾îÀÇ Çʿ伺À» ´À²¸¿Ô´Ù. ±×·¡¼ ¸¸µé¾îÁø°ÍÀÌ HDL(Hardware Description
Language)ÀÌ´Ù. HDLÀº Çϵå¿þ¾îÀÇ Æ¯¼º¿¡ ¸Â´Â µ¿½Ã¹ß»ýÀÇ °úÁ¤À» ±â¼úÇÒ ¼ö ÀÖ¾ú´Ù. ±× Áß À¯¸íÇÑ°ÍÀÌ Verilog HDL°ú
VHDLÀÌ´Ù. Verilog HDLÀº 1983³â Gateway Design Automation¿¡¼ ½ÃÀ۵Ǿú´Ù. VHDLÀº
DARPA(¹Ì±¹¹æÀ§°íµî¿¬±¸°èȹ±¹)ÀÇ Áö¿øÀ¸·Î °³¹ßµÇ¾ú´Ù.
HDLÀÌ ³í¸® °ËÁõ¿¡ ¸¹ÀÌ »ç¿ëµÇ±ä ÇßÁö¸¸ HDL·Î ¸¸µé¾îÁø ¼³°è´Â ³í¸®°ÔÀÌÆ®·Î
Ç¥ÇöµÇ´Â ȸ·Îµµ·Î ¹Ù²Ù´Â ÀÏÀº ÀÚµ¿À¸·Î ÀÌ·ç¾îÁöÁö ¸øÇß´Ù. 1080³â´ë ³í¸® ÇÕ¼º(Logic Synthesis)ÀÇ ÃâÇöÀ¸·Î ¼³°è¹æ¹ý¿¡¼ ºñ¾àÀûÀÎ
¹ßÀüÀÌ ÀÌ·ç¾îÁ³´Ù. µðÁöÅРȸ·Î´Â RTL(Register Transfer Level)¼öÁØ¿¡¼ ¼³°èÇÏ´Â °ÍÀÌ °¡´ÉÇØÁ³´Ù. ¼³°èÀÚ´Â ·¹Áö½ºÅÍ°£
µ¥ÀÌÅÍ È帧°ú 󸮰úÁ¤À» Á¤ÇØÁÖ°í, ³í¸® ÇÕ¼º Åø(Logic Synthesis tool)·Î ³í¸®°ÔÀÌÆ®µé°£ÀÇ ¿¬°áÀ» ÀÚµ¿À¸·Î ¸¸µé¾îÁÖ°Ô
µÇ¾ú´Ù.
À̷νá HDLÀº µðÁöÅРȸ·Î ¼³°è¿¡¼ ´ëÇ¥ÀûÀÎ ¿ªÇÒÀ» ÇÏ°Ô µÇ¾ú´Ù. ¼³°èÀÚ´Â ´õÀÌ»ó °ÔÀÌÆ®¸¦ ¹èÄ¡ÇÏ°í ¿¬°áÇÏ°í ȸ·Î¸¦ ±×¸®Áö
¾Ê¾Æµµ µÇ¾ú´Ù. HDLÀ» »ç¿ëÇÔÀ¸·Î½á ±â´É°ú µ¥ÀÌÅÍÈ帧À» Ãß»óÀûÀ¸·Î ±â¼úÇÏ¿© º¹ÀâÇÑ ¼³°èµµ °¡´ÉÇÏ°Ô µÇ¾ú´Ù.
1.3 ¼³°è °úÁ¤ - Typical Design Flow
ÀüÇüÀûÀÎ ¼³°è °úÁ¤Àº ±×¸² 1-1°ú
°°´Ù.
<±×¸² 1-1 Typical Design Flow>
¿ì¼± ¼³°èÀÇ ½ºÆåÀ» Á¤ÇÑ´Ù. ½ºÆåÀº Ãß»óÀûÀÎ ±â´É°ú ÀÎÅÍÆäÀ̽º Àü¹ÝÀûÀÎ ±¸Á¶µîÀ» ±â¼úÇÑ´Ù. µ¿ÀÛ±â¼úÀº ±â´É, ¼º´É, Ç¥ÁØ°úÀÇ È£È¯¼º°ú ´Ù¸¥
³ôÀº ¼öÁØÀÇ À̽´µéÀ» ´Ù·ç¸ç HDL·Î ±â¼úÇÒ ¼ö ÀÖ´Ù.
µ¿ÀÛ±â¼úÀº RTL±â¼ú·Î ¹Ù²Ù¾îÁø´Ù. ¼³°èÀÚ´Â ±¸ÇöÇÏ°íÀÚ ÇÏ´Â µðÁöÅÐȸ·ÎÀÇ
µ¥ÀÌÅÍÈ帧À» ±â¼úÇØ¾ß ÇÑ´Ù. ÀÌ ÀÌÈĺÎÅÍ´Â CADÅøÀÇ µµ¿òÀ¸·Î ¼³°è°¡ ÁøÇàµÈ´Ù.
³í¸®ÇÕ¼º(Logic Synthesis)ÅøÀº RTL±â¼úÀ»
°ÔÀÌÆ® ¼öÁØ(Gate Level)ÀÇ Netlist(°ÔÀÌÆ®µé°£ÀÇ ¿¬°á Á¤º¸¿Í »óÈ£½ÅÈ£ÀÇ Á¤Àǵé)·Î ¹Ù²Ù¾îÁØ´Ù. °ÔÀÌÆ®¼öÁØ Netlist´Â ÀÚµ¿
P&R(Place & Routing)Åø·Î ·¹À̾ƿô(Layout-ĨÀ§¿¡ ¸¸µé¾îÁú ¿©·¯ÃþÀÇ ¹ÝµµÃ¼¿Í µµÃ¼, Àý¿¬Ã¼ÀÇ ¹°¸®Àû, ±âÇÏÇÐÀû
¸ð¾çµé)À» ¸¸µå´Âµ¥ »ç¿ëµÈ´Ù. ·¹À̾ƿôÀº °ËÁõÀýÂ÷¸¦ °ÅÃÄ Ä¨¿¡ Á¦ÀÛ(Fabrication-½Ç¸®ÄÜ¿þÀÌÆÛ¿¡ µµÇΰú ÀûÃþ°ú ½Ä°¢µîÀ» ÅëÇØ ±¸ÇöÇÏ´Â
°úÁ¤)µÈ´Ù.
ÀÌ·¸°Ô ¼³°èÀÇ ´ëºÎºÐÀÌ RTL±â¼úÀ» ÃÖÀûÈ ÇÏ´Â °Í¿¡ ÁýÁߵȴÙ. ÃÖÀûÈ°¡ ¿Ï·áµÇ¸é CADÅøÀ» ÀÌ¿ëÇÏ¿© ±×´ÙÀ½ ÀÛ¾÷À» ÁøÇàÇÒ ¼ö
ÀÖ°Ô µÈ´Ù. RTL¼öÁØ¿¡¼ ¼³°èÇÔÀ¸·Î½á ±Ø´ÜÀûÀ¸·Î´Â ¼ö ³âÀÇ °³¹ß±â°£À» ¼ö°³¿ù·Î ÁÙÀÌ´Â °ÍÀÌ °¡´ÉÇØÁø´Ù.
Behavioral ÇÕ¼ºÅøÀº
±Ù·¡¿¡ µé¾î ÃâÇöÇϱ⠽ÃÀÛÇß´Ù. µ¿ÀÛÀ̳ª ¾Ë°í¸®ÁòÀ» ±â¼úÇÑ°Í¿¡¼ RTL±â¼úÀ» ²ø¾î³¾ ¼ö ÀÖ´Ù. ÀÌ·± ±â¼úµéÀÌ ¹ßÀüÇÏ¸é¼ °í¼öÁØ ÄÄÇ»ÅÍ
ÇÁ·Î±×·¡¹Ö°ú À¯»çÇØÁö°í ÀÖ´Ù.
ÇÏÁö¸¸ ¾Æ¹«¸® ÅøµéÀÌ ¹ßÀüÇÏ°í ¼³°èÀÚ°¡ ÇÒ ÀÏÀÌ ÁÙ¾îµç´Ù°í´Â ÇÏÁö¸¸ °á±¹ ±× ÅøµéÀ» ´Ù·ç°í ¼³°èÀÇ ¼º´ÉÀ»
²ø¾î¿Ã¸®´Â °ÍÀº ¼³°èÀÚÀÇ ¸òÀ̶ó´Â °ÍÀº ºÎÁ¤ÇÒ ¼ö ¾ø´Ù.
1.4 HDLÀÇ Á߿伺
HDLÀº ±âÁ¸ÀÇ È¸·Îµµ¸¦ ±â¹ÝÀ¸·Î ÇÑ ¼³°è¿¡ ºñÇØ ¸¹Àº ÀåÁ¡À» °®°í
ÀÖ´Ù.
- Ãß»óÀûÀÎ ¼³°è°¡ °¡´ÉÇÏ´Ù. ¼³°èÀÚ´Â ÇÏÀ§¼öÁØÀÇ ÀÚ¼¼ÇÏ°í ¹°¸®ÀûÀÎ ±â¼ú¿¡ ´ëÇÑ °ÆÁ¤¾øÀÌ ¼³°è°¡ °¡´ÉÇÏ´Ù.
- ±â´ÉÀÇ °ËÁõÀÌ
Á¶±â¿¡ ÀÌ·ç¾îÁø´Ù. RTL¼öÁØ¿¡¼ ¼³°è°¡ ÀÌ·ç¾îÁø´Ù¸é ÃÖÀûÈÇÏ´Â °úÁ¤¿¡¼ ¸ðµç ±â´É°ËÁõÀÌ ÀÌ·ç¾îÁö°Ô µÈ´Ù.
- ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö°ú
ºñ½ÁÇÏ´Ù.
1.5 Verilog HDLÀÇ Àαâ
Verilog HDLÀº ¾÷°è Ç¥ÁØÀ¸·Î ÁøÈÇØ¿Ô´Ù. Verilog
HDLÀÇ À¯¿ëÇÑ Æ¯Â¡µéÀÌ´Ù.
- ¹è¿ì±â ½±°í »ç¿ëÇϱ⠽¬¿î ¹ü¿ë Çϵå¿þ¾î ±â¼ú ¾ð¾îÀÌ´Ù. C ÇÁ·Î±×·¡¹Ö ¾ð¾î¿Í À¯»çÇϱ⠶§¹®¿¡ C
ÇÁ·Î±×·¡¹ÖÀ» Á¢Çغ» ¼³°èÀÚ¶ó¸é ªÀº ½Ã°£¿¡ ¹è¿ì°í »ç¿ëÇÒ ¼ö ÀÖ´Ù.
- ÇϳªÀÇ ¸ðµ¨À» ±â¼úÇϴµ¥ ÀÖ¾î ´Ù¸¥ ¿©·¯ Ãß»óÈ ¼öÁØÀ» ¼¯¾î
»ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù.
- À¯¸íÇÑ ·ÎÁ÷ ÇÕ¼ºÅøµéÀÌ Verilog HDLÀ» Áö¿øÇÏ°í ÀÖ´Ù.
- °øÁ¤È¸»çµéÀÌ Verilog HDL
¶óÀ̺귯¸®¸¦ Á¦°øÇÑ´Ù.
- PLI(Programming Language Interface)¸¦ »ç¿ëÇÏ¿© µðÀÚÀÎÀÇ ³»ºÎ µ¥ÀÌÅÍ ±¸Á¶¿Í ¿¬µ¿ÇÏ´Â
CÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.