¹Ø¼ü´Ê£ºFPGA¿ª·¢°å FPGAÔÐÍÑé֤ϵͳ
ʱ¼ä£º2022-04-29 14:13:51 À´Ô´£ºÐ¾»ªÕ¿Ƽ¼
¡°´ÓÓ¦Óó¡¾°ÉÏ¿´£¬ÎÒÃÇ¿´µ½£¬FPGA¿ª·¢°åÊʺÏСÐÍÉè¼ÆµÄÊÖ¹¤ÑéÖ¤¡¢Ìض¨ÐÒéµÄ¿ª·¢£¬¼°ÔÚÕû¸öϵͳÖÐÆðµ½¿ØÖƵÄ×÷Óõȵȣ»¶øFPGAÔÐÍϵͳÊʺÏÖдóÐÍÉè¼ÆºÍ¸´ÔÓËã·¨µÄ×Ô¶¯»¯ÑéÖ¤¼°Á¬½ÓÕæÊµÍâΧӲ¼þµÄ¸ßÐÔÄÜϵͳÑéÖ¤/µ÷ÊÔ£¬ÈíÓ²¼þÐͬµ÷ÊԵȵȡ£ÔÚIPÑéÖ¤·½Ã棬FPGA¿ª·¢°åºÍÔÐÍϵͳÓÐÒ»¶¨µÄÖØºÏ¶È¡£
¡±
×÷ÕߣºÑîÒ»·å£¬Ð¾»ªÕ¿Ƽ¼¼¼ÊõÊг¡¾Àí
ÎÄÕ·¢²¼ÓÚ¡¶Öйú¼¯³Éµç·¡·£¬Óɹú¼Ò¹¤ÒµºÍÐÅÏ¢»¯²¿Ö÷¹Ü£¬Öйú°ëµ¼ÌåÐÐҵлáÖ÷°ìµÄ¹Ù·½×¨ÒµÆÚ¿¯¡£
ÔÚÔĶÁ±¾ÎÄ֮ǰ£¬¶ÁÕß¿ÉÒÔ¶ÔFPGAоƬµÄ»ù±¾º¬Òå¼°ÔÀí×ö»ù±¾µÄÁ˽⡣FPGA µÄÈ«³ÆÎªField Programmable Gate Array£¨ÏÖ³¡¿É±à³ÌÃÅÕóÁУ©£¬ÊôÓÚרÓü¯³Éµç·ÖеÄÒ»ÖÖ°ë¶¨ÖÆµç·£¬Êǿɱà³ÌµÄÂß¼ÕóÁС£FPGA µÄ»ù±¾½á¹¹°üÀ¨¿É±à³ÌÊäÈëÊä³öµ¥Ôª¡¢»ù±¾¿É±à³ÌÂß¼µ¥Ôª¡¢Êý×ÖʱÖÓ¹ÜÀíÄ£¿é¡¢Ç¶Èëʽ¿éRAM¡¢·á¸»µÄ²¼Ïß×ÊÔ´¡¢ÄÚǶרÓÃÓ²ºË£¬ÒÔ¼°µ×²ãÄÚǶ¹¦Äܵ¥Ôª¡£
ͼ1 ijFPGAµÄ»ù±¾Âß¼µ¥Ôª
ÊÐÊÛ³£¼ûµÄ»ùÓÚFPGAµÄƽ̨²úÆ·°üÀ¨FPGA¿ª·¢°å¡¢FPGAÔÐÍÑé֤ϵͳ¡£¼ÈÈ»ËûÃÇͬÑù¶¼ÊÇ»ùÓÚFPGAоƬÉè¼ÆµÄ£¬ÎªÊ²Ã´¹æÄ£¡¢¹¦ÄÜ¡¢³É±¾ºÍ¼Û¸ñÉÏÓзdz£´óµÄ²îÒ죿ÕâÒª´ÓËüÃÇÓ¦Óó¡¾°ºÍÉè¼ÆÄ¿±êµÄÇø±ð˵Æð£º
FPGA¿ª·¢°å£º
FPGA¿ª·¢°åµÄÖ÷Òª³¡¾°ÊÇ¡°¿ª·¢»ùÓÚ¶ÀÁ¢FPGAоƬµÄIP»òÓ¦ÓÃϵͳ¡±£¬ÆäÉè¼ÆÄ¿±êÊǾ«¼ò»¯¡¢¸ßÐÔÄÜ¡¢µÍ³É±¾£¬²¢×Ô´øºÏÊʵÄÍâÉè½Ó¿Ú£¬¶Ôµ÷ÊÔ¹¦ÄܵÄÒªÇóÏÞÓÚÔÚµ¥¿ÅFPGAÉÏÓÃÔ³§Èí¼þµ÷ÊÔ¡£
Òò´ËÆä´îÔØµÄFPGAоƬͨ³£µÄÈÝÁ¿ÎªÐ¡µ½ÖеȹæÄ££¬Êµ¼ÊÓ¦ÓÃÖУ¬ÍùÍùÓÃÓÚ½øÐÐÖÐС¹æÄ£¡¢Ìض¨ÐÒ鹦ÄÜоƬµÄ¿ª·¢£¬±ÈÈçÉæ¼°ÒÔÌ«Íø¡¢MIPI¡¢NVME/M.2 SSD¿ØÖÆ¡¢UART/I2C ¿ØÖÆ¡¢HDMI/DVIÏÔʾ¿ØÖƵȡ£Ò²ÓÐÖ±½Ó°ÑÒ»¿éFPGA¿ª·¢°å·ÅÔÚÒ»¸ö´óÐÍϵͳ֮ÖУ¬Æðµ½¿ØÖưåµÄ×÷Óã¬ÕâÑùÓû§¿ÉÒÔÁé»îµØ¶Ô¿ØÖÆÐźÅ×ö¸÷ÖÖµ÷Õû¡£Ò²ÓÐһЩӦÓó¡¾°¼ÆËãËã·¨ÓýϴóÈÝÁ¿µÄFPGAʵÏÖ£¬´ïµ½¸ßÐÔÄܺÍËã·¨Áé»îÐÔµÄÓ¦ÓÃÄ¿±ê¡£Í¬Ê±£¬ÓÉÓÚÖеͶ˵Ŀª·¢°åÊÛ¼ÛÊÊÖУ¬FPGA¿ª·¢°åÒ²ÊʺϳõѧÕß½øÐÐѧϰʹÓá£
Æä´Î£¬²¿·ÖFPGA¿ª·¢°åÒ²±»ÓÃÔÚIPºÍСÐÍоƬÉè¼ÆµÄ¿ª·¢ÑéÖ¤³¡¾°¡£Õⲿ·Ö¿ª·¢°åÅ䱸´óÈÝÁ¿µÄFPGAоƬ£¬ÉõÖÁÊǵ¥°åÅ䱸¶àƬFPGAоƬÀ´ÊÊÓ¦¿ª·¢ÑéÖ¤³¡¾°£¬Ò»°ãÓÉÓû§×Ô¼º¸ºÔðÊÖ¹¤ÊµÏÖ´ÓÉè¼Æµ½FPGA¹¦ÄÜÔÐ͵ÄÁ÷³Ì¡£
FPGAÔÐÍÑé֤ϵͳ£º
FPGAÔÐÍÑé֤ϵͳµÄÖ÷ÒªÓ¦Óó¡¾°ÊÇ¡°Ð¾Æ¬Éè¼Æ¹ý³ÌÖдÈíÓ²¼þÒ»ÌåµÄϵͳÑéÖ¤»·¾³¡±£ºÒ»ÊÇоƬÁ÷Ƭ»ØÀ´Ç°ÎªÈí¼þÍŶÓÌṩµ÷ÊÔÇý¶¯Èí¼þµÄƽ̨£¬¼ÓËÙоƬÉÏÊÐʱ¼ä£»¶þÊÇ×÷ΪоƬ·ÂÕæÑéÖ¤µÄÒ»¸ö²¹³ä£¬ÒòΪFPGA¿ÉÒÔ½ÓÕæÊµµÄÓ²¼þ×Ó¿¨£¬¸ú·ÂÕæÊ¹ÓõÄÈí¼þÄ£ÐÍÓÐÒ»¶¨²î±ð£¬ÓÐÒ»¶¨»ú»á·¢ÏÖÒþ±ÎµÄbug £»´ËÍâFPGAÏà¶ÔÈí¼þ·ÂÕæÒÔ¼°EmulatorËٶȿ죬±È½ÏÊʺÏһЩºÄʱ½Ï¶àµÄ´ó³¡¾°case¡£¹ÊÔÚоƬÉè¼ÆÔ½À´Ô½´óµÄÇé¿öÏ£¬ÆäÉè¼ÆÄ¿±êÊÇÄÜʹÓöà¿ÅFPGAоƬ¿ìËÙʵÏÖ¸ßÐÔÄܵÄȫϵͳÑéÖ¤ÔÐÍ£¬²¢Ö§³Ö¸Ã³¡¾°Ïµĵ÷ÊÔÐèÇó¡£
Ê×ÏÈ£¬Ëü´îÔØµÄÍùÍùÊǽϴóÈÝÁ¿ºÍ¶àƬµÄFPGAоƬ£¬ÈçXilinx VU440/VU19P, Intel µÄStratix 10µÈ£¬ÄÇôËü¾Í·Ç³£ÊʺϽøÐи´ÔÓËã·¨¡¢CPU/GPUÀàÐÍоƬµÄÑéÖ¤ºÍʵÏÖ£º±ÈÈçÈ˹¤ÖÇÄÜ£¬¶àºËRISC-V´¦ÀíÆ÷IPµÈ¿ª·¢»·¾³£»Èç¹ûÊÇSoCоƬ»ò´óÐÍIPµÄ¿ª·¢£¬ÄÇô¿ÉÒÔ½«FPGAϵͳ¾¹ý»¥ÁªÀ©Õ¹ÈÝÁ¿ºó£¬½øÐÐÑéÖ¤¡£
Æä´Î£¬FPGAÔÐÍÑé֤ϵͳ¸üÖØÒªµÄÄ¿±ê£¬ÊÇ´ÓÓ²¼þºÍÈí¼þÉÏÖ§³Ö´óÐÍоƬ¹¦ÄÜÔÐ͵ĸ÷ÏîÒªÇó¡£ÈçµÍÑÓ³Ù²¢ÐÐIO½Ó¿Ú¡¢¸ß´ø¿íSerdes½Ó¿Ú¡¢×Ô¶¯»¯Éè¼Æ·Ö¸îµ½¶àƬFPGA²¢ÓÅ»¯ÐÔÄÜ¡¢¶àƬFPGAµÄÐźŵ÷ÊÔ¡¢ÔÐÍϵͳ¹æÄ£µÄÈÎÒâËõ·Å¡¢¸÷ÖÖÈíÓ²¼þ½Ó¿ÚÀ©Õ¹·½°¸£¬µÈµÈ¡£ÕâЩĿ±ê¾ö¶¨ÁËÔÐÍÑé֤ϵͳÐèÒª¸üרÃŵÄÉè¼Æ£¬ÌرðÊÇÅäÌ×µÄ×Ô¶¯»¯¹¤¾ß£¬ÒòΪ¶ÔÁ½ÈýƬFPGAÒÔÉϵÄÖдóÐÍÉè¼Æ£¬ÊÖ¹¤ÊµÏÖÉè¼Æ·Ö¸îºÍÓÅ»¯µÄͶÈëÌ«´ó£¬Éè¼ÆÍŶӸüÐèÒª×Ô¶¯»¯¹¤¾ß¡£
Çø·ÖÁËFPGA¿ª·¢°åºÍFPGA ÔÐÍÑé֤ϵͳƽ̨µÄÓ¦Óó¡¾°ºÍÉè¼ÆÄ¿±ê£¬ÎÒÃǾÍÃ÷°×ËüÃÇΪʲô»áÓÐÈç´Ë´óµÄ²îÒ죬±¾ÖÊÉϾÍÊÇ»ùÓÚÉè¼ÆÄ¿±êµÄ¹¦ÄÜÈ¡Éá¡£ÏÂÃæÎÒÃÇ·Ö±ð½éÉÜÒ»ÏÂÕâ2ÖÖ²úÆ·ºÍËüÃǵĹؼüµã£º
FPGA¿ª·¢°å
ÎÒÃǾÍÏÈ´ÓFPGA¿ª·¢°å˵Æð¡£ÎªÁËʵÏÖ»ùÓÚFPGAоƬµÄ¿ª·¢¡¢²âÊÔ¡¢Ó¦Óã¬ÎÒÃÇÐèÒªÔÙΪËü¼ÓÉÏһϵÁеÄÍâΧµç·¼°Ôª¼þ£¬ÕâÑùFPGA²ÅÄܹ»Õý³£µØÉϵ硢ÅäÖᢼÓÔØÔËÐгÌÐò¡¢ÌṩÏàÓ¦µÄÍâÉè½Ó¿Ú¼°³¤Ê±¼ä±£³ÖÎȶ¨µÄ¹¤×÷״̬¡£ÒÔĿǰ×î¼òµ¥µÄʵÏÖ·½Ê½À´¿´£¬Õâ¾ÍÊÇFPGA¿ª·¢°å¡£Ç°ÎÄÌáµ½ËüµÄÖ÷Òª³¡¾°ÊÇΪFPGAоƬµÄÖ±½ÓÓ¦Óöø×ö¿ª·¢£¬Òò´ËÕâÀà²úÆ·µÄÉè¼ÆÖØµãÒ²ÔÚÓÚ¾¡Á¿½Ó½üÄ¿±êÓ¦ÓÃϵͳ¡£
ͼ2 Xilinx¹«Ë¾³öÆ·µÄZynqϵÁÐFPGA¿ª·¢°å
Ê×ÏÈ£¬´ÓÍâ¹ÛÉÏ¿´£¬µ¥¿ÅFPGA¿ª·¢°å³ß´ç¿ÉÒÔ×öµ½ºÜС£¬Í¨³£²»»á³¬¹ýÒ»ÕÅA4Ö½µÄ´óС£¬·½±ã°Ú·ÅºÍÒÆ¶¯¡£ÉÏÃæ²¼¾ÖFPGA Ö÷оƬ¡¢µçÔ´´¦ÀíоƬ¡¢Íⲿ½Ó¿Ú²¿¼þ¡¢µçÈݵç×èµÈ·ÖÁ¢Ôª¼þ¡£Xilinx¡¢Intel¡¢LatticeµÈFPGAÔ³§¶¼ÍƳö¹ý¸÷ÖÖ¸÷ÑùµÄ¿ª·¢°å¡£ÆäÖв»¹âÓд«Í³·¶³ëµÄFPGA¹¦ÄÜ¿ª·¢°å£¬Ò²ÓвÉÈ¡ARMºË + FPGA¼Ü¹¹µÄSoC½â¾ö·½°¸£¬ÈçXilinx Zynq¡¢Intel Arria10µÈµÈ¡£ARM½Ó¿Ú×ÊÔ´·á¸»¡¢¹¦ºÄµÍ£¬É󤽸ÐжàýÌåÏÔʾ¡¢Âß¼¿ØÖÆ£»¶øFPGAÉ󤽸ÐжàͨµÀ»ò¸ßËÙAD²É¼¯¡¢½Ó¿ÚÍØÕ¹£¬ÒÔ¼°¸ßËÙÐźŴ«ÊäµÈ¡£Á½ÕßÏ໥½áºÏ£¬¿ÉÂú×ã¸÷ÖÖ¹¤ÒµÏÖ³¡Ó¦Óó¡¾°¡£
Æä´Î£¬´ÓÓ²¼þ¼Ü¹¹ÉÏ£¬ÒòΪһ°ã×Ô´øÁ˺ܶೣÓÃÍâÉè½Ó¿Ú£¬¶øÇÒÒÔµ¥¿ÅоƬµÄÓ¦ÓÃΪÖ÷£¬ËùÒÔFPGA¿ª·¢°å¶Ô»¥ÁªºÍÀ©Õ¹µÄÒªÇ󲻸ߣ¬ÓÐʱ»áÔÚ°åÉÏÓжà¿ÅFPGAоƬ»¥Á¬£¬µ«Í¨³£²»¿¼ÂǶà°åÖ®¼äµÄ¸ßËÙÁ¬½ÓÐèÇ󣬱Ͼ¹Ì«´ó¹æÄ£µÄÂß¼Éè¼ÆÒªÓõ½¶à¿ÅFPGA£¬ÔËÐÐÐÔÄܺ͵÷ÊÔÄÜÁ¦»áÊܴܺóÓ°Ïì¡£
ÔÚÈí¼þ·½Ã棬Óû§Ö÷ÒªÒÀ¿¿FPGA³§ÉÌÌṩµÄÒ»Ì廯Èí¼þ(ÈçXilinx¹«Ë¾µÄVivado£¬Intel¹«Ë¾µÄQuartus£¬Lattice¹«Ë¾µÄDiamondµÈ)À´ÊµÏÖFPGA¹¤³ÌµÄ×ۺϼ°²¼¾Ö²¼Ïß¡£µ±È»£¬Ò²ÓÐһЩʵÁ¦¼¼ÊõÐÛºñµÄµÚÈý·½³§ÉÌÌṩÁ˲»´íµÄ×ۺϹ¤¾ß£¨ÈçSynplify, PrecisionµÈ£©£¬ÏÈÓÉÉè¼ÆÔ´´úÂëµÃµ½Íø±í£¬ÔÙ½»ÓÉÔ³§Èí¼þ½øÐв¼¾Ö²¼Ïß¡£µ«ÒÔÉÏÕâЩ¹¤¾ß¶¼²»Ö§³Ö¶àƬFPGA³¡¾°£¬Òò´ËFPGA¿ª·¢°åÓÃÓÚ³¬¹ýµ¥Æ¬FPGAÈÝÁ¿µÄоƬÉè¼Æ»òIPÑé֤ʱ£¬¶¼Ö»ÄÜÓÉÓû§×Ô¼ºÊÖ¹¤×öÉè¼Æ·Ö¸î£¬ÕâÐèÒª½â¾öºÜ¶àʱÖÓ¡¢×ÊÔ´¡¢ÐÔÄÜ¡¢µ÷ÊÔµÄÎÊÌ⣬¶Ô¹¤³ÌʦҪÇó¸ß£¬Í¶Èëʱ¼ä¶à¡£
´ÓÊÐÃæÉϵÄFPGA¿ª·¢°åÏúÊÛÇé¿öÀ´¿´£¬Ä¿Ç°Ò»Ð©¹ú²ú³§ÉÌÕ¼ÓеķݶîÒ²ºÜ¸ß¡£ËûÃÇÌṩµÄ¿ª·¢°åÍùÍùÅäÖÃÁËÖеͶ˵ÄFPGAоƬ£¨°üÀ¨Óйú²ú¼°½ø¿ÚµÄ£©£¬²¢×ÔÐÐÉè¼Æ/ÖÆÔìPCB°å¡£ÅäÌ׷ḻµÄѧϰ×ÊÁÏ£¬Í¬Ê±ÔÚ°åÉϼ¯³ÉÁ˳£ÓõĽӿÚÄ£¿é£¬ÈçFlash¡¢HDMI¡¢DDR4£¬PCIeµÈ£»¼ÓÖ®ÕâЩ¿ª·¢°åµÄÊÛ¼Û²¢²»°º¹ó£¬Ò»°ã´Ó¼¸°ÙÔªµ½¼¸Ç§ÔªÈËÃñ±Ò²»µÈ£¬ÊʺϴóרԺУºÍ×ÔѧµÄÈËȺ¹ºÂòʹÓá£
FPGAÔÐÍÆ½Ì¨
Ëæ×ÅĿǰ¼¯³Éµç·µÄ²»¶Ï·¢Õ¹£¬Éè¼Æ¹æÄ£µÄ´óÐÍ»¯£¬µ¥¿ÅFPGA°åÔÚÈÝÁ¿ÉϾÍÏÔµÃ×½½ó¼ûÖ⣬ÒѾÎÞ·¨Âú×ãÉè¼ÆÐèÇó¡£Ê×ÏÈ£¬ÒÔĿǰ¹úÄÚÍ·²¿µÄCPU¡¢GPUÉè¼Æ¹«Ë¾µÄÉè¼Æ¹æÄ££¬µ¥¿ÅICоƬµÄÉè¼ÆÌåÁ¿£¬ÐèÒªÕ¼Óõ½¼¸Ê®¿ÅXilinx VU440¼¶±ðFPGAµÄÇé¿ö£¬ÒÑÂżû²»ÏÊ¡£
ÔÚÕâÖÖ±³¾°Ö®Ï£¬FPGAϵͳ¹©Ó¦³§ÉÌ¿ªÊ¼×ÅÊÖÑо¿¶à¿ÅFPGAµÄϵͳ½â¾ö·½°¸¡£ÆäÖоͰüÀ¨ÔÚµ¥¿éµÄPCB°åÉÏ×°Åä¶à¿ÅFPGA¼°¶à¸öFPGAϵͳ֮¼ä½øÐл¥Áª¡£
¾¹ýÒ»¶Îʱ¼äµÄ·¢Õ¹ºÍ̽Ë÷£¬FPGAÔÐÍÑé֤ƽ̨²úÆ·Ó¦Ô˶øÉú¡£Ö®ËùÒÔ¾³£³ÆÖ®Îª¡°Æ½Ì¨¡±»ò¡°ÏµÍ³¡±£¬Ê×ÏÈÔÚÓ²¼þ½á¹¹Éϱȵ¥°åÐÎʽµÄFPGA¿ª·¢°å¸´ÔӺܶ࣬Æä´ÎFPGAоƬ³§ÉÌÌṩµÄÈí¼þ¹¤¾ßÎÞ·¨Ö§³ÖÕâô¸´ÔÓµÄ¶àÆ¬FPGAʵÏÖ£¬ÐèÒªÅäÌ×רҵµÄFPGAÔÐÍʵÏÖÏà¹ØÈí¼þ¹¤¾ß¡£
Ò»Ì×ÓÅÐãµÄFPGAÔÐÍÑé֤ϵͳ£¬Ó¦¸Ã¾ßÓÐÒÔϲúÆ·ÌØÐÔ£º
• »ùÓÚÄ£¿é»¯µÄÉè¼Æ/¿ÉÉìËõµÄÑé֤ƽ̨¹æÄ£
• ÔÚ±£Ö¤Ò»¶¨µÄ¸ßËÙ·ÂÕæÐÔÄܵÄǰÌáÏÂÌṩÑéÖ¤ÍêÕûÐÔ
• Ìṩ´ÓÈí¼þÔçÆÚ¿ª·¢µ½ÏµÍ³¼¶ÑéÖ¤µÄ½â¾ö·½°¸
• Ìṩ´Ó×ۺϡ¢×Ô¶¯Ä£¿é·Ö¸î ¡¢²¼¾Ö²¼Ïß¡¢FPGA bit²úÉú¡¢ÏÂÔØ£¬ÒÔ¼°ÔÚÏß/ÀëÏßDebugµÄÕûÌ×Á÷³Ì
• Ìṩ·á¸»µÄµ÷²âÊֶΣ¬°ïÖúÓû§¿ìËÙ¶¨Î»ÎÊÌ⣬Ò×ÓÚBring Up
• Ìṩ·á¸»µÄ½Ó¿Ú×Ó°åºÍÍâ²¿ÕæÊµÉ豸ÏàÁ¬
• ÌṩÈí¼þ½Ó¿ÚÓëÍⲿÈí¼þͨѶ
• Ìṩ·á¸»µÄIO½Ó¿Ú£¬ÒÔ¼°¸ßËÙSerdes½Ó¿ÚÓÃÓÚpartition»¥Á¬ÒÔ¼°ÍâÉè×Ó¿¨µÄ»¥Á¬
Èç±¾ÎÄ¿ªÍ·ËùÊö£¬¸´ÔÓËã·¨¡¢CPU/GPUÀàÐÍоƬµÄÑéÖ¤ºÍʵÏÖ¶¼ÊÇÊʺÏÔÚFPGAÔÐÍÑé֤ϵͳÉϽøÐеġ£²»¹ý£¬ÓÉÓÚоƬ¹æÄ£µÄÈÕÒæ´óÐÍ»¯£¬µ¥¿ÅµÄϵͳÍùÍùÒѾÎÞ·¨ÈÝÄÉÏÂÒ»¸ö´óÐ͵ÄIP/SoCÁË¡£
Õâ¸öʱºòÎÒÃÇÐèÒª°Ñ¶à¸öÔÐÍϵͳ½øÐл¥Áª£¬°Ñ·Ö¸îºóµÄÂß¼ÏÂÔØµ½ËùÓеÄϵͳµ±ÖУ¬ÕâÑùÀ´½øÐÐÕû¸öÉè¼ÆµÄÑéÖ¤ºÍµ÷ÊÔ¹¤×÷¡£ÄÇôÒÔĿǰµÄPartition»¥Áª¼¼ÊõÊֶο´£¬Ö÷Òª·ÖΪµ¥¶ËIO¡¢²î·ÖLVDS IOºÍ¸ßËÙSerdes IO (ÈçXilinxµÄGTH )»¥ÁªµÄ·½Ê½¡£
Serdes IO»¥Áª¿ÉÒÔ´ïµ½ºÜ¸ßµÄ´ø¿í£¨Bandwidth£©£¬µ«¸ù¾ÝÊÕ·¢Æ÷ÄÚ²¿Ðźſí¶ÈºÍ´«ÊäÐÒéµÄ²»Í¬£¬¼ÓÉÏ´®²¢×ª»»ºÍEncoder/DecoderµÄʱ¼ä¿ªÏú£¬»á²úÉú¼¸Ê®µ½¼¸°ÙnsµÄ¶îÍâÑÓ³Ù£¬¿ÉÄÜÓ°Ïì·Ö²¼ÓÚ¶à¿ÅFPGAоƬÉϵÄϵͳÔÐÍÐÔÄÜ£»¶øµ¥¶ËIOµÄÑÓ³ÙÒ»°ã¾ÍÔÚns¼¶±ð£¬¹ÊÆä·Ö¸îºóµÄϵͳÐÔÄÜ»á¸ü¸ß£¬µ«Õâ¶Ô²¢Ðе¥¶ËIOÐźÅÁ¬½ÓÆ÷µÄÉè¼ÆÌá³öÁ˺ܸߵÄÒªÇó£¬Ä¿Ç°°üÀ¨SynopsysÒÔ¼°Ð¾»ªÕÂÉÙÊýFPGAÔÐÍÆ½Ì¨Äܹ»´ïµ½1.4GbpsµÄ½Ï¸ßËÙÂÊ¡£
ÔÚʵ¼ÊÔÐÍϵͳµÄºËÐÄÉè¼Æ·Ö¸îÖУ¬µ¥¶ËIOÁ¬½ÓÆ÷Óõøü¶àһЩ£¬ÔÚÁ¬½Ó¶ÀÁ¢µÄ¸ßËÙÍâÉèºÍ½Ó¿Úʱ£¬Serdes¸ßËÙÁ¬½ÓÆ÷Óõøü¶àһЩ¡£ÕâÀà¸ßËÙ»¥Áª½Ó¿Ú¼°ÆäÏßÀµijɱ¾¶¼ºÜ¸ß£¬µ«¶ÔÓÚÔÐÍϵͳµÄÉè¼ÆÄ¿µÄÀ´ËµÊDZØÐëµÄ£¬ÕâÒ²ÊÇΪʲôFPGAÔÐÍϵͳµÄ¼Û¸ñÒªÔ¶Ô¶¸ßÓÚFPGA¿ª·¢°åµÄÔÒòÖ®Ò»¡£
˵ÍêÁËÓ²¼þ·½Ã棬ÔÙ¿´Èí¼þ·½Ã棬Èç¹ûÓõ½Á˶à¿ÅµÄFPGAϵͳ£¬ÄÇô¶ÔÓÚ´óÉè¼ÆµÄ·Ö¸îÎÊÌâ±äµÃÊ®·ÖÖØÒª¡£¶ÔÓÚÒ»¸ö´óÉè¼Æ£¬Èí¼þ¿ÉÒÔ×Ô¶¯»òÕßÊÖ¶¯µÄ°ÑÂß¼·Ö¸îµ½¼¸Æ¬FPGAµ±ÖУ¬¸ù¾ÝÁ¬Ïß×ÊÔ´Çé¿ö²åÈëTDM£¨Ê±·Ö¸´Ó㩵ÄIP£¬ÔÙ¶Ô·Ö¸îºóµÄÂß¼½øÐÐʱÐòÓÅ»¯£»Èí¼þÄܹ»±£Áô¶¥²ãµÄ¶Ë¿ÚÐźÅÃû³Æ¡£´Óµ÷ÊÔ·½Ã濼ÂÇ£¬ÐèҪ̽¼°Éè¼ÆµÄÄÚ²¿µÄÐźš£
Ëæ×ÅÉè¼Æ¹æÄ£Ôö´ó£¬³ýÁËÈí¼þÔËÐÐËÙ¶ÈÖ®Í⣬×ۺϽ׶νøÐÐTiming Driven SynthesisÓÅ»¯µÄ¶¯×÷£¬ÒÔʵÏÖÈßÓàÂß¼µÄÓÅ»¯ºÍʱÐòÉϵÄÌáÉý£¬Òò´ËÈí¼þµÄËã·¨ÓÅ»¯ÏÔµÃÊ®·ÖÖØÒª¡£´ÓÐÔÄÜÖ¸±êÉÏ¿´£¬Ö÷ÒªÊÇ·Ö¸îµÄ¹¦ÄÜÕýÈ·ÐÔ¡¢Âß¼ºÍʱÐòµÄÓÅ»¯¶È¼°Timing-driven¼õÉÙhopÌáÉý±àÒëÐÔÄÜ¡£ÀûÓ÷ֲ¼Ê½¼¼Êõ£¬¼õÉÙÉè¼Æ¹æÄ£¶ÔCPUʱ¼äºÍÄÚ´æÔì³ÉµÄÓ°Ïì¡£
Ŀǰ£¬¸÷´óÔÐÍÑé֤ƽ̨¹©Ó¦É̶¼ÔÚÈí¼þÉϼӴóÁËͶÈë¡£Ò»¿îÓµÓгöÉ«µÄFPGAÔÐÍÈí¼þ¹¤¾ßÓ¦¾ß±¸ÒÔϵÄÌØµã£º
• ×ÛºÏʱ½øÐÐרÃŵÄʱÐòÇý¶¯ÓÅ»¯
• ×ۺϽ׶γä·ÖÀûÓò¢Ðл¯ÊֶνµµÍÉè¼Æ¹æÄ£¶Ô×ÛºÏʱ¼äÔì³ÉµÄÓ°Ï죬¾¡Á¿ÓÅ»¯Íø±íµÄʱÐòºÍÃæ»ý
• Ëã·¨ÓÅ»¯¡¢Äܹ»ÊµÏÖ´óÊýÁ¿µÄFPGA×Ô¶¯·Ö¸îÇÒÅäÖüò±ã×ۺϹ¤¾ßÓë·Ö¸î¹¤¾ßÅäºÏ±£ÁôÄÚ²¿ÐźÅÃû³Æ£¬²¢Óë×ۺϹ¤¾ßÅäºÏÓ³ÉäÐźÅÃû³Æ£¬Ö§³ÖRTLÔ´´úÂëµ÷ÊÔ
• ×Ô¶¯²úÉúʱÖÓ²¢´¦ÀíʱÖӵķָ¶ÔÓÚÊýƬÖÁÊýʮƬFPGAµÄ´óÐÍÉè¼ÆÊµÏÖºÜÖØÒª
• ×î´ó³Ì¶È±£ÁôÔÀ´´úÂëÉè¼Æ²ã´Î£¬Ìá¸ßÔöÁ¿±àÒë¶ÈºÍ¿Éµ÷ÊÔÐÔ£¬·Ö¸îǰºó¹¦Äܱ£³ÖÒ»ÖÂ
• ·þÎñÆ÷Èí¼þʱÄÚ´æ×ÊÔ´¿ØÖƵõ±
• ±£Ö¤·Ö¸î½á¹ûÕýÈ·µÄÇé¿öÏ£¬ºÄʱ¶Ì
ÕâÑùµÄÅäÌ×Èí¼þ£¬Äܹ»Ò»Ì廯µØÍê³É×ۺϼ°·Ö¸î²½Ö裬½«ÎªÕû¸öÔÐÍÑé֤ϵͳ´ó´ó¼Ó·Ö¡£Ëæ×ÅÉè¼Æ¹æÄ£µÄÈÕÒæÔö³¤£¬Óû§¶ÔÈí¼þµÄ×ÛºÏ/·Ö¸î¹¦ÄÜÊ®·Ö×¢ÖØ£»Èí¼þ¹¦ÄܳöÉ«£¬ÎÞÒÉÄܶÔÓ²¼þϵͳµÄÏúÊÛ²úÉú¼«´óµÄ´Ù½ø£»·´Ö®£¬Ó²¼þϵͳ×öµÄºÜ´ó£¬Èí¼þµÄ¹¦Äܸú²»ÉÏ£¬ÉõÖÁÒªÒÀÀµÍⲿµÄ×ۺϻò·Ö¸î¹¤¾ß£¬ÎÞÒÉΪÕûÌ×ϵͳÍÏÁ˺óÍÈ£¬ÎÞ·¨ÊµÏÖÉÏÊöµÄ¹Ø¼ü¹¦ÄÜ¡£
×Ü ½á
×ÛÉÏËùÊö£¬ÎÒÃÇÔÙÀ´¿´Ò»ÏÂFPGA¿ª·¢°å¡¢FPGAÔÐÍÑé֤ϵͳ֮¼äµÄ¶Ô±È±í¸ñ£º
ͼ3 FPGA¿ª·¢°å¡¢FPGAÔÐÍÑé֤ϵͳ֮¼äµÄ¶Ô±È±í¸ñ
ÏÂÃæµÄͼÀý±ãÓÚ¶ÁÕ߸üÈÝÒ×µÄÀí½âËüÃǶþÕßÖ®¼äµÄ¹ØÏµ£º
ͼ4 FPGA¿ª·¢°åºÍÔÐÍϵͳӦÓÃÉϵĽ»¼¯Í¼Ê¾
´ÓÓ¦Óó¡¾°ÉÏ¿´£¬ÎÒÃÇ¿´µ½£¬FPGA¿ª·¢°åÊʺÏСÐÍÉè¼ÆµÄÊÖ¹¤ÑéÖ¤¡¢Ìض¨ÐÒéµÄ¿ª·¢£¬¼°ÔÚÕû¸öϵͳÖÐÆðµ½¿ØÖƵÄ×÷Óõȵȣ»¶øFPGAÔÐÍϵͳÊʺÏÖдóÐÍÉè¼ÆºÍ¸´ÔÓËã·¨µÄ×Ô¶¯»¯ÑéÖ¤¼°Á¬½ÓÕæÊµÍâΧӲ¼þµÄ¸ßÐÔÄÜϵͳÑéÖ¤/µ÷ÊÔ£¬ÈíÓ²¼þÐͬµ÷ÊԵȵȡ£ÔÚIPÑéÖ¤·½Ã棬FPGA¿ª·¢°åºÍÔÐÍϵͳÓÐÒ»¶¨µÄÖØºÏ¶È¡£
ÒÔÉϾÍÊǹØÓÚFPGA¿ª·¢°åºÍÔÐÍÑé֤ϵͳÕâ2ÖÖ²»Í¬µÄÊý×ÖÉè¼ÆÑé֤ƽ̨µÄ¶Ô±È½éÉÜ£¬Ð»Ð»£¡
·ÖÏíµ½£º
²ÂÄãϲ»¶