এফপিজিএ কী?


38

আমি অনেক লোককে এফপিজিএর আগে কথা বলতে দেখেছি এবং আমি জানি যে এটি ফিল্ড-প্রোগ্রামেবল গেট অ্যারের জন্য দাঁড়িয়েছে তবে এটি কীভাবে কাজ করে এবং এফপিজিএ ব্যবহারের উদ্দেশ্য কী?

উত্তর:


30

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

সুন্দর লাগছে? হ্যাঁ, তবে এর কিছু অসুবিধাও রয়েছে। উদাহরণস্বরূপ, দাম (তবে আমি মনে করি এটির তুলনা করা শক্ত), উচ্চ বিদ্যুত ব্যবহার এবং নিম্ন ঘড়ির গতি (তবে আপনি নিজের অ্যাপ্লিকেশনটিকে স্মার্ট উপায়ে ডিজাইন করতে পারেন এবং এক ঘড়ির চক্রে আরও বেশি ক্রিয়াকলাপ করতে পারেন)।

দরকারী লিংক:

ব্যবহারের উদাহরণ: http://nsa.unaligned.org/


3
আমি লক্ষ করব যে অনেকগুলি এফপিজিএ যথেষ্ট পরিমাণে একাধিক সিপিইউ কোরগুলি ধারণ করে, সুতরাং এফপিজিএকে নিজের কাছে পুরো কম্পিউটার হিসাবে তৈরি করে।
ক্রেগ ট্রেডার

3
একটি নোট হিসাবে, আমি মনে করি নিম্ন ঘড়ির গতি বিভ্রান্তিকর হতে পারে। একটি পিসি তুলনা, হ্যাঁ। একটি পিক 16 এর তুলনায় এগুলি দ্রুত হতে পারে তবে এটি ব্যয়ের উপর নির্ভর করে। 40MHz এ আমার হাতে থাকা সস্তা ব্যয়ের বেশিরভাগ অংশই আবার রয়েছে, তবে পণ্য থেকে পণ্য পরিবর্তনের ক্ষেত্রে বিভিন্নতা রয়েছে।
কর্টুক

23

একটি এফপিজিএ আক্ষরিক অর্থে লজিক গেটগুলির একটি অ্যারে যা ক্ষেত্রটিতে প্রোগ্রাম করা যায়। ফ্লিপ ফ্লপ, মাল্টিপ্লেক্সারস, 4-বিট লুক টেবিল ইত্যাদি that যা আপনার পছন্দ মতো কোনও সি সংযুক্ত ভাষা (ভেরিলোগ) ব্যবহার করে সংযুক্ত হতে পারে।

একটি ইউসি, যেমন একটি এভিআর, একই ধরণের লজিক গেট দিয়ে তৈরি হয়, তবে ডিভাইসটি তৈরি করার পরে সেগুলি কনফিগার করা হয়। অবশ্যই, এতে র‌্যাম এবং ফ্ল্যাশ রয়েছে যাতে আপনি ইনপুটগুলি এবং আউটপুটগুলি নিয়ন্ত্রণ করতে সফ্টওয়্যার লিখতে পারেন, তবে আপনি গেটগুলির আসল ব্যবস্থা পরিবর্তন করতে পারবেন না। গেটগুলি সর্বদা একটি ALU, একটি মেমরি নিয়ামক, একটি সিরিয়াল বন্দর ইত্যাদিতে সাজানো থাকবে

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

অকার্যকর লুপ () {বাটনস্টেট = ডিজিটাল রিড (বাটনপিন); যদি (বাটনস্টেট == উচ্চ) {
ডিজিটাল রাইট (নেতৃত্বাধীন পিন, এইচআইটি);
} অন্য {ডিজিটাল রাইটিং (নেতৃত্বাধীন পিন, LOW); }}

এটি এক ডজন সমাবেশ নির্দেশিকায় রূপান্তরিত হবে, সুতরাং লুপটি একটি ইনপুট থেকে সেই আউটপুট নিয়ন্ত্রণ করতে একটি মাইক্রোসেকেন্ড বা তাই নেয়। এবং এটি দ্রুত করতে পুরো ইউসি চিপ লাগে। অবশ্যই, আপনি আরও অনেক কিছু করতে পারেন, তবে ইউসি অন্য কাজগুলিতে ব্যস্ত হয়ে পড়লে আপনার আউটপুট নিয়ন্ত্রণ করার ক্ষমতা হ্রাস পাবে।

একটি এফপিজিএতে আমি 1 টি ঘড়ির মধ্যে একটি ইনপুট নিয়ন্ত্রণ রাখতে গেটগুলি কনফিগার করতে পারি। সুতরাং আউটপুট সম্ভবত 25 ন্যানোসেকেন্ডের বিলম্বের সাথে ইনপুট অনুসরণ করবে। একই ক্লক পিরিয়ড ব্যবহার করে এটি 40 এক্স দ্রুত। এবং এফপিজিএর বাকী ফটকগুলি অন্যান্য অনেকগুলি কাজ করার জন্য উপলব্ধ, যা এই সামান্য ফাংশনের গতিকে প্রভাবিত করবে না।

এফপিজিএর কোডটি একটি সহজ ফ্লিপ ফ্লপ হবে:

সর্বদা @ (পোজজ ক্লক) নেতৃত্বযুক্ত পিন <= বোতামপিন;

এটি এফপিজিএর কয়েক হাজার লোকের মধ্যে কেবল 1 টি এফপিজিএ সেল, প্রায় 40 টি গেট লাগবে।

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

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

ব্যয় কোনও পার্থক্যকারী নয়। আমি এমন একটি এফপিজিএ কিনতে পারি যা আমি দেখেছি যে কোনও আরডুইনো ডিজাইন আমি প্রায় $ 5 ডলারে অর্ডিনো এভিআর চিপ হিসাবে একই রকম বাস্তবায়ন করতে পারি। এছাড়াও এফপিজিএগুলির জন্য বিনামূল্যে সরঞ্জামচেন (আইডিই, সংকলক, ডিবাগার) রয়েছে ug

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

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

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

আরেকটি সমস্যা হ'ল এফপিজিএ 8 থেকে 20 পিন ডিআইপি প্যাকেজগুলিতে সামান্য আসে না। তারা 100-পিন বা বৃহত্তর পৃষ্ঠের মাউন্ট প্যাকেজগুলিতে আসতে ঝোঁক, তাই বোর্ডগুলি তৈরি করা আরও শক্ত।

এবং একটি চূড়ান্ত সমস্যা হ'ল পুরো আকর্ষণীয় প্রকল্পগুলি ইউসি এর সহজ ব্যবহারকারীর মধ্যে ঠিক জরিমানা প্রয়োগ করা যেতে পারে, তবে কেন এফপিজিএ নিয়ে বিরক্ত করবেন?


2
"আমি এমন একটি এফপিজিএ কিনতে পারি যা আমি প্রায় $ 5 এর জন্য দেখেছি প্রায় কোনও আড়ডিনো ডিজাইন বাস্তবায়িত করতে পারে" আমি দুঃখিত, তবে এইচভিটি? কোথায়?
মেডিভহ

9

আপনি যদি বেসিক লজিক গেটগুলির সাথে পরিচিত হন তবে আপনার জানা উচিত যে তারা কার্যত তাত্ক্ষণিক। এ, বি বা সি পরিবর্তিত হলে তাত্ক্ষণিকভাবে A এবং B বা C অপারেশন পরিবর্তন হয়।

একটি এফপিজিএ হ'ল (সাজানো) প্রোগ্রামেবল লজিক গেটগুলির একটি ম্যাট্রিক্স। আপনি ইনপুট এবং আউটপুট সংজ্ঞায়িত করতে পারেন (ইনপুটগুলির সংমিশ্রণ হিসাবে)।

কোনও ইউসি তে, এ + বি / সি * স্কুয়ার্ট (ডি) বেশ কয়েকটি ঘড়ির চক্র এবং কিছু স্মৃতি গ্রহণ করবে। একটি এফপিজিএতে ফলাফল প্রায় তাত্ক্ষণিক।

তারা ভিডিও, ডিএসপি, ক্রিপ্টোগ্রাফির জন্য দুর্দান্ত ...

এটিই মূল সুবিধা। আধুনিক এফপিজিএগুলি এখন মেমরির সাথে উপযুক্ত এবং সেখানে ইউসি / এফপিজিএ সংকর রয়েছে।


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

হ্যাঁ আমি মনে করি এটি দুর্দান্ত উদাহরণ: armadeus.com/english/index.html । : বিশেষভাবে আমাকে জন্য আকর্ষণীয় সার্ভার নিয়ন্ত্রণ উদাহরণ marwww.in2p3.fr/~duval/wiki_html_dump/articles/m/o/t/...
Maciek Sawicki

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

5

এগুলি এনক্রিপশন কীগুলি ক্র্যাকিংয়ের জন্য একটি সাধারণ-উদ্দেশ্য কম্পিউটারের তুলনায় আরও দ্রুত ব্যবহৃত হয়। : ডি


1
হাহাহা, আমি আপনার খুব কার্যকরী বিবরণ উপভোগ করেছি। সমান্তরাল প্রক্রিয়াকরণে এগুলি একেবারে আশ্চর্যজনক।
কর্টুক

একটি কোডব্রেকার প্রকল্প: copacobana.org
এইচ এইচ

2

অর্থ এবং ঝুঁকি বনাম একটি এএসআইসি সঞ্চয় করা। যদি না তুমি

  1. গভীরভাবে শক্তি বা যত্ন সম্পর্কে
  2. তাদের মধ্যে একটি গুচ্ছ তৈরি করছে (বলুন> 10 কে ইউনিট)

কোনও ASIC করার স্থির (এনআরই) ব্যয়গুলি ব্যয়বহুল করে তোলে।

যেহেতু আপনি সহজেই এফপিজিএ পরিবর্তন করতে পারেন, তাই আপনি নকশাটি কম অনুকরণ করতে এবং দ্রুত ল্যাবটিতে যেতে পারেন। সফ্টওয়্যার হিসাবে আপনি আংশিক নকশা তৈরি করতে এবং এটিতে তৈরি করতে পারেন।

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