আপনার অন্য প্রশ্নের দ্বারা বিচার করা, আপনি একটি Xilinx লোক। সুতরাং আমি আপনার Xilinx চিপের জন্য ডেটা শীটটি পেতে এবং কার্যকরী বিবরণ অধ্যায়টিতে যাওয়ার পরামর্শ দিচ্ছি। আমি যে স্পার্টান 3 চিপটি ব্যবহার করি তার জন্য এটি মজাদার পড়ার 42 পৃষ্ঠা। এটি এফপিজিএ-র ভিতরে ঠিক কী উপাদানগুলি রয়েছে তার বিবরণ দেয় - আইওবি, সিএলবি, টুকরা, এলইউটিস, ব্লক র্যাম, মাল্টিপ্লায়ার্স, ডিজিটাল ক্লক ম্যানেজার, ক্লক নেটওয়ার্ক, ইন্টারকানেক্ট এবং কয়েকটি খুব বেসিক কনফিগারেশন তথ্য। কোনও "সংকলিত এইচডিএল" দেখতে কেমন তা জানতে চাইলে আপনার এই তথ্যটি বুঝতে হবে।
একবার আপনি আপনার এফপিজিএর স্থাপত্যের সাথে পরিচিত হয়ে গেলে আপনি এই প্রক্রিয়াটি বুঝতে পারবেন। প্রথমে আপনার এইচডিএল ডিজাইনটি সংশ্লেষণ ইঞ্জিনের মাধ্যমে পরিচালিত হয় যা আপনার এইচডিএলটিকে মূলত আরটিএলে রূপান্তরিত করে। তারপরে ম্যাপার সংশ্লেষ থেকে ফলাফলগুলি প্রক্রিয়া করে, এফপিজিএ আর্কিটেকচারের উপলব্ধ টুকরোগুলিতে তাদের "ম্যাপিং" করে। তারপরে রাউটারটি প্লেস অ্যান্ড রুট (পিএআর) করে না, যা এই টুকরোগুলি কোথায় যায় এবং কীভাবে তাদের সংযোগ করতে হয় তা নির্ধারণ করে। অবশেষে, পিএআর থেকে প্রাপ্ত ফলাফলগুলি একটি বিআইটি ফাইলে পরিণত হয়। সাধারণত এই বিআইটি ফাইলটি কোনও উপায়ে রূপান্তরিত হয় যাতে এটি কোনও ফ্ল্যাশ চিপে লোড করা যায়, যাতে এফপিজিএটি স্বয়ংক্রিয়ভাবে প্রোগ্রাম করা যায় যখন এটি ক্ষমতাপ্রাপ্ত হয়।
এই বিট ফাইলটি পুরো এফপিজিএ প্রোগ্রাম বর্ণনা করে। উদাহরণস্বরূপ, একটি স্পার্টান 3 এর সিএলবিগুলি টুকরা দিয়ে তৈরি, যা এলইউটিগুলি দিয়ে তৈরি, যা কেবল 16-ঠিকানা 1-বিট এসআরএএম। সুতরাং বিআইটি ফাইলের মধ্যে একটি জিনিস যা এসআআআআআরএএম এর প্রতিটি ঠিকানার মধ্যে ঠিক তেমন ডেটা দেয়। বিআইটি ফাইলের আরেকটি জিনিস হ'ল LUT- র প্রতিটি ইনপুট কীভাবে সংযোগ ম্যাট্রিক্সে তারযুক্ত হয়। বিআইটি ফাইলটিতে প্রাথমিক মানগুলিও অন্তর্ভুক্ত থাকবে যা ব্লক র্যামের অভ্যন্তরে চলে। এটি প্রতিটি স্লাইসে প্রতিটি ফ্লিপ ফ্লপের সেট এবং রিসেট পিনগুলির সাথে কী সংযুক্ত রয়েছে তা বর্ণনা করবে। এটি ক্যারি চেইন কীভাবে সংযুক্ত তা বর্ণনা করবে। এটি প্রতিটি আইওবি (এলভিটিটিএল, এলভিসিএমওস, এলভিডিএস, ইত্যাদি) এর লজিক ইন্টারফেসের বর্ণনা দেবে। এটি যে কোনও সংহত পুল-আপ বা পুল-ডাউন প্রতিরোধকের বর্ণনা দেবে। মূলত, সবকিছু।
শিলিনেক্সের জন্য, কনফিগারেশন শুরু হওয়ার সাথে সাথে এফপিজিএর স্মৃতি মুছে ফেলা হয় (অর্থাত্ PROG_B চাপ দেওয়া হয়)। মেমরিটি পরিষ্কার হয়ে গেলে, INIT_B উচ্চ পর্যায়ে গিয়ে নির্দেশ দেয় যে পর্যায়টি সম্পূর্ণ হয়েছে। বিআইটি ফাইলটি তখন JTAG বা ফ্ল্যাশ চিপ ইন্টারফেসের মাধ্যমে লোড করা হয়। প্রোগ্রামটি লোড হয়ে গেলে, গ্লোবাল সেট / রিসেট (জিএসআর) পালস করা হয়, সমস্ত ফ্লিপ ফ্লপগুলি তাদের প্রাথমিক অবস্থায় পুনরায় সেট করে। কনফিগারেশন সম্পন্ন হয়েছে তা বোঝাতে ডোন পিনটি তখন উঁচুতে যায়। ঠিক এক ঘড়ির চক্র পরে, গ্লোবাল থ্রি-স্টেট সিগন্যাল (জিটিএস) প্রকাশিত হয়, ফলে ফলাফলগুলি চালিত হতে পারে। ঠিক এক ঘড়ির চক্র পরে, গ্লোবাল রাইট সক্ষম (জিডাব্লুই) প্রকাশিত হয়, যা তাদের ইনপুটগুলির প্রতিক্রিয়ায় ফ্লিপ ফ্লপকে রাষ্ট্র পরিবর্তন করতে শুরু করে। নোট করুন যে এমনকি এই চূড়ান্ত কনফিগারেশন প্রক্রিয়াটি বিআইটি ফাইলে সেট করা পতাকাগুলির উপর নির্ভর করে সামান্য পুনরায় সাজানো যেতে পারে।
সম্পাদনা করুন:
আমার আরও যোগ করা উচিত যে এফপিজিএ প্রোগ্রাম স্থায়ী না হওয়ার কারণ হ'ল যুক্তিযুক্ত ফ্যাব্রিকটি অস্থির মেমরি (যেমন এসআরএএম) দ্বারা গঠিত। সুতরাং যখন এফপিজিএ শক্তি হারাতে থাকে তখন প্রোগ্রামটি ভুলে যায়। এ কারণেই তাদের এফপিজিএ প্রোগ্রামের জন্য নন-ভোল্টাইল স্টোরেজ হিসাবে যেমন ফ্ল্যাশ চিপগুলি দরকার, যাতে এটি যখনই ডিভাইস চালিত হয় তখন লোড করা যায়।