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ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.