একটি এফপিজিএ যখন "প্রোগ্রামযুক্ত" হয় তখন কী ঘটে?


13

আমি যা বুঝতে পারি তা থেকে, এফপিজিএ প্রোগ্রাম করার প্রক্রিয়াটি দুটি ভাগে আসে:

  1. হার্ডওয়্যার বর্ণনা বিটগুলিতে এনকোড করুন যা এফপিজিএ বুঝতে পারে (যেমন কিছু এইচডিএল লিখুন এবং এটি সংকলন করুন)
  2. সংকলিত এইচডিএল এফপিজিএতে লোড করুন।

আমার প্রশ্নটি হল: "এফপিজিএ সংকলিত এইচডিএল দিয়ে কী করে?"। এই মুহুর্তে, আমি এফপিজিএগুলিকে ".ালাইযোগ্য হার্ডওয়্যার" হিসাবে মনে করি, যেখানে তারগুলি এবং লজিক গেটগুলি আপনি যা খুশি তাতে edালাই করা যেতে পারে। সুন্দর জিনিসগুলির মধ্যে একটি হ'ল ছাঁচনির্মাণ স্থায়ী: এফপিজিএগুলি পুনরায় প্রোগ্রাম করা যেতে পারে।

এফপিজিএগুলি কীভাবে সংকলিত এইচডিএলকে ব্যাখ্যা করে? স্থায়ী permanentালুতা অর্জন কীভাবে হয়?


4
এটি আসলে স্থায়ী নয় - প্রতিবার বিদ্যুৎ প্রয়োগ করার সাথে সাথে এফপিজিএ বিটস্ট্রিমটি EEPROM থেকে পুনরায় লোড করতে হবে। সিপিএলডিদের এই সমস্যা নেই এবং কিছু এফপিজিএগুলিতে অন্তর্নির্মিত EEPROM রয়েছে যা প্রতিটি পাওয়ারআপে তাদের বিটস্ট্রিম লোড করে।
15

2
আমি মনে করি তার অর্থ "moldালাইযোগ্যতা স্থায়ী" অর্থাত্ প্রোগ্রামটি নিজেই স্থায়ী নয়।
ajs410

উত্তর:


23

আপনার অন্য প্রশ্নের দ্বারা বিচার করা, আপনি একটি Xilinx লোক। সুতরাং আমি আপনার Xilinx চিপের জন্য ডেটা শীটটি পেতে এবং কার্যকরী বিবরণ অধ্যায়টিতে যাওয়ার পরামর্শ দিচ্ছি। আমি যে স্পার্টান 3 চিপটি ব্যবহার করি তার জন্য এটি মজাদার পড়ার 42 পৃষ্ঠা। এটি এফপিজিএ-র ভিতরে ঠিক কী উপাদানগুলি রয়েছে তার বিবরণ দেয় - আইওবি, সিএলবি, টুকরা, এলইউটিস, ব্লক র‌্যাম, মাল্টিপ্লায়ার্স, ডিজিটাল ক্লক ম্যানেজার, ক্লক নেটওয়ার্ক, ইন্টারকানেক্ট এবং কয়েকটি খুব বেসিক কনফিগারেশন তথ্য। কোনও "সংকলিত এইচডিএল" দেখতে কেমন তা জানতে চাইলে আপনার এই তথ্যটি বুঝতে হবে।

একবার আপনি আপনার এফপিজিএর স্থাপত্যের সাথে পরিচিত হয়ে গেলে আপনি এই প্রক্রিয়াটি বুঝতে পারবেন। প্রথমে আপনার এইচডিএল ডিজাইনটি সংশ্লেষণ ইঞ্জিনের মাধ্যমে পরিচালিত হয় যা আপনার এইচডিএলটিকে মূলত আরটিএলে রূপান্তরিত করে। তারপরে ম্যাপার সংশ্লেষ থেকে ফলাফলগুলি প্রক্রিয়া করে, এফপিজিএ আর্কিটেকচারের উপলব্ধ টুকরোগুলিতে তাদের "ম্যাপিং" করে। তারপরে রাউটারটি প্লেস অ্যান্ড রুট (পিএআর) করে না, যা এই টুকরোগুলি কোথায় যায় এবং কীভাবে তাদের সংযোগ করতে হয় তা নির্ধারণ করে। অবশেষে, পিএআর থেকে প্রাপ্ত ফলাফলগুলি একটি বিআইটি ফাইলে পরিণত হয়। সাধারণত এই বিআইটি ফাইলটি কোনও উপায়ে রূপান্তরিত হয় যাতে এটি কোনও ফ্ল্যাশ চিপে লোড করা যায়, যাতে এফপিজিএটি স্বয়ংক্রিয়ভাবে প্রোগ্রাম করা যায় যখন এটি ক্ষমতাপ্রাপ্ত হয়।

এই বিট ফাইলটি পুরো এফপিজিএ প্রোগ্রাম বর্ণনা করে। উদাহরণস্বরূপ, একটি স্পার্টান 3 এর সিএলবিগুলি টুকরা দিয়ে তৈরি, যা এলইউটিগুলি দিয়ে তৈরি, যা কেবল 16-ঠিকানা 1-বিট এসআরএএম। সুতরাং বিআইটি ফাইলের মধ্যে একটি জিনিস যা এসআআআআআরএএম এর প্রতিটি ঠিকানার মধ্যে ঠিক তেমন ডেটা দেয়। বিআইটি ফাইলের আরেকটি জিনিস হ'ল LUT- র প্রতিটি ইনপুট কীভাবে সংযোগ ম্যাট্রিক্সে তারযুক্ত হয়। বিআইটি ফাইলটিতে প্রাথমিক মানগুলিও অন্তর্ভুক্ত থাকবে যা ব্লক র‌্যামের অভ্যন্তরে চলে। এটি প্রতিটি স্লাইসে প্রতিটি ফ্লিপ ফ্লপের সেট এবং রিসেট পিনগুলির সাথে কী সংযুক্ত রয়েছে তা বর্ণনা করবে। এটি ক্যারি চেইন কীভাবে সংযুক্ত তা বর্ণনা করবে। এটি প্রতিটি আইওবি (এলভিটিটিএল, এলভিসিএমওস, এলভিডিএস, ইত্যাদি) এর লজিক ইন্টারফেসের বর্ণনা দেবে। এটি যে কোনও সংহত পুল-আপ বা পুল-ডাউন প্রতিরোধকের বর্ণনা দেবে। মূলত, সবকিছু।

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

সম্পাদনা করুন:

আমার আরও যোগ করা উচিত যে এফপিজিএ প্রোগ্রাম স্থায়ী না হওয়ার কারণ হ'ল যুক্তিযুক্ত ফ্যাব্রিকটি অস্থির মেমরি (যেমন এসআরএএম) দ্বারা গঠিত। সুতরাং যখন এফপিজিএ শক্তি হারাতে থাকে তখন প্রোগ্রামটি ভুলে যায়। এ কারণেই তাদের এফপিজিএ প্রোগ্রামের জন্য নন-ভোল্টাইল স্টোরেজ হিসাবে যেমন ফ্ল্যাশ চিপগুলি দরকার, যাতে এটি যখনই ডিভাইস চালিত হয় তখন লোড করা যায়।


6

এইচডিএল ফলাফলকে কিছুটা প্যাটার্নে সংকলন করে যা এফপিজিএর মধ্যে কোন সংযোগগুলি সক্রিয় করা উচিত তা নির্দেশ করে। এফপিজিএ-তে আর এইচডিএল ব্যাখ্যা করতে হবে না। বিট প্যাটার্নটি সিরিয়াল লোডার ফ্ল্যাশ / ইপ্রোমে প্রোগ্রাম করা হয় এবং বুট করার পরে এই প্যাটার্নটি এফপিজিএতে স্থানান্তরিত হয়, প্রয়োজনীয় সংযোগ স্থাপন করে।


1
সিনথেসিসের অর্থ তিনটি বাক্যাংশ 1. নেটলিস্ট জেনারেশন 2. গেট লেভেল অপটিমাইজেশন 3. প্রযুক্তি ম্যাপিং।
স্ট্যান্ডার্ড সানডুন

4

সংকলনের ফলাফলটি একটি বিটস্ট্রিম (আক্ষরিক অর্থে বিটের একটি প্রবাহ) যা পাওয়ার আপ হওয়ার পরে লোড হয়। এফপিজিএর মাধ্যমে এই স্থানান্তরটি কিছু মেমোরি কোষে (ল্যাচগুলি) সংরক্ষণ করা হয়। এই ঘরগুলি বিভিন্ন যুক্তিযুক্ত সত্তা, মাল্টিপ্লেক্সারস, লুক-আপ টেবিলগুলি, র‌্যাম ব্লকগুলি, রাউটিং ম্যাট্রিক্সের সাথে সংযুক্ত এবং "কনফিগারেশন" নামে পরিচিত যা গঠন করে। বিটস্ট্রিমটি লোড হয়ে গেলে, এফপিজিএ পরিচালনা করা শুরু করে - কনফিগারেশন-লেচসের বিটগুলি FPGA- এর প্রতিটি ছোট্ট অংশকে "বলুন" কীভাবে পরিচালনা করবে।

24 এপ্রিল, 2012 সম্পাদনা করুন: আমি উল্লিখিত ফ্লিপ-ফ্লপগুলি সন্ধানের টেবিলগুলি বা সেগুলির কনফিগারেশনের জন্য নয়। @ অজস ৪১০ হিসাবে যেমন এগুলি র্যামে রয়েছে যা ট্রানজিস্টরও কম। ফ্লিপ-ফ্লপগুলি LUT এর বাইরে ডেটা সঞ্চয় করার জন্য, যদি সেই স্টোরেজ সক্ষম থাকে।


একটি সাধারণ এফপিজিএর কতগুলি সার্কিটরি আসল যুক্তি এবং রাউটিং এবং প্রোগ্রামিং-সমর্থন কত?
সুপারক্যাট

প্রযুক্তিগতভাবে "মেমোরি সেলগুলি" ল্যাচ নয়, ফ্লিপ ফ্লপ হয়। অর্থাৎ এগুলি প্রবাহিত হয়।
ব্রায়ান কার্লটন

@ ব্রায়ান কার্লটন: সমস্ত প্রোগ্রাম-স্টোরেজ সেলগুলির জন্য কি ফ্লিপ ফ্লপগুলি সত্যই ব্যবহৃত হয়? আমার উপলব্ধি অনুসারে, বিট পিছু 12-16 এমওএসএফইটিসের ক্রমে ফ্লিপ ফ্লপের কিছু প্রয়োজন; বিপরীতে, ডেটা ল্যাচিংয়ের জন্য অন্যান্য সম্পূর্ণ-স্থির কৌশলগুলির জন্য কেবল 5-8 প্রয়োজন।
সুপারক্যাট

1
একটি LUT সাধারণত SRAM দিয়ে তৈরি of ফ্লিপ ফ্লপগুলি এসআরএএম-এর আউটপুটে সংযুক্ত থাকে।
ajs410

1
@ সুপের্যাট: আমি শুনেছি যে এফপিজিএর 90% অংশ যাত্রা করছে ... বাকী যুক্তি এবং কনফিগারেশন রয়েছে - দ্রুত কোনও রেফারেন্স খুঁজে পাবে না :(
মার্টিন থম্পসন

1

স্ট্যান্ডার্ড শব্দটি হ'ল "কনফিগারেশন" এবং এফপিজিএর জন্য "প্রোগ্রামিং" নয়। এফপিজিএ সাধারণত একটি এসআরএএম ভিত্তিক ডিভাইস। একটি এসআরএএম বিট সংরক্ষণ করে যা ডিভাইসের "লজিক ফ্যাব্রিক" এর ভিতরে কোন সংযোগগুলি গঠন এবং ভাঙা তা নির্দেশ করে। যখন কনফিগারেশন হয়, বিটগুলির একটি স্ট্রিম এফপিজিএতে প্রেরণ করা হয় যা এই এসআরএমে লিখেছে। যখন এসআরএএম ভিত্তিক এফপিজিএ স্যুইচ করা হয় তখন এসআরএএম ডেটা মুছে ফেলা হয় এবং যখন এফপিজিএ চালু হয়, তখন এটি আবার কনফিগার করা দরকার।

এখন এটি জানুন, এগুলি "কনফিগার" করার বিভিন্ন পদ্ধতি এবং এফপিজিএ এবং এইভাবে এই "বিট স্ট্রিম" ধারণকারী ফাইলগুলির বিভিন্ন ফর্ম্যাট রয়েছে। দিনের শেষে, এই ফাইলগুলির কাঠামো এবং এফপিজিএ কতটা সঠিকভাবে কনফিগার করা হয়েছে তার বিশদটি উত্পাদনটির মালিকানাধীন এবং এই তথ্যটি কখনই ভাগ করা হয় না। তবে সাধারণ নীতিটি এফপিজিএগুলিতে একই থাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.