داﻧﺸﮕﺎه اﻣﻴﺮﻛﺒﻴﺮ85
www.IranMedar.com ﺑﺴﻤﻪ ﺗﻌﺎﻟﻲ
FPGAو ﺗﺎرﻳﺨﭽﺔ آن
ﻣﻘﺪﻣﻪ: ﺳﺎﻟﻬﺎ ﭘﻴﺶ ﻛﻪ ﻃﺮاﺣﻲ دﻳﺠﻴﺘﺎل ﭘﺎ ﺑﻪ ﻋﺮﺻﺔ وﺟﻮد ﻧﻬﺎد و ICﻫﺎي اﺳﺘﺎﻧﺪاردي ﭼـﻮن ﮔﻴﺘﻬـﺎ ،ﻓﻠﻴـﭗ ﻓـﻼپ ﻫـﺎ ،ﻟـﭻ ﻫـﺎ ﺷﻤﺎرﻧﺪه ﻫﺎو ...ﺳﺎﺧﺘﻪ ﺷﺪﻧﺪ ﺑﻪ ﺗﺪرﻳﺞ ﭘﺮدازﻧﺪه ﻫﺎﻳﻲ ﺑﺎ ﻗﺪرت ﻣﺤﺪود ﻛﻪ اوﻟﻴﻦ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻫﺎي ﺷﺨﺼﻲ ﺑـﺮ اﺳـﺎس آﻧﻬـﺎ ﻃﺮاﺣﻲ ﺷﺪه ﺑﻮد دﻧﻴﺎي دﻳﺠﻴﺘﺎل را ﺑﻪ وﺟﻮد آوردﻧﺪ ،ﺗﺼﻮر روزي ﻛﻪ ﻓﺎﺻﻠﺔ ﺳﺨﺖ اﻓﺰار و ﻧﺮم اﻓﺰار ﺑﻪ ﺣﺪ ﻛﻨﻮﻧﻲ ﺑﺮﺳـﺪ ﺑﻪ ﻃﻮري ﻛﻪ ﺗﻤﺎم ﻣﺮزﻫﺎي ﻃﺮاﺣﻲ را در ﻧﻮردﻳﺪه و ﺳﺨﺖ اﻓﺰار ﺑﻪ ﻧﺮﻣﻲ و اﻧﻌﻄﺎف ﭘﺬﻳﺮي درآﻳﺪ ﺑﺴﻴﺎر دﺷﻮار ﺑﻮد. اﻣﺎ ﺑﻌﺪ ﻫﺎ ﺑﺎ ﻃﺮاﺣﻲ ﺣﺎﻓﻈﻪ ﻫﺎي ﻗﺎﺑﻞ ﺑﺮﻧﺎﻣﻪ رﻳﺰي دوﺑﺎره و ﻓﻦ آوري EPROMﺣﺎﻓﻈﻪ ﻫﺎي ﭘﺎﻳـﺎي ﺑـﺎ ﻗﺎﺑﻠﻴـﺖ ﺑﺮﻧﺎﻣـﻪ رﻳﺰي و ﭘﺎك ﺳﺎزي و PALآراﻳﻪ ﻫﺎي ﻣﻨﻄﻘﻲ ﻗﺎﺑﻞ ﺑﺮﻧﺎﻣﻪ رﻳﺰي ،و ﺳﺮاﻧﺠﺎم ﻓﻦ آوري آراﻳﻪ ﻫﺎي ﺳﻮﺋﻴﭻ ﻫـﺎي ﻓﻴﻮزﻫـﺎي ﻗﺎﺑﻞ ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﭼﻨﺪﺑﺎره ،اﻧﻘﻼﺑﻲ ﻧﻮﻳﻦ را درﻋﺮﺻﻪ ﻃﺮاﺣﻲ دﻳﺠﻴﺘﺎل ﺑﻪ وﺟﻮد آورد ﻛﻪ ﻣﻔﻬﻮم ﻃﺮاﺣﻲ دﻳﺠﻴﺘﺎل را دﭼـﺎر ﺗﺤﻮﻟﻲ ﻋﻈﻴﻢ در ﻋﺮﺻﻪﻫﺎي دﻳﺪﮔﺎه ﻣﻌﻤﺎري ،ﺣﺠﻢ ﻃﺮاﺣﻲ ،ﺳﺮﻋﺖ و ﻧﻮع ﻧﮕﺮش ﺑﻪ ﻃﺮاﺣﻲ دﻳﺠﻴﺘﺎل ﻧﻤﻮده اﺳﺖ. ﺑﻪ ﻃﻮري ﻛﻪ اﻣﺮوزه FPGAﻫﺎ آراﻳﻪ ﻫﺎي ﮔﻴﺘﻲ ﻗﺎﺑﻞ ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻣﻴﺪاﻧﻴﻴﻚ ﺑﻮم ﻧﻘﺎﺷﻲ ﺳﻔﻴﺪ را در اﺧﺘﻴﺎر ﻃﺮاح ﻗﺮار ﻣﻲ دﻫﻨﺪﻛﻪ ﺑﻪ او اﺟﺎزه ﻣﻲ دﻫﺪ ﺗﺎ ﻃﺮاﺣﻲ دﻳﺠﻴﺘﺎل ﺧﻮد را آﻧﭽﻨﺎن ﻛﻪ ﻣﻲ ﺧﻮاﻫﺪ و ﺑﺎ ﻫﺮ ﺣﺠﻢ و ﭘﻴﭽﻴﺪﮔﻲ ﻻزم ،ﻃﺮاﺣـﻲ و ﺳﭙﺲ ﺑﻪ ﺟﺎي اﺗﺨﺎب ICﻫﺎي اﺳﺘﺎﻧﺪارد و ﺟﺪا از ﻫﻢ و ﻛﻨﺎر ﻫﻢ ﻗﺮار دادن آﻧﻬﺎ در روي ﻳﻚ ﻣﺪار و وﺻـﻞ ﻛـﺮدن آﻧﻬـﺎ ازﻃﺮﻳﻖ ﻳﻚ ﺑﻮرد ﻣﺪار ﭼﺎﭘﻲ )،(PCBﺑﺎ اﺳﺘﻔﺎده از ﻳﻜﻲ از زﺑﺎﻧﻬﺎي ﺗﻮﺻﻴﻒ ﺳﺨﺖ اﻓـﺰاري ﻧﻈﻴـﺮ ،VHDLﻫـﺮ ﻳـﻚ از ﻗﻄﻌﺎت دﻳﺠﻴﺘﺎﻟﻲ ﻣﻮرد ﻧﻴﺎز را ﻧﻮﺷﺘﻪ و ﺑﺎ وﺻﻞ ﻛﺮدن ﻧﺮم اﻓﺰاري آﻧﻬﺎ ،ﺳﺮاﻧﺠﺎم ﻓﺎﻳﻞ ﻛﺎﻣﭙﺎﻳﻞ ﺷﺪه ﻧﻬﺎﻳﻲ را از ﻃﺮﻳـﻖ ﻳـﻚ راﺑﻂ ﺳﺨﺖ اﻓﺰاري ﺑﺮ روي ﻳﻚ ﺑﺴﺘﻪ ﺳﺨﺖ اﻓﺰاري ﺧﺎم ﺑﺎ ﺗﻌﺪاد ﭘﺎﻳﻪ ﻫﺎي ﻣﻮرد ﻧﻴﺎز ﺑﺮﻧﺎﻣﻪ رﻳـﺰي ﻛـﺮده و از اﻳـﻦ IC ﺟﺪﻳﺪ "ﺧﻮد ﺳﺎﺧﺘﻪ " اﺳﺘﻔﺎده ﻛﻨﺪ. ﺑﺮرﺳﻲ ﺳﺎﺧﺘﺎر داﺧﻠﻲ : FPGAرا ﻣﻲﺗﻮان ﺑﻪ ﺻﻮرت ﺟﺰﻳﺮه ﻫﺎي ﻣﺠﺰاﻳﻲ در ﻧﻈﺮ ﮔﺮﻓﺖ ﻛﻪ ﺗﻮﺳﻂ ﺷﺎﻫﺮاهﻫﺎﻳﻲ ﺑﻪ ﻫﻢ ﻣﺘـﺼﻞ ﻣـﻲﮔﺮدﻧـﺪ .ﺑـﻪ ﻋﺒﺎرﺗﻲ FPGAﺷﺎﻣﻞ ﻳﻚ ﺳﺮي ﺑﻠﻮك ﻣﻨﻄﻘﻲ و ﻧﻴﺰ ﺳﻴﻢ ﻫﺎي ﺑﻴﻦ آﻧﻬﺎ ﻣﻲ ﮔﺮدد. ﺟﻮاد ﻣﺮادي
1
داﻧﺸﮕﺎه اﻣﻴﺮﻛﺒﻴﺮ85
www.IranMedar.com
دو ﭘﺪ ورودي و ﺧﺮوﺟﻲ ﻧﻴﺰ در اﻧﺘﻬﺎي ﻫﺮ ﻳﻚ از ردﻳﻒﻫﺎ ﻳﺎ ﺳﺘﻮاﻧﻬﺎ ﻗﺮار داده ﺷﺪه اﺳﺖ .ﺧﻄـﻮط اﺗـﺼﺎل دﻫﻨـﺪة ﺑـﻴﻦ ﺑﻠﻮﻛﻬﺎ از ﻧﻈﺮ ﺗﻌﺪاد و اﻧﺪازه ﻳﻜﺴﺎن ﻣﻲﺑﺎﺷﻨﺪ ﻛﻪ درﺷﻜﻞ زﻳﺮ ﻧﻴﺰ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ.
ﻫﺮ ﻣﺪاري ﻣﻨﻄﻘﻲ ﻛﻪ روي – FPGAﺑﺎ اﺳﺘﻔﺎده از ﭘﺮوﮔﺮاﻣﺮ_ رﻳﺨﺘﻪ ﻣﻲﺷﻮد ﻃﻮري روي FPGAﭘﻴﺎده ﻣﻲﺷﻮد ﻛﻪ ﺑـﺎ اﺳﺘﻔﺎده از ﺑﻠﻮﻛﻬﺎي ﻣﻨﻄﻘﻲ و ﻣﺴﻴﺮﻫﺎ ﺑﻴﻦ اﻳﻦ ﺑﻠﻮﻛﻬﺎ ﺑﺘﻮاﻧﺪ ﺗﺎﺑﻊ داده ﺷﺪه را اﺟﺮا ﻧﻤﺎﻳﺪ. ﻫﺮ ﺑﻠﻮك ﻣﻨﻄﻘﻲ در FPGAداراي 4ورودي ﺑﻪ ﺟﺪول ﻣﺮاﺟﻌـﻪاي )(Look Up Table-LUTو ﻳـﻚ ﻓﻠﻴـﭗ ﻓـﻼپ، ﻣﻲﺑﺎﺷﺪ -در ﺷﻜﻞ زﻳﺮ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ:
. ﺗﻨﻬﺎ ﻳـﻚ ﺧﺮوﺟـﻲ ﺑـﺮاي اﻳـﻦ ﺑﻠـﻮك وﺟـﻮد دارد ﻛـﻪ ﻣـﻲﺗﻮاﻧـﺪ ﺧﺮوﺟـﻲ ﺛﺒـﺖ ﺷـﺪه )(Registerdﻳـﺎ ﺛﺒـﺖ ﻧـﺸﺪة )(UnRegisterdﻗﺒﻠﻲ را ﺑﻪ ﺧﺎرج اﻧﺘﻘﺎل دﻫﺪ .از آﻧﺠﺎﻳﻲ ﻛﻪ ﭘﺎﻳﻪ Clockﺑﻪ ﻃﻮر داﺧﻠﻲ ﺳﻴﻢ ﻛـﺴﻲ ﺷـﺪه اﺳـﺖ –در ﻧﻮع ﺗﺠﺎري ،-ﻣﻲﺗﻮاﻧﻴﺪ اﻳﻦ ﭘﺎﻳﻪ را ﻧﺎدﻳﺪه ﺑﮕﻴﺮﻳﺪ و در ﻧﻬﺎﻳﺖ ﻫﺮ ﺑﻠﻮك ﺑﻪ ﺷﻜﻞ زﻳﺮ ﺧﻮاﻫﺪ ﺑﻮد.
وﺿﻌﻴﺖ ﻫﺮ ﭘﺎﻳﻪ ورودي ﺑﻪ ﮔﻮﻧﻪ اي اﺳﺖ ﻛﻪ ﻗﺎﺑﻠﻴﺖ اﺗﺼﺎل ﺑﻪ ﻫﺮ ﻳﻚ از ﺑﺨﺶﻫﺎي ﻛﺎﻧﺎل را داﺷﺘﻪ ﺑﺎﺷـﺪ ﺷـﻜﻞ زﻳـﺮ ﺑـﻪ ﻃﻮر ﻛﺎﻣﻞ وﺿﻌﻴﺖ آن را ﺑﻴﺎن ﻣﻲدارد:
ﺟﻮاد ﻣﺮادي
2
داﻧﺸﮕﺎه اﻣﻴﺮﻛﺒﻴﺮ85
www.IranMedar.com
در ﺷﻜﻞ زﻳﺮ ﻧﻴﺰ ﻧﻤﺎﻳﻲ از ﻃﺮﻳﻘﺔ ﺑﺮﻗﺮاري اﻳﻦ اﺗﺼﺎﻻت آورده ﺷﺪه اﺳﺖ .اﻳﻦ ﻛﺎر را ﻣﻴﺘﻮان ﺑﻪ راﺣﺘﻲ ﺑﺎ اﺳﺘﻔﺎده از ﺳﻮﻳﻴﺞ ﻫﺎي MOSFETاﻧﺠﺎم داد .ﺑﺎ ﻓﺮﻣﺎن ﺑﻪ ﻫﺮ ﻗﺴﻤﺖ ﻣﻲﺗﻮان آن ﻣﺴﺮ را ﺑﻪ ﭘﺎﻳﻪ ﻣﺘﺼﻞ ﻧﻤﻮد.
ﺗﻌﺮﻳﻒ ﺧﻄﻮط داﺧﻠﻲ ﻳﺎ ﺑﻪ ﻋﺒﺎرﺗﻲ ﺳﻴﻢ ﻛﺴﻲ داﺧﻠﻲ FPGAﺑﻪ ﻃﻮر ﻛﺎﻣـﻞ از ﻫـﻢ ﻣﺠـﺰا ﻧﻴـﺴﺘﻨﺪ ﺑﻠﻜـﻪ ﺑـﺎ اﺳـﺘﻔﺎده از ﺳﻮﻳﭽﻬﺎﻳﻲ اﻳﻦ ﺧﻄﻮط ﺑﻪ ﻫﻢ راه ﻣﻲﻳﺎﺑﻨﺪ .از اﻳﻦ ﻃﺮﻳﻖ ﻣﻲﺗﻮان از ﺗﻌﺪاد ﺧﻄﻮط ﻛﻤﺘﺮي ﺑﺮاي اﺗﺼﺎل ﻣﻴﺎن ﺑﻠﻮﻛﻬﺎ اﺳـﺘﻔﺎده ﻛﺮد .ﺷﻜﻞ زﻳﺮ اﻳﻦ ﻣﻄﻠﺐ را روﺷﻦ ﺗﺮ ﺑﻴﺎن ﻣﻲدارد:
ﺟﻮاد ﻣﺮادي
3
داﻧﺸﮕﺎه اﻣﻴﺮﻛﺒﻴﺮ85
www.IranMedar.com
ﺳﻮﻳﭻﻫﺎﻳﻲ ﻛﻪ ﺑﺮاي اﺳﺘﻔﺎده در ﻛﺎﻧﺎﻟﻬﺎ اﺳﺘﻔﺎده ﻣﻲﺷﻮﻧﺪ ﻗﺎﺑﻠﻴﺖ ﺑﺮﻧﺎﻣﻪ رﻳﺰي داﺷﺘﻪ و ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺑﺮﻧﺎﻣﻪ و ﺑﻠﻮك ﺑﻨـﺪي آﻧﻬـﺎ ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻣﻲﺷﻮﻧﺪ .اﮔﺮ ﻓﺮض ﻛﻨﻴﻢ ﻛﻪ ﺗﻌﺪاد ﺧﻄﻮط ﺑﻴﻦ ﺑﻠﻮﻛﻬﺎ 3ﺑﺎﺷﺪ ﻣﻲﺗﻮان ﺷﻜﻞ اﻳﻦ ﺳﻮﭼﻬﺎ زا ﺑﻪ ﺻـﻮرت زﻳـﺮ ﻧﺸﺎن داد:
ﻣﻌﻤﻮﻻً ﺗﻜﻨﻮﻟﻮﭘﻲ ﺳﺎﺧﺖ ﭼﻨﻴﻦ ﺳﻮﻳﻴﭽﻬﺎﻳﻲ از ﻧﻮع planerﻳﺎ domain-based switchﻣﻲﺑﺎﺷﺪ. ﺗﻮﺟﻪ داﺷﺘﻪ ﺑﺎﺷﺪ در ﺗﻐﻴﻴﺮ ﻣﺴﻴﺮﻫﺎ ﻫﻤﺎن ﮔﻮﻧﻪ ﻛﻪ در ﺷﻜﻞ ﻧﻴﺰ ﻧﺸﺎن داده ﺷﺪه اﺳﺖ ﺳﻴﻢ ﺷﻤﺎره 1ﺗﻨﻬﺎ ﻣﻲﺗﻮاﻧﺪ ﺑﻪ ﻫﻤـﺎن ﺷﻤﺎره از ﺳﻴﻢ )(1در ﻣﺴﻴﺮ ﺑﻌﺪي ﻣﺘﺼﻞ ﮔﺮدد -از 1ﺑﻪ 2در اﻳﻦ ﺳﻮﻳﻴﭽﻬﺎ اﻣﻜﺎن ﭘﺬﻳﺮ ﻧﻴـﺴﺖ و ﻣـﺴﻴﺮ اﺻـﻠﻲ ﻫﻤﭽﻨـﺎن ﺣﻔﻆ ﻣﻲ ﮔﺮدد. ﺧﻼﺻﻪاي از ﭼﮕﻮﻧﮕﻲ ﻋﻤﻠﻜﺮد و ﻛﺎرﺑﺮد: ﺷﺎﻳﺪ ﺗﺎ ﺑﺤﺎل ﻣﺪارﻫﺎي ﻣﻨﻄﻘﻲ را ﺑﻮﺳﻴﻠﻪ ﮔﻴﺘﻬﺎيNOT , OR , AND ،ﺳﺎﺧﺘﻪ اﻳﺪ .ﺑﺮاي ﺳﺎﺧﺖ ﭼﻨﻴﻦ ﻣـﺪارﻫﺎﻳﻲ (از ﻗﺒﻴﻞ ﺷﻤﺎرﻧﺪه ﻫﺎ ﻛﻨﺘﺮل ﻛﻨﻨﺪهﻫﺎ ،و ) ...اﺑﺘﺪا ﺑﺎﻳﺪ ﺗﻌﺮﻳﻔﻲ از ﻣﺪار در دﺳـﺘﺮس ﺑﺎﺷـﺪ ﺳـﭙﺲ ﺑـﺎ ﺗﻮﺟـﻪ ﺑـﻪ ﻣﻨﻄـﻖ اﻋـﺪاد دودوﻳﻲ ﻳﻚ ﺟﺪول ﺻﺤﺖ ﺑﺮاي ﻣﺪار ﺗﺸﻜﻴﻞ ﻣﻲ ﺷﻮد و ﺣﺎﻟﺘﻬﺎي ﻣﺨﺘﻠﻒ ﻣﻮرد ﺑﺮرﺳﻲ ﻗﺮار ﻣﻲ ﮔﻴﺮد ﺳﭙﺲ ﺑﺎ ﺗﻮﺟﻪ ﺑـﻪ ﺟﺪول ﺻﺤﺖ ﻣﺪار ﺗﻮﺳﻂ ﮔﻴﺘﻬﺎي ﻣﻨﻄﻘﻲ ﻣﺎﻧﻨﺪ NAND , NOT , OR , ANDﻃﺮاﺣﻲ ﻣﻲ ﺷﻮد ﭘﺲ از اﻳﻦ ﻣﺮﺣﻠﻪ ﻧﻮﺑﺖ ﺑﻪ ﭘﻴﺎده ﺳﺎزي ﻣﺪار ﺑﺮروي ﺑﺮد ﺗﻮﺳﻂ آي ﺳﻲ ﻫﺎي ﻣﻨﻄﻘﻲ ﻣﻲ رﺳﺪ و ﻫﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻲ داﻧﻴﺪ ﻳﻜﻲ از وﻗﺖﮔﻴﺮﺗـﺮﻳﻦ وﺧﺴﺘﻪ ﻛﻨﻨﺪه ﺗﺮﻳﻦ ﻣﺮﺣﻠﻪ ﺳﺎﺧﺖ ﻳﻚ ﻣﺪار ﻫﻤﻴﻦ ﻗﺴﻤﺖ اﺳﺖ .ﺑﻌﺪ از اﻳﻦ ﻣﺮﺣﻠﻪ ﻧﻮﺑﺖ ﺑﻪ ﺗﺴﺖ ﻣﺪار ﺟﻬﺖ اﻃـﻼع از درﺳﺘﻲ ﻣﺮاﺣﻞ ﻛﺎر ﻛﺮد ﻣﺪار ﻣﻲرﺳﺪ .اﮔﺮ در ﻳﻜﻲ از ﻣﺮاﺣﻞ ﻗﺒﻞ دﺟﺎر اﺷﺘﺒﺎه ﺷﺪه ﺑﺎﺷﻴﻢ ﻣﻄﻤﺌﻨﺎً در ﻣﺮﺣﻠـﻪ ﺗـﺴﺖ ﻣـﺪار دﭼﺎر ﻣﺸﻜﻞ ﻣﻲ ﺷﻮﻳﻢ .در ﺻﻮرت اﺷﺘﺒﺎه در ﻣﺮاﺣﻞ ﻗﺒﻞ ﺑﺎﻳﺪ ﺗﻤﺎم ﻣﺮاﺣﻞ را از آﺧﺮ ﺑﻪ اول ﻳﻚ ﺑﻪ ﻳـﻚ ﭼـﻚ ﻛﻨـﻴﻢ ﺗـﺎ ﺑﺘﻮاﻧﻴﻢ اﺷﺘﺒﺎﻫﺎت اﺣﺘﻤﺎﻟﻲ ﻣﻮﺟﻮد در ﻧﺤﻮه ﺑﺴﺘﻦ و ﺳﻴﻢ ﻛﺸﻲ ﻣﺪار ،ﻃﺮاﺣﻲ ﻣـﺪار را از روي ﺟـﺪول ﺻـﺤﺖ و درﺳـﺘﻲ ﺟﺪول ﺻﺤﺖ را ﺑﺮﻃﺮف ﻛﻨﻴﻢ .ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﻣﻄﺎﻟﺐ ﮔﻔﺘﻪ ﺷﺪه ﺣﺘﻤﺎً ﺑﻪ اﻳﻦ ﻧﻜﺘﻪ اذﻋﺎن ﺧﻮاﻫﻴﺪ داﺷﺖ ﻛﻪ ﺑﻴﺸﺘﺮﻳﻦ اﺷﺘﺒﺎﻫﺎت در ﻣﺮﺣﻠﻪ ﺳﻴﻢ ﻛﺸﻲ و ﺑﺴﺘﻦ ﻣﺪار ﺑﺮروي ﺑﺮد ﭘﻴﺶ ﺧﻮاﻫﺪ آﻣﺪ . ﻣﻤﻜﻦ اﺳﺖ ﺳﻴﻤﻲ در ﺟﺎي اﺻﻠﻲ وﺻﻞ ﻧﺸﺪه ﺑﺎﺷﺪ و ﻳﺎ ﻣﻤﻜﻦ اﺳﺖ ﻳﻚ ﭘﺎﻳﻪ ﺑﻪ ﻫﻴﭻ ﺟﺎ ﻣﺘـﺼﻞ ﻧﺒﺎﺷـﺪ و ﻳـﺎ اﺷـﺘﺒﺎﻫﺎت ﻣﺸﺎﺑﻪ اﻳﻨﻬﺎ . . .از ﻃﺮف دﻳﮕﺮ ﻣﻲ داﻧﻴﻢ ﻛﻪ ﻫﺮ ﭼﻪ ﻣﺪار ﺑﺰرﮔﺘﺮ و ﭘﻴﭽﻴﺪه ﺗﺮ ﺑﺎﺷﺪ اﺷﺘﺒﺎﻫﺎت ﺑﻴﺸﺘﺮ و ﻋﻴﺐ ﻳﺎﺑﻲ ﻣـﺸﻜﻞﺗـﺮ ﺧﻮاﻫﺪ ﺑﻮد .اﻳﻨﺠﺎﺳﺖ ﻛﻪ ﻧﻘﺶ آي ﺳﻲ ﻫﺎي FPGAﻧﻤﺎﻳﺎنﺗﺮﻣﻲ ﺷـﻮد .آي ﺳـﻲ ﻫـﺎﻳﻲ ﻛـﻪ ﺑـﺎ داﺷـﺘﻦ اﻧـﻮاع ﮔﻴﺘﻬـﺎي ﻣﺨﺘﻠﻒ درون ﺧﻮد ﺑﺴﻴﺎري از ﻣﺸﻜﻼت ﻧﺎﺷﻲ از ﻋﻴﺐ ﻳﺎﺑﻲ ﻣﺪارﻫﺎي ﻣﻨﻄﻘﻲ را ﺑﺮﻃﺮف ﻛﺮده اﺳﺖ . ﺟﻮاد ﻣﺮادي
4
داﻧﺸﮕﺎه اﻣﻴﺮﻛﺒﻴﺮ85
www.IranMedar.com
ﻗﺎﺑﻠﻴﺖ و ﺗﻮاﻧﺎﻳﻲﻫﺎ: اﻣﺎ آﻧﭽﻪ ﻛﻪ ﻗﺎﺑﻠﻴﺖ و ﺗﻮاﻧﺎﻳﻲ FPGAﻫﺎ را ﺑﺎﻻ ﺑﺮده اﺳﺖ ﺗﻮاﻧﺎﻳﻲ ﻫﺎﻳﻲ اﺳﺖ ﻛﻪ ﭘـﺎره اي از آﻧﻬـﺎ در زﻳـﺮ آﻣـﺪه اﺳـﺖ : .1اﻣﻜﺎن ﺗﻌﺮﻳﻒ ﻫﺮ ﻳﻚ از ﭘﺎﻳﻪ ﻫﺎي ICﺑﻪ ﺻﻮرت ورودي ﻳﺎﺧﺮوﺟﻲ ﻳﺎ ﻫﺮ دو. .2اﻣﻜﺎن ﺗﻌﺮﻳـﻒ وﺿـﻌﻴﺖ ﻋﻤﻠﻜـﺮد ﻫـﺮ ﭘﺎﻳـﻪ در ﻫﻨﮕـﺎم اﺳـﺘﻔﺎده ﻳـﺎ ﻋـﺪم اﺳـﺘﻔﺎده.ﺑـﻪ ﻋﻨـﻮان ﻣﺜـﺎل ﻋﻤﻠﻜـﺮد HIGH اﻣﭙﺪاﻧﺲ)(Zدر ﻫﻨﮕﺎم ﻋﺪم اﺳﺘﻔﺎده و ﻳﺎ ﻗﺮار ﮔﺮﻓﺘﻦ در ﻳﻚ وﺿﻌﻴﺖ ﻣﻨﻄﻘﻲ ﺻﻔﺮ ﻳﺎ ﻳﻚ در ﻫﻨﮕﺎم ﻋﺪم اﺳﺘﻔﺎده.
.3اﻣﻜﺎن ﺗﺸﺨﻴﺺ ﺗﻐﻴﺒﻴﺮات ﺳﻄﻮح ﻳﺎ ﻟﺒﻪ ﻫﺎي ﭘﺎﻳﻴﻦ روﻧﺪه ﻳﺎ ﺑﺎﻻ روﻧﺪه ﻣﻨﻄﻘﻲ اﻋﻤﺎل ﺷﺪه ﺑﻪ ﻫﺮ ﭘﺎﻳﻪ. .4اﻣﻜﺎن ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﭼﻨﺪ ﺑﺎره از ﻃﺮﻳﻖ ﭘﺎﻳﻪ ﻫﺎي ﺑﺮﻧﺎﻣﻪ رﻳﺰي jTAGﻳﻜﻲ از اﺳﺘﺎﻧﺪارد ﻫﺎي ﺑﺮﻧﺎﻣﻪ رﻳﺰي )IEEEو ﺗﻐﻴﻴﺮ ﻣﻌﻤﺎري آن(. .5اﻣﻜﺎن ﺗﻐﻴﻴﺮ ﻣﺘﻨﺎوب ﻣﻌﻤﺎري داﺧﻠﻲ ﺑﺎ اﺳﺘﻔﺎده از ﺳﺮي ﻫﺎي Bootableﻛﻪ ﻧﻘﺸﻪ ﻣﻌﻤﺎري آﻧﻬﺎ در ﻳﻚ ﺣﺎﻓﻈﻪ ﺧﺎرﺟﻲ ﻧﮕﻬﺪاري ﺷﺪه و ﺑﺎ ﺗﻐﻴﻴﺮ آدرس ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻣﻲ ﺗﻮان ICرا ﺑﺎﻣﻌﻤﺎري ﺟﺪﻳﺪ Bootﻛﺮده و از آن اﺳﺘﻔﺎده ﻛﺮد . .6اﻣﻜﺎن ﺑﺮﻧﺎﻣﻪ رﻳﺰي در ﻣﺪار )(ISPﻛﻪ اﻳﻦ ﻗﺎﺑﻠﻴﺖ را ﺑﻪ وﺟﻮد ﻣﻲ آورد ﺗﺎ ﺑﺪون اﻋﻤﺎل ﺗﻐﻴﻴﺮات ﺳﺨﺖ اﻓﺰاري و ﺗﻨﻬﺎ از ﻃﺮﻳﻖ ﭘﻮرت ﺑﺮﻧﺎﻣﻪ رﻳﺰي ،jTAGﻣﻌﻤﺎري داﺧﻠﻲ ICرا ﺗﻐﻴﻴﺮ داد . .7ﻣﺤﺪوده ﮔﺴﺘﺮهاي از ﭘﺎﻳﻪ ﻫﺎي ﻗﺎﺑﻞ اﺳﺘﻔﺎده در اﻳﻦ ICﻫﺎ ﻛﻪ از ﺑﺴﺘﻪ ﻫﺎي 44ﭘﺎﻳﻪ ﺗﺎ 514ﭘﺎﻳﻪ و ﺣﺘﻲ ﺑﺎﻻﺗﺮ ﺑﺎ ﺣﺠﻢ ﮔﻴﺘﻲ داﺧﻠﻲ ﻣﺘﻔﺎوت ﻛﻪ ﺑﺴﺘﻪ ﺑﻪ ﻧﻴﺎز ﺑﺮ اﺳﺎس ﻣﻴﺰان ﭘﻴﭽﻴﺪﮔﻲ داﺧﻠﻲ و ﺗﻌﺪاد ﭘﺎﻳﻪ ﻫﺎي ICرا ﺗﻐﻴﻴﺮ داد. .8ﻛﻜﻬﺶ ﺣﻴﺮت اﻧﮕﻴﺰ ﺣﺠﻢ ﻣﺪار و ﻣﺠﺘﻤﻊ ﺳﺎزي در اﺑﻌﺎدي ﺗﻨﻬﺎ ﺑﻪ ﻣﺴﺎﺣﺖ ﭼﻨﺪ ﺳﺎﻧﺘﻲ ﻣﺘﺮ ﻣﺮﺑﻊ. .9ﻳﻜـﺴﺎن ﺳـﺎزي ﻋﻨﺎﺻــﺮ ﻃﺮاﺣـﻲ و از ﻣﻴـﺎن ﺑــﺮدن ﺗﻤـﺎﻣﻲ ﻣـﺸﻜﻼت ﻧﺎﺷــﻲ از ﻋـﺪم ﺗﻄـﺎﺑﻖ اﺳــﺘﺎﻧﺪارد ﻫـﺎي ﻣﺨﺘﻠــﻒ (LS,HC,s,AS,...). .10از ﻣﻴﺎن ﺑﺮدن ﺗﻤﺎﻣﻲ ﻧﻮﻳﺰ ﻫﺎي ﻧﺎﺷﻲ از وﺟﻮد ﻗﻄﻌﺎت ﻣﺨﺘﻠﻒ و ﻣﺠﺰا در ﻣﺪار. .11ﻛﻜﻬﺶ ﭼﺸﻤﮕﻴﺮ ﺗﻮان ﻣﺼﺮﻓﻲ و اﺗﻼف ﺗﻮان.. .12اﻓﺰاﻳﺶ ﺳﺮﻋﺖ ﭘﺮدازش و ﺧﻄﻜﻬﺎي اﻧﺘﺸﺎر ﺑﻪ دﻟﻴﻞ اﺳﺘﻔﺎده از ﻓﻨﺎوري ﭘﻴﺸﺮﻓﺘﻪ و دﺳﺘﻴﺎﺑﻲ ﺑﻪ ﺧﻄﻜﻬﺎي اﻧﺘﺸﺎر ﺗﺎ 4ns و ﻓﺮﻛﺎﻧﺲ ﻛﻼك ﻓﺮارﺗﺮ از 178ﻣﮕﻜﻬﺮﺗﺰ. .13ﻛﺎر ﺑﺎ دو ﺳﻄﺢ وﻟﺘﺎژ 5vو 3.3vﺟﻬﺖ اﺳﺘﻔﺎده از آﻧﻬﺎ در دﺳﺘﮕﻜﻪ ﻫـﺎي ﻗﺎﺑـﻞ ﺣﻤـﻞ ﻣﺎﻧﻨـﺪ ﮔﻮﺷـﻲ ﻫـﺎي ﻣﻮﺑﺎﻳـﻞ ﺟﻮاد ﻣﺮادي
5
داﻧﺸﮕﺎه اﻣﻴﺮﻛﺒﻴﺮ85
www.IranMedar.com
.14ﺿﺮﻳﺐ اﻳﻤﻨﻲ ﺻﺪ در ﺻﺪ ﺑﻪ دﻟﻴﻞ ﻋﺪم اﻣﻜﺎن دﺳﺘﻴﺎﺑﻲ ﺑﻪ ﻣﺤﺘﻮاي داﺧﻠﻲ و ﻋﺪم ﺗﻮان ﺗﻮﺻﻴﻔﻤﺤﺘﻮاي داﺧﻠﻲ ﺑـﻪ دﻟﻴـﻞ اﻧﺠﺎم ﺳﺎده ﺳﺎزي و ﻓﺸﺮده ﺳﺎزي ﺑﺴﻴﺎر ﭘﻴﭽﻴﺪه. و ﺑﺴﻴﺎري از ﻗﺎﺑﻠﻴﺘﻬﺎي ﺣﻴﺮت اﻧﮕﻴﺰ دﻳﮕﺮ ﻛﻪ اﻣﻜﺎن اﻧﺠﺎم ﻳﻚ ﻃﺮاﺣﻲ ﻣﺠﺘﻤﻊ ،ﻛﻢ ﺣﺠـﻢ ،ﺑﻬﻴﻨـﻪ و ﺳـﺮﻳﻊ را ﻓـﺮﻛﻬﻢ ﻣـﻲ آورد. ﻛﺎرﺧﺎﻧﻬﺎي ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪة ﻣﺤﺼﻮل: ﮔﺮ ﭼﻪ ﺷﺮﻛﺘﻬﺎي ﺑﺴﻴﺎري ﺑﺴﺘﻪ ﻫﺎي FPGAرا ﺗﻮﻟﻴﺪ ﻣﻲ ﻛﻨﻨﺪ اﻣﺎ از ﻣﻴﺎن آﻧﻬﺎ در ﺷﺮﻛﺖ ALTERAو Xilinxاز ﺟﻤﻠﻪ ﻋﻤﺪه ﺗﺮﻳﻦ ﺗﻮﻟﻴﺪ ﻛﻨﻨﺪﮔﺎن اﻳﻦ ﻣﺤﺼﻮل ﻫﺴﺘﻨﺪ ﻛﻪ از اﻳﻦ ﻣﻴﺎن ﺷـﺮﻛﺖ Xilinxﻧـﻮع دﻳﮕـﺮي از اﻳـﻦ ﺑـﺴﺘﻪ ﻫـﺎ را ﺑـﺎ ﻧـﺎم CPLDرا ﺗﻮﻟﻴﺪ ﻣﻲ ﻛﻨﺪ ﻛﻪ ﺑﻪ ﺻﻮرت Bootableﻋﻤﻞ ﻣﻲ ﻛﻨﻨﺪ،ﺑﺪﻳﻦ ﻣﻌﻨﻲ ﻛﻪ داده ﻫﺎي ﺑﺮﻧﺎﻣﻪ رﻳﺰي ﻣﻌﻤﺎري داﺧﻠـﻲ ﺧﻮد را از ﻳﻚ ﺣﺎﻓﻈﻪ ي ﺧﺎرﺟﻲ ﺧﻮاﻧﺪه و ﺧﻮد را ﭘﻴﻜﺮ ﺑﻨﺪي ﻛﺮده و ﺳﭙﺲ آﻣﺎده ﻛﺎر ﻣﻲ ﺷﻮﻧﺪ .ﺗﻤﺎﻣﻲ اﻳﻦ ﻣﺤـﺼﻮﻻت ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻌﺪاد ﭘﺎﻳﻪ ﻫﺎو ﺣﺠﻢ ﭘﻴﭽﻴﺪﮔﻲ ﻗﺎﺑﻞ ﺑﺮﻧﺎﻣﻪ رﻳﺰي در اﻧﻬﺎ ﺑﺮ اﺳﺎس ﺗﻌﺪاد ﮔﻴﺘﻬﺎي داﺧﻠﻲ در ﺑﺎزار ﻣﻮﺟﻮد و ﻗﺎﺑﻞ دﺳﺘﺮس ﻫﺴﺘﻨﺪ .از ﺟﻤﻠﻪ ﺳﺮي ﻫﺎي ﭘﺮ ﻗﺪرت و ﭘﺮﺣﺠﻢ آﻧﻬـﺎ ﺳـﺮي flexاز ﻣﺤـﺼﻮﻻت ﺷـﺮﻛﺖ ALTERAﻛـﻪ در ﻧﻤﻮﻧﻪ اي از آن ﻣﻲ ﺗﻮان ﻳﻚ CPUﻣﺪل 486را ﺟﺎي داد. زﺑﺎﻧﻬﺎي ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ: از ﺟﻤﻠﻪ زﺑﺎﻧﻬﺎي ﻣﺘﺪاول ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﺳﺨﺖ اﻓﺰار ABEL,AHDL,VERILOG,VHDLﻫﺴﺘﻨﺪ ﻛﻪ ﻫﺮ ﻳﻚ ﺑﺎ اﺳﺘﻔﺎده از syntaxﺧﺎص ﺧﻮد ﺑﺮاي ﺗﻮﺻﻴﻒ ﺳﺨﺖ اﻓﺰار ﻣﻮرد اﺳﺘﻔﺎده ﻗﺮار ﻣﻲ ﻛﻴﺮﻧﺪ ﻛﻪ ﺑﺎ اﺳﺘﻔﺎده از ﻫﺮ ﻳﻚ از آﻧﻬﺎ ﻣﻲ ﺗـﻮان ﻫﺮ ﻃﺮاﺣﻲ دﻳﺠﻴﺘﺎﻟﻲ را ﺑﻪ زﺑﺎن آﻧﻬﺎ ﻧﻮﺷﺘﻪ و ﺗﺤﻠﻴﻞ و ﺳﭙﺲ اﺳﺘﻔﺎده ﻛﺮد. ﻧﻤﻮﻧﻪ اي از اﻳﻦ آيﺳﻲ در زﻳﺮ آورده ﺷﺪه اﺳﺖ.
ﻧﺮم اﻓﺰارﻫﺎي ﻣﺮﺑﻮط: ﻣﻌﻤﻮﻻً ﻫﺮ ﻳﻚ از ﻛﺎرﺧﺎﻧﻪﻫﺎي ﺗﻮﻟﻴﺪ اﻳﻦ آيﺳﻲ ﻧﺮماﻓﺰاري را ﺟﻬﺖ اﺳﺘﻔﺎده از ﺗﻮﻟﻴﺪات ﻣﻌﺮﻓﻲ ﻣﻲ ﻛﻨﺪ .ﻣﻌﺮوف ﺗﺮﻳﻦ و ﭘﺮ ﻛﺎرﺑﺮد ﺗﺮﻳﻦ اﻳﻦ ﻧﺮﻣﺎﻓﺰارﻫﺎ ﻣﺮﺑﻮط ﺑﻪ ﺷﺮﻛﺖ Xilinxﻣﻲﺑﺎﺷﺪ .ﻛﻪ ﻛﻠﻴﺔ ﻣﺮاﺣﻞ اﻋﻢ از ﺷﺒﻴﻪ ﺳﺎزي ﭘﺮدازش و ﭘﺮوﮔﺮام ﻛﺮدن در آن ﻗﺎﺑﻞ اﺟﺮا ﻣﻲﺑﺎﺷﺪ. از ﻧﺮم اﻓﺰارﻫﺎي دﻳﮕﺮ ﻣﻲﺗﻮان ﺑﻪ Protel DXPاﺷﺎره ﻛﺮد ﻛﻪ ﻫﻤﺔ ﻗﺎﺑﻠﻴﺖ ﻫﺎي ﻓﻮق را دارد ﻋﻼوه ﺑﺮ آن ﻣﻲﺗﻮاﻧﺪ ﻧﻘـﺸﺔ PCBآن را ﻧﻴﺰ اراﻳﻪ دﻫﺪ.
ﺟﻮاد ﻣﺮادي
6
داﻧﺸﮕﺎه اﻣﻴﺮﻛﺒﻴﺮ85
www.IranMedar.com
در ﻓﻠﻮﭼﺎرت زﻳﺮ ﻣﻘﺎﻳﺴﻪ ﺑﻴﻦ روﺷﻬﺎي اﻧﺠﺎم ﭘﺮوژه ﺑﺎ اﺳﺘﻔﺎده از ﮔﻴﺘﻬﺎي ﻣﻨﻄﻘﻲ و ﻳﺎ FPGAﺑﺎ ﻫﻢ ﻣﻘﺎﻳﺴﻪ ﺷﺪه اﺳﺖ.
ﻣﺮاﺣﻞ اﻧﺠﺎم ﻳﻚ ﭘﺮوژة ﻣﻨﻄﻘﻲ
اﻧﺠﺎم ﭘﺮوژه ﺑﺎ اﺳﺘﻔﺎده از
اﻧﺠﺎم ﭘﺮوژه ﺑﺎ اﺳﺘﻔﺎده از
FPGA
ﮔﻴﺖ ﻫﺎي ﻣﻨﻄﻘﻲ
ﺗﺤﻠﻴﻞ ورودي و ﺧﺮوﺟﻲﻫﺎ
ﺗﺤﻠﻴﻞ ورودي و ﺧﺮوﺟﻲﻫﺎ
ﻃﺮاﺣﻲ از ﻃﺮﻳﻖ ﺷﻤﺎﺗﻴﻚ ،ﻳﺎ ﻣﺎﺷﻴﻦ ﻣﻮر ﻳﺎ
اﻳﺠﺎد ﺟﺪول درﺳﺘﻲ
ﺷﺒﻴﻪ ﺳﺎزي ﻋﻤﻠﻲ ﻣﺪار
ﺑﺪﺳﺖ آوردن ﻣﻌﺎدﻻت ﺑﻮﻟﻲ
ﻗﺮار دادن ﻃﺮح در CPLDو ﻣﺴﻴﺮ ﻳﺎﺑﻲ آن
اﻳﺠﺎد ﻃﺮح ﺑﺮ ﻣﺒﻨﺎي ﮔﻴﺖ ﻫﺎ
ﺷﺒﻴﻪ ﺳﺎزي زﻣﺎﻧﻲ ﻃﺮح اﻧﺘﻘﺎل ﻳﺎﻓﺘﻪ
ﺳﺎﺧﺖ ﻣﺪار دﻳﺠﻴﺘﺎل
ﭘﺮوﮔﺮام ﻛﺮدن FPGA
ﺧﻄﺎﻳﺎﺑﻲ ﻣﺪار دﻳﺠﻴﺘﺎل
HDL
در FPGA
ﺧﻄﺎ ﻳﺎﺑﻲ ﺑﺎ اﺳﺘﻔﺎده از ﻛﺎﻣﭙﻴﻮﺗﺮ و LCDﻳﺎ LED
ﺟﻮاد ﻣﺮادي
7
داﻧﺸﮕﺎه اﻣﻴﺮﻛﺒﻴﺮ85
www.IranMedar.com
ﺷﺮﻛﺖ ALTRAﻧﻴﺰ ﻣﺮاﺣﻞ ﻣﺨﺘﻠﻒ ﻣﺮﺑﻮط ﺑﻪ اﺳﺘﻔﺎده از آي ﺳﻲ ﺗﻮﻟﻴﺪ ﺧﻮد را ﺑﻪ ﺻﻮرت زﻳﺮ ﺑﻴﺎن داﺷﺘﻪ اﺳﺖ. ﺑﺮاي داﺷﺘﻦ ﻣﻘﺎﻳﺴﻪ ﺑﺎ Xilinxﻣﻨﺎﺳﺐ ﻣﻲﺑﺎﺷﺪ.
:
ﺟﻮاد ﻣﺮادي
8