এফপিজিএ প্রোগ্রামিং, যেখানে শুরু হবে


29

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


3
আপনি যদি সি / সি ++ প্রোগ্রামিংয়ের সাথে পরিচিত হন, তবে আপনার ভিএইচডিএল পরিবর্তে ভেরিলোগ চয়ন করা উচিত ।
ভেরিলোগের

1
@ মিঃ অলিন আমি সবে শুরু করছি এবং আমি জানতে পেরেছি যে এটি সি এর মতো দেখতে যদি কিছু যায় আসে না, কারণ আমি পেয়েছি যে সবচেয়ে কঠিন অংশটি বাক্য গঠন ছিল না, তবে ধারণার মধ্যে পার্থক্য ছিল। শব্দার্থবিজ্ঞানগুলি সি এর কাছাকাছিও নয়
এডগার ক্লার্কস

সবচেয়ে বড় পরিবর্তন আমি সি / সি ++ / জাভা / ইত্যাদি থেকে পেয়েছি। আপনি যে মডিউলগুলি লিখেছেন (এটি আমি অনুবাদ ইউনিটের সমতুল্য মনে করি) খাঁটি ইভেন্ট দ্বারা চালিত। সি তে, একটি মৌলিক নীতিতে সরলীকৃত, একটি সংকলিত প্রোগ্রাম আপনার কোডের 1 লাইন, তারপরে লাইন 2, তারপরে 3, তারপরে 4 ইত্যাদি করবে will : এই ইনপুট পিনটি মডিউল 1_ ইনপুটকে সংযুক্ত করে, মডিউল 1_আউটপুট প্রতিবার মডিউল 1 ইনপুট উঁচুতে যায় টগল করে state পরিবর্তে if(condition)এটি when(condition)। বেশিরভাগ এফপিজিএ আইডিইতে এমনকি গ্রাফিক ডিজাইনের ইনপুট থাকে, যেন আপনি এটি কাগজে আঁকেন।
চার্লিহানসন

উত্তর:


40

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

শুন্য থেকে শুরু করা

সফ্টওয়্যার বিকাশ সম্পর্কে সবকিছু ভুলে যান। বিশেষত প্রোগ্রামিং ভাষা। এই নীতিগুলি ডিজিটাল ডিজাইনে প্রয়োগ হয় না। যে লোকটি সিপিইউ ডিজাইন করেছিল তাকে এসেম্বেলার বা এমনকি সিতে প্রোগ্রাম করার জন্য এটি সম্ভবত সহজ হবে তবে একটি এসেম্বলার প্রোগ্রামার সিপিইউ ডিজাইন করতে সক্ষম হবে না।

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

সুতরাং প্রতিটি কাজের জন্য আপনি কীভাবে মোকাবেলা করতে চান তা ভাববেন না যে আপনি এটি কীভাবে করতে জানেন, পরিবর্তে একটি গবেষণা করুন - বই, উদাহরণ পরীক্ষা করুন, আরও অভিজ্ঞ ব্যক্তিদের জিজ্ঞাসা করুন ইত্যাদি

হার্ডওয়্যার এবং এইচডিএল ভাষা শিখুন

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

কিছু লোক ভেরিলোগ শেখার পরামর্শ দেয় কারণ এটি সি এর মতো দেখতে হ্যাঁ, এর বাক্য গঠনটি সি এবং আদার মিশ্রণ তবে এটি কোনও সফ্টওয়্যার বিকাশকারীকে ঝুঁকে রাখা সহজ করে না। আসলে, আমি মনে করি এটি আরও খারাপ করতে পারে কারণ ভেরিলোগে সি লেখার লোভ থাকবে। খুব খারাপ সময় কাটানোর জন্য এটি একটি ভাল রেসিপি।

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

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

সেই কারণে, আমি আপনাকে সাধারণভাবে ইলেকট্রনিক্স সম্পর্কিত কিছু বই এবং এই জাতীয় একটি ভাল বই - এইচডিএল চিপ ডিজাইন (ওরফে নীল বই হিসাবে) পাওয়ার পরামর্শ দিচ্ছি ।

একটি সিমুলেটর পান

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

একটি উন্নয়ন বোর্ড পান

আপনি যখন এগিয়ে যাওয়ার মত বোধ করেন, একটি উন্নয়ন বোর্ড পান। যদি আপনি জানেন যে আপনার নিয়োগকর্তা ল্যাটিসের সাথে যেতে চান, তবে ল্যাটিস বোর্ড পাবেন get

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

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

বোর্ডগুলি সাধারণত একটি ভাল রেফারেন্স, ব্যবহারকারী গাইড এবং ডিজাইনের উদাহরণ সহ আসে। তাদের অধ্যয়ন।

বই পড়া

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

আমি ব্যক্তিগতভাবে এগুলি দিয়ে শুরু করেছি:

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

আরও নির্দিষ্ট প্রশ্নে ফিরে আসুন

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


এই বিস্তারিত উত্তরের জন্য অনেক ধন্যবাদ, এটি আমাকে কীভাবে প্রসেস করতে পারে তা দেখতে আমাকে সত্যই সহায়তা করেছে। দুর্ভাগ্যক্রমে আমার কোনও বন্ধু নেই যারা আমাকে সহায়তা করতে পারে। তবে আপনি কেবল আমাকে অনেক ঝামেলা থেকে রক্ষা করেছেন এবং আবারও অনেক ধন্যবাদ !!!!
আনিলা

5
দুর্দান্ত উত্তর।
আসাদ ইব্রাহিম

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

@ পিজিটি আপনি যদি একক কোর বা একাধিক কোরে চলমান একাধিক প্রক্রিয়াতে 'y' অ্যাক্সেসযোগ্য হন তবে y এর মান 1 এর চেয়ে অন্য কিছু হতে পারে বলে আশা করতে পারেন, যা দুর্বল প্রক্রিয়াতে এর কর্তৃত্ব আরোপ করতে পারে।
অদিত্যা

1

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


-1

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

পড়ার জন্য বই: http://www.amazon.com/Advanced-FPGA-Design-Architecture- Implementation/ dp / 0470054379

পারফেক্ট ল্যাঙ্গুয়েজ সিনট্যাক্স জ্ঞান পরবর্তীতে, প্রথমে ডিজিটাল ডিজাইন এবং সমস্যাগুলি বুঝতে understand


ইউরোপে ভিএইচডিএল ব্যবহার করা হয়, মার্কিন ভেরিলোগে। মোটেও সত্য নয় ...
ম্যাট ইয়ং 21

আসলে, আমি ভেরিলোগ শিখেছি এবং আমি ইউকে থেকে এসেছি। এটি আমি ইউনিতে (ইউকেতেও) মডিউলগুলির একটির মধ্যেও শেখানো ভাষা।
টম কার্পেন্টার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.