µðÀÚÀÎ ÀÔ·Â(Design Entry)
2007³âºÎÅÍ °³¹ßµÈ Editors¿¡´Â µî·ÏÀÚ ÁöÁ¤À» µµ¿ÍÁÖ´Â »ç¿ëÀÚ Ä£ÈÀûÀÎ µî·Ï ÅÛÇø´ÀÌ ÀÖ½À´Ï´Ù. ½ÉÇÃÇÏ°í º¹ÀâÇÑ ·¹Áö½ºÅ͸¦ °èÃþ ÀûÀ¸·Î »ý¼ºÇÏ¿© ´ëÇü SoC ¼³°è¸¦ »ó¡ÀûÀ¸·Î Ç¥ÇöÇÏ°í ¼³°èÇÏ°í ¿¬°áÇÑ °ü¸® °¡´ÉÇÑ ÇÏÀ§ ºí·ÏÀ¸·Î ³ª´ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¹æ¹ý·ÐÀ» »ç¿ëÇÏ¸é ´ëÇüÆÀ°ú º´·Ä·Î µðÀÚÀÎÀÇ ´Ù¸¥ ºÎºÐÀ» ÀÛ¾÷ÇÒ ¼ö ÀÖ½À´Ï´Ù.
Word, Excel ¶Ç´Â OpenOffice ¢â¿¡ ´ëÇÑ Ãß°¡ ±â´ÉÀ» »ç¿ëÇÏ¿© ´ÙÀ½À» ¼öÇà ÇÒ ¼ö ÀÖ½À´Ï´Ù:
·¹Áö½ºÅÍ Çʵå À̸§, ³ÐÀÌ, ¼³¸í ¹× ¾×¼¼½º À¯Çü ¹× ´Ù¾çÇÑ ¼Ó¼ºÀ» Æ÷ÇÔÇÏ¿© ·¹Áö½ºÅ͸¦ ÁöÁ¤ÇϽʽÿÀ.
IP-XACT, SystemRDL, YAML or RALF °¡Á®¿À½Ê½Ã¿À.
Ŭ·ÎÅ·, ¸®¼Â, Ư¼ö ·¹Áö½ºÅÍ, Ä«¿îÅÍ, ÀÎÅÍ·´Æ®, ´ÙÁß µµ¸ÞÀÎ, ¸Þ¸ð¸® ¸ÅÇÎ ±â¼ú¿¡ ´ëÇÑ RTL µî·Ï Á¤º¸ Á¤ÀÇ
Á¤Àû °ªÀ» »ç¿ëÇÏ¿© ÀÚµ¿ »ý¼º µÈ Äڵ带 ¸Å°³ º¯¼öÈÇÏ°í ÀÏ¹Ý ¿¬»êÀڷΠǥÇö
Check for consistencies and errors
¸Å°³ º¯¼öÈ(Parameterization)¿¡ ´ëÇÑ ±¤¹üÀ§ÇÑ Áö¿øÀ» ÅëÇØ ´Ù¾çÇÑ ¸Å°³ º¯¼ö¸¦ ÁöÁ¤ÇÏ°í »ç¾ç¿¡¼ ¸ÅÅ©·Î·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸Å°³ º¯¼öÀÇ °ªÀº Á¤ÀûÀ̰ųª Ç¥Çö½ÄÀ» ±â¹ÝÀ¸·Î ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹®ÀÚ¿ Ç¥Çö½Ä°ú ¼ýÀÚ Ç¥Çö½Ä ¸ðµÎ Çã¿ëµÇ¸ç ´ÙÀ½°ú °°Àº ÀϹÝÀûÀÎ ¿¬»êÀÚ(common operators)µéÀ» ÀÌ¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ê¼ú ¿¬»êÀÚ: +, -, *, /, %, <<, >>, ()
ºñ±³ ¿¬»êÀÚ / °ü°è ¿¬»êÀÚ: >,<, >=, <=, ==
Á¶°ÇºÎ »ïÇ× ¿¬»êÀÚ: ?:
¿¬¼Ó/¿¬°á ¿¬»êÀÚ (Concatenation): + (¹®ÀÚ¿ ÄÁÅؽºÆ®¿¡¼ ¿À¹ö·Îµå µÊ)
ÆíÁý±â ÄÄÆÄÀÏ·¯(Editor Compiler)´Â ´ÙÀ½ µ¥ÀÌÅ͸¦ °Ë»çÇÏ¿© ±¸Á¶º°·Î Á¤È®ÇÑ »ç¾çÀ» ¸¸µå´Â µ¥ µµ¿òÀÌ µË´Ï´Ù.
»ç¾ç¿¡ ´ëÇÑ ÁÖ¼Ò °è»ê ¹× ¹é¿¡³ëÅ×À̼Ç(back-annotation)
»ðÀÔ ·¹Áö½ºÅÍ ¸Ê - ³»¿ë Ç¥ (ÁÖ¼Ò, ±âº»°ª)
°ãħ (ºñÆ®, ·¹Áö½ºÅÍ, RegGroup ¹× ºí·Ï)
ºÒ¿ÏÀüÇÑ µ¥ÀÌÅÍ ¶Ç´Â À߸øµÈ µ¥ÀÌÅÍ
Áߺ¹µÇ°Å³ª ºÒ¹ýÀûÀÎ À̸§
À߸øµÈ ¾×¼¼½º ¶Ç´Â ȣȯµÇÁö ¾Ê´Â ¾×¼¼½º
¿ì¸®ÀÇ ¹®¼ »ý¼º±â(Document Generator)´Â HTML alt1 / alt2, .doc, .PDF, .xls, IP-XACT ¶Ç´Â SystemRDL°ú °°Àº ÆÄÀÏ Çü½ÄÀ» Ãâ·Â ÇÒ ¼ö ÀÖ½À´Ï´Ù.
µÎ °¡Áö ±¸¼º ¿ä¼Ò°¡ÀÖ´Â ¸Å¿ì °£´ÜÇÑ ¾ÆÅ°ÅØó¸¦ ±â¹ÝÀ¸·Î ÇÑ º§·Î½ÃƼ ÅÛÇø´(velocity template)À» »ç¿ëÇÏ¿© Ãâ·ÂÀ» »ç¿ëÀÚ Á¤ÀÇ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù
µ¥ÀÌÅÍ ¸ðµ¨ ¹× ÅÛÇø´ µ¥ÀÌÅÍ ¸ðµ¨Àº ±âº»ÀûÀ¸·Î ¼³°è ½ºÆåÀ» ¼³¸íÇÏ´Â ÀÔ·ÂÀ̸ç ÅÛÇø®Æ®´Â µ¥ÀÌÅÍ ¸ðµ¨ÀÇ Á¤Àû Ãâ·Â ¹× µ¿Àû ¿ä¼Ò¸¦ ¼³¸íÇÏ´Â ÀÏ¹Ý ÅؽºÆ® ÆÄÀÏÀÔ´Ï´Ù. À̸¦ ÅëÇØ °í°´ÀÌ ÇÊ¿ä·Î Çϴ Ư¼ö ÄÚµå ¹× ¹®¼¸¦ »ý¼º ÇÒ ¼ö ÀÖ½À´Ï´Ù.
ÄÚµå »ý¼º
Ȳ±Ý »ç¾çÀ» ±â¹ÝÀ¸·Î ´Ù¾çÇÑ SoC ÆÀÀÌ GUI ¶Ç´Â ¸í·É ÁÙÀ» ÅëÇØ °í¼º´É ÄÚµå »ý¼º±â¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
·¹Áö½ºÅÍ¿¡ ´ëÇØ »ý¼ºµÈ RTL ÄÚµå(RTL Code) (VHDL, Verilog, SystemVerilog ¶Ç´Â SystemC)´Â »ç¶÷ÀÌ ½±°Ô ÀÐÀ» ¼ö ÀÖ´Â ÁÖ¼®À» ´Þ¾Æ ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ RTL¿¡´Â ¹ö½º ÇÁ·ÎÅäÄÝ (AHB, APB, AXI, AXI-Lite ¶Ç´Â µ¶Á¡ Á¦Ç°)¿¡ ƯÁ¤ÇÑ ¹ö½º ½½·¹ÀÌºê ¹× µðÄÚµå ·ÎÁ÷ÀÌ Æ÷ÇԵǾîÀÖ¾î ¾ÖÇø®ÄÉÀÌ¼Ç ·ÎÁ÷À» ·¹Áö½ºÅÍ ¹ö½º¿¡ Áï½Ã ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù.
Æ÷°ýÀûÀÎ RTL µî·Ï Á¤º¸(RTL Properties) ¸ñ·ÏÀº °ñµç »ç¾ç¿¡¼ °èÃþ ÀûÀ¸·Î Á¤ÀÇÇÒ ¼ö ÀÖÀ¸¸ç »ý¼ºµÈ RTL Äڵ忡 ¹Ý¿µµÉ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼ µðÀÚÀÎ ¿ä±¸ »çÇ×À» ÃæÁ·½ÃÅ°±â À§ÇØ º¸´Ù ¸ÂÃãÈµÈ RTLÀÌ °¡´ÉÇÕ´Ï´Ù. ¿¹¸¦ µé¾î clock_edge = posedge, reset_type = async ¶Ç´Â reset_level = high¸¦ ½±°Ô ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç »ý¼ºµÈ RTL ÄÚµå´Â À̸¦ ¹Ý¿µÇÕ´Ï´Ù.
RTL ¼Ó¼ºÀº ½¦µµ¿ì(Shadow), ÀÎÅÍ·´Æ®(Interrupt), Ä«¿îÅÍ(Counter), º°Äª(Alias), °£Á¢(Indirect), Àá±Ý(Lock), FIFO ¶Ç´Â Æ®¸®°Å ¹öÆÛ(Trigger Buffer), ¿ÍÀ̵å(Wide), ´ÙÂ÷¿ø(Multi-Dimensional) ¶Ç´Â RO-WO Æä¾î(Pair)¿Í °°Àº Ư¼ö ·¹Áö½ºÅ͸¦ ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ý¼ºµÈ RTL ÄÚµå´Â ´ÙÀ½À» Áö¿øÇÕ´Ï´Ù.
¿ÜºÎ ·¹Áö½ºÅÍ - »ý¼ºµÈ RTL ¿ÜºÎ¿¡¼ »ç¿ëÀÚ°¡ ±¸Çö ÇÑ ·¹Áö½ºÅÍ ¶Ç´Â regGroup
ÆÄÀÌÇÁ ¶óÀÎ ½ºÅ×ÀÌÁö - Ưº°ÇÑ Å¸ÀÌ¹Ö ¿ä±¸ »çÇ×À» ÃæÁ·½ÃÅ°±â À§ÇØ
Ư¼ö Á¦¾î ½ÅÈ£ - ¿ø°Ý ½ÅÈ£ÀÇ ¾²±â ÆÞ½º, 1 ÆÞ½º ¾²±â, 0 ÆÞ½º ¾²±â, Àбâ ÆÞ½º, Áö¿ì±â Çʵ带 ¿¹·Îµé ¼ö ÀÖ½À´Ï´Ù.
ÀúÀü·Â Ãâ·Â - ¸ðµç Ŭ·° ¿¡Áö¿¡¼ µ¿ÀÏÇÑ °ªÀ» ÇÒ´çÇϰųª ¾²±â ÀÛ¾÷À» ¸ðµÎ Á¦°Å ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.
»ý¼ºµÈ UVM ·¹Áö½ºÅÍ ¸ðµ¨Àº »ç¶÷ÀÌ ÀÐÀ» ¼ö ÀÖ´Â ÁÖ¼®À» ½±°Ô ÀÐÀ» ¼ö ÀÖÀ¸¸ç ·¹Áö½ºÅÍ ¹è¿, ¸Þ¸ð¸®, °£Á¢ ¾×¼¼½º ·¹Áö½ºÅÍ, FIFO ·¹Áö½ºÅÍ ¹× ¹üÀ§, Á¦¾à Á¶°Ç ¸ðµ¨ ¹× hdl_path¸¦ Æ÷ÇÔÇÕ´Ï´Ù.
'coverage'¶ó´Â UVM ¼Ó¼ºÀ» Á¤ÀÇÇϸé ƯÁ¤ ·¹Áö½ºÅÍ, reggroup, ¸Þ¸ð¸® ¶Ç´Â ºí·ÏÀÇ Àû¿ë ¹üÀ§¸¦ Á¦¾îÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼Ó¼ºÀº °èÃþ ±¸Á¶À̹ǷΠĨ ¼öÁØ¿¡¼ Àû¿ëµÇ¸é ÀÚµ¿À¸·Î ¿ä¼ÒÀÇ ³ª¸ÓÁö ºÎºÐ¿¡ Àû¿ë ¹üÀ§°¡ ¼³Á¤µË´Ï´Ù. ´ÙÀ½°ú °°ÀÌ 'coverage'¸¦ ¼³Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù:
'a'- ÁÖ¼Ò ¸Ê¿¡¼ Àаųª ¾²´Â ÁÖ¼Ò¿¡ ´ëÇÑ Àû¿ë ÄÚµå
'b'- ·¹Áö½ºÅÍ¿¡¼ ÀÐÈ÷°Å³ª ¾²ÀÎ ºñÆ®¿¡ ´ëÇÑ Àû¿ë ÄÚµå
'f'- ÇÊµå °ª¿¡ ´ëÇÑ Àû¿ë ¹üÀ§ ÄÚµåÀÔ´Ï´Ù.
'on'- À§¿¡¼ ¾ð±Þ ÇÑ ¸ðµç À¯Çü¿¡ ´ëÇÑ Àû¿ë ÄÚµå
'off'- Àû¿ë ¹üÀ§ Äڵ尡 »ý¼ºµÇÁö ¾Ê½À´Ï´Ù.
'hdl_path'¶ó´Â ¼Ó¼ºÀ» »ç¿ëÇÏ¿© hdl_path¸¦ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¼Ó¼ºÀº °ªÀ» °èÃþ °æ·Î·Î ¼³Á¤ÇÕ´Ï´Ù. hdl_path´Â UVM ¸ðµ¨ÀÇ °¢ °³º° ¿ä¼Ò°¡ ¿ä¼ÒÀÇ RTL ¸ðµ¨¿¡ ¿¬°áµÇ´Â ¸ÞÄ¿´ÏÁòÀÔ´Ï´Ù.
SystemRDL, CMSIS-SVD, IP-XACT, XML ¹× ¼ÒÇÁÆ®¿þ¾î ÆÀ¿¡¼ ÇÊ¿ä·ÎÇÏ´Â C/C++ Çì´õ ÆÄÀÏ ¹× API¿Í °°Àº ±âŸ ÇÁ·ÎÁ§Æ® Áß¿ä ÆÄÀÏÀ» »ý¼º ÇÒ ¼ö ÀÖ½À´Ï´Ù.
±¸¼º