²{¦b¶}©l¨Ï¥ÎMATLAB® & Simulink®¶i¦æFPGA¡BASIC¡B¥H¤ÎSoC¶}µo ±´¯ÁÀ³¥Î½d¨Ò¡B¼v¤ù»P±Ð¾Ç
MATLAB»PSimulink°ò¦
±Ä¥Î°ò©ó¼Ò«¬ªº³]p¶i¦æFPGA¡BASIC¡BSoC¶}µo
±qºtºâªk¶}µo¡B¼Æ¦ìµwÅé³]p¥H¤ÎÅçÃÒªº¨ó¦P¦X§@¶}©l¡A±´¯Á¹ê²{ªº¿ï¶µ¡B¶i¦æ¦´ÁÅçÃÒ¡A¥H¤Î²£¥ÍÅçÃÒ¤¸¥ó¡C
MATLAB Onramp
³z¹L§K¶O¡B¨âÓ¤p®É¥ª¥kªº¤¬°Ê¦¡½u¤W±Ð¾Ç¨Ó±´¯ÁMATLABªº±`¥Î¥\¯à»P¬yµ{¡C
Simulink Onramp
¬°©|¥¼¼ô±x¨t²Î«Ø¼Ò¡Bºtºâªk³]p¥H¤ÎÀËÅ窺·s¤â³]pªºÂù¦V¤¬°Ê¦¡½Òµ{¡C
FPGA»PASICµwÅ餧«Ø¼Ò»P³¡¸p
¨Ï¥ÎMATLAB¶i¦æFPGA³]p
³z¹L¥»¨t¦Cªº5¬q¼v¤ù¡A¤F¸Ñ¦p¦óɧUMATLABÅýFPGA³]p§ó¥[±o¤ßÀ³¤â¡C±´¯Á±N°T¸¹³B²zºtºâªk³¡¸p¨ìFPGA©ÎASIC¥Ø¼ÐµwÅé®ÉªºÃöÁä¦Ò¶q¡C
¨Ï¥ÎHDL Coder WFA¨Ó¹ê²{¥¢¯u®ÄÀ³
¥»½g¤å³¹»¡©ú¦p¦ó¨Ï¥ÎHDL Coder³]p¨Ã¹ê²{¤@Ó¥HFPGAµwÅ鬰¥Ø¼Ðªºµ°T³B²zºtºâªk¡C
FPGAªºDSPÀ³¥Î¡G©wÂI¹Bºâ§ó»´ÃP
¤F¸Ñ¦p¦ó±N°T¸¹³B²z»P³q°T³]p±q¯BÂIÂର¦³®Ä²vªº©wÂI¥H«K©óFPGA¹ê²{¡C
¬°FPGA©MASICµwÅé²£¥Í¯BÂIHDL
ª½±µ±q³æºë«×¡BÂùºë«×¡B©Î¥bºë«×¯BÂI¼Ò«¬²£¥Í¿W¥ß©ó¥Ø¼Ðªº¥i¦X¦¨VHDL©ÎVerilogµ{¦¡½X¡C
¥H¥\¯à¦w¥þ¬°«e´£ªº°ò©ó¼Ò«¬ªºFPGA»PASIC³]p
¤F¸Ñ¦p¦ó³]p¨Ã¹ê²{FPGA¡BASIC¡BSoC¤W²Å¦XISO 26262¡BIEC 61508©ÎIEC 623304¼Ð·Çªº°T¸¹³B²z¡B±±¨î³]p¡BµøÄ±ºtºâªk¡C
HDL Coder¦Û¾Ç±Ð§÷
³v¨B±NMATLABºtºâªk¹ê²{©óFPGAµwÅé¡C
HDL Coder¾Ç²ß»Pµû¦ô¤èªk«ü«n
³o¨Ç«ü«n¥]§t¤F¦UºØ·§©Àªº½d¨Ò®i¥Ü¡A¥i¥HÀ°§U§A±Ä¥ÎHDL Coder¨Ó¶i¦æ³]p¡C
HDL Coder¤å¥ó
¤F¸Ñ¦p¦ó¬°FPGA½sµ{©ÎASIC쫬¤Æ»P³]p²£¥ÍVHDL»PVerilogµ{¦¡½X¡C
°ª®Ä¯àFFTºtºâªk¤§FPGAµwÅé¹ê²{
¨Ï¥ÎDSP HDL Toolbox FFT¼Ò¶ôªº¤º«Ø¼Ò¶ô°Ñ¼Æ¡A¤uµ{®v¥i¥H§Ö³t±´¯Á¹ê²{¬[ºc¡A¼ÒÀÀµwÅ驵¿ð¡A¦b¥H¼Ë¥»©Î¥H·©¬°°ò¦ªº³B²z¦ê¬y¿é¤J¸ê®Æ¥H²Å¦X°ª³tn¨D¡C
¨Ï¥ÎMATLAB»PSimulink¶i¦æFPGA¡BASIC©MSoC¶}µo
¤F¸ÑMATLAB»PSimulinkªº°ª¶¥³]p¤èªk¦p¦ó¨ó§UÁYµuASIC»PFPGA³]p»PÅçÃҩһݪº®É¶¡¡CHDL Coder´£¨Ñ¤F³]pªº¥¥x¡A¦ÓHDL Verifier«h´£¨Ñ¤F·~¬É»â¥ýªº³]pÅçÃÒ¤u¨ã¡C
Cadence Stratus HLSªºMATLAB-to-SystemC¤u§@¬yµ{
¤F¸Ñ¦p¦ó¨Ï¥ÎHDL Coder²£¥Í°w¹ïASIC³Ì¨Î¤ÆªºMATLABµ{¦¡½X¹ê²{¡C³z¹LSystemC´ú¸Õ¥¥x²£¥Í¥i¦X¦¨¡B©wÂISystemCµ{¦¡½X¥H·f°tCadence Stratus HLS°ª¶¥¦X¦¨¤u¨ã¨Ï¥Î¡C
³z¹LMATLAB»PSimulink±qºtºâªkÁÚ¦VFPGA/ASIC¹ê²{
¤F¸Ñ¦p¦ó³z¹LMATLAB¡BSimulink»PHDL Coder¶i¦æFPGA»PASIC³]p¡C¼v¤ù³v¨B®i¥Ü±qªì©l¼Ò«¬¡BµwÅéµ²ºc¾ã¦X¡B¨ìRTLµ{¦¡½X¥Í¦¨µ¥¬yµ{¡C
VHDL»PVerilogÅçÃÒ
³sµ²¨ìMATLAB¨Ó§ïµ½RTLÅçÃÒ
²£¥ÍSystemVerilog DPI¤¸¥ó¥H¥[³t«Ø¥ßÅçÃÒÀô¹Ò¡A³z¹LMATLAB©ÎSimulink»PHDL¤§¶¡ªº¨ó¦P¼ÒÀÀ¨Ó±Æ°£°ÝÃD¡A¥H¤Î¤F¸Ñ¦p¦ó¥H¼sªx¦X§@¨Ó¶X¦®ø°£¿ù»~¡C
¨Ï¥ÎHDL Verifier±qMATLAB²£¥ÍDPI-C¼Ò«¬
¨Ï¥ÎHDL Verifier±qMATLAB²£¥Í¥Î©óUVM¼ÒÀÀªºSystemVerilog DPI-C°Ñ¦Ò¼Ò«¬¡C
¬°Ãþ¤ñ/²V¦X°T¸¹ÅçÃÒ²£¥ÍSystemVerilog DPI
±NÃþ¤ñ/²V¦X°T¸¹ªºSimulink¼Ò«¬¶×¥X¦Ü§AªºSystemVerilog¼ÒÀÀ¾¹¡C
¶×¤JHDL·f°tSimulink¶i¦æ¨ó¦P¼ÒÀÀ
¨Ï¥ÎHDL Verifier¨Ó¶×¤J¤â¼g©Î¬J¦³ªºVHDL©ÎVerilog¡A¥H§Q·f°tSimulink¶i¦æ¨ó¦P¼ÒÀÀ¡C
¨Ï¥Î«È»s¤ÆªO¤l¶i¦æFPGA°j°éÅçÃÒ
¨Ï¥ÎMATLAB»PSimulink°µ¬°´ú¸Õ¥¥x¡A¦b«È»s¤ÆªO¤l¤W°õ¦æ¥HFPGA¬°°ò¦ªºÅçÃÒ¡C
¨Ï¥ÎFPGAªº¸ê®ÆÂ^¨ú¶i¦æ³]p°£¿ù
³z¹L¥»½g±Ð¾Ç¤F¸Ñ¦p¦ó´¡¤J±qFPGA쫬Â^¨ú¸ê®Æªº¥\¯à¡A¥H§Q¦bMATLAB»PSimulink¶i¦æ°£¿ù¡C
±NMATLAB§@¬°AXI ¥DIP±±¨îAMD FPGA©MZynq SoCªO
¦bHDL Verifier¤¤¡A±NMATLAB§@¬°AXI¥DIP´£¨Ñ¤F³z¹LMATLAB¨ÓŪ/¼gAMD® FPGA©MZynq® SoCªO¤W°O¾ÐÅé¦ì¸mªº³~®|¡C¤F¸Ñ¦p¦ó¹B¥Î¦¹¤èªk¦bAMD Kintex®-7 FPGA¤W±±¨î¥ÑHDL Coder²£¥ÍªºIP®Ö¤ß¡C
HDL Verifier¤å¥ó
¤F¸Ñ¦p¦ó¨Ï¥ÎHDL¼ÒÀÀ¾¹©MFPGAªO´ú¸Õ¨ÃÅçÃÒFPGA¡BASIC©MSoC¤WªºVerilog»PVHDL³]p¡C
HDL VerifierªºASIC´ú¸Õ¥¥x
HDL VerifierªºASIC´ú¸Õ¥¥x¬O¤@Óªþ¥[¤u¨ã¡AÅý¨Ï¥ÎªÌ¥i³z¹LHDL Verifier¡A±qMATLAB©ÎSimulink²£¥Í´ú¸Õ¥¥x¤¸¥ó¦Ü³q¥ÎÅçÃÒ¤èªk¾Ç(Universal Verification Methodology¡AUVM)©ÎSystemVerilogÀô¹Ò¡C
SoC »P ASIC
«Ø¼Ò»P¼ÒÀÀ | ³z¹LSoC Blockset³]p±qFPGGA¨ì³B²z¾¹ªº¸ê®Æ³q¹D
¨Ï¥ÎSoC Blockset¡A¦b³¡¸p¸mµwÅ餧«e³]p¨Ã¼ÒÀÀ¨ã³ÆFPGA©M³B²z¾¹ºtºâªk¤Î°O¾ÐÅ餶±ªºÀ³¥Î¡C
¨Ï¥ÎEmbedded Coder©MHDL Coder¶i¦æIntel SoC FPGA½sµ{
¨Ï¥ÎMATLAB»PSimulink¦b쫬¤Æ¬yµ{¤¤¶i¦æIntel SoC FPGA½sµ{¡C
¦bFPGA¤W³¡¸p5G NRµL½u³q°T¡GMATLAB»PSimulinkªº§¹¾ã¤u§@¬yµ{
¨Ï¥ÎMATLAB»PSimulink«Ø¥ß³nÅéµL½u¹q(Software-Defined Radio)
¤F¸Ñ¦p¦ó¨Ï¥ÎMATLAB»P³nÅéµL½u¹q(SDR)¥¥x§Y®ÉÂ^¨ú©M³B²zµL½u¸ê®Æ¡C
³z¹LMATLAB©MSimulink¶}µoRFSoCªºµL½u¹qÀ³¥Î
¤¶²Ð¦p¦ó³]p¦UºØ³£¤R°Ç¹p¹F¨Ã¹ê²{©óAMD Zynq UltraScale+ RFSoC¥¥x¡C¼ÒÀÀ¥~³¡°O¾ÐÅ骺¦s¨ú®ÄÀ³¤Î¶i¦æ¥ô°È±Æµ{¡A±µµÛ³z¹Lµ{¦¡½X¥Í¦¨»P³¡¸p¶i¦æ¦æ¬°ÅçÃÒ¡C
FPGAªºµøÄ±³B²z
±NFPGAµwÅé§@¬°µøÄ±³B²zºtºâªk³¡¸p¥Ø¼Ðªº¦Ò¶qn¯À¡B¤u§@¬yµ{¡B§Þ¥©¡C
²`«×¾Ç²ß¤§FPGAµ¥´O¤J¦¡¸Ë¸m³¡¸p
³]p²`«×¾Ç²ß¡B¹q¸£µøÄ±»P°T¸¹³B²zÀ³¥Î¡A¨Ã³¡¸p©óAMD Zynq FPGA¡BNVIDIA GPU¡B¥H¤ÎCPU¡C³z¹L·sªºMATLAB¤u§@¬yµ{±N²`«×¾Ç²ßºô¸ô쫬¹ê²{©ó¥HFPGA¬°°ò¦ªºÀ³¥Î¡C
¹ê²{©óSoC¤§¸¦æ±±¨î¨t²Î»{ÃÒ
¤F¸Ñ¦p¦ó¨Ï¥Î¥H¼Ò«¬¬°°ò¦ªº³]p¶}µo¥]§t°õ¦æ©óSoCªº³nÅé(Cµ{¦¡½X)©MFPGA (HDLµ{¦¡½X)ªº¸¦æ±±¨î¨t²Î¡C
Simulink¤§CPU¡BFPGA»PI/O§Y®É¼ÒÀÀ¡B´ú¸Õ¸Ñ¨M¤è®×
³z¹L³o¬q¼v¤ù±a§A¤F¸ÑMathWorks»PSpeedgoatªºRCP/HIL§Y®É¼ÒÀÀ»P´ú¸Õ¸Ñ¨M¤è®×¡C±N§Aªº±±¨î³]p±q®à±¼ÒÀÀ¶i¤J³z¹LµwÅé»PI/O¶i¦æªº§Y®É´ú¸Õ¡C
¥HFPGA¬°°ò¦ªº¹q¤O¹q¤lµwÅé°j°é(Hardware-in-the Loop¡AHIL)¼ÒÀÀ
¤F¸Ñ¦p¦óɧUHDL Coder±NSimscape¼Ò«¬¥HHDLµ{¦¡½X¹ê²{¡A¨Ã¥B¦bSpeedgoat§Y®É¥Ø¼ÐµwÅé¤WªºFPGA¶i¦æµwÅé°j°é´ú¸Õ¡C
±N°¨¹F±±¨îºtºâªk³¡¸p©óFPGA
¤F¸Ñ°¨¹F±±¨î¤uµ{®v¦Ò¶q¥HFPGA©MSoC¶i¦æ³]pªºì¦]¡A¥H¤Î¦p¦ó¨Ï¥ÎSimulink¥H³Ì¤p«×¦a¬°FPGA¼¶¼gµ{¦¡½X¡C
