সি এর মাধ্যমে ভেরিলগ বা ভিএইচডিএল ব্যবহারের অনুপ্রেরণা কী?


12

আমি একটি প্রোগ্রামিং ব্যাকগ্রাউন্ড থেকে এসেছি এবং হার্ডওয়ার বা ফার্মওয়্যার (প্রায়শই ইলেকট্রনিক্স এবং আরডুইনো) এর সাথে খুব বেশি গণ্ডগোল করি না।

সি বা কিছু অ্যাসেমব্লির মতো প্রোগ্রামিং ভাষার উপর যেমন ভেরিলোগ এবং ভিএইচডিএল হিসাবে হার্ডওয়্যার বর্ণন ভাষা (এইচডিএল) ব্যবহার করার অনুপ্রেরণা কী?

এই বিষয়টি কি আদৌ পছন্দের বিষয়?

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

অতএব, আমার কয়েকটি প্রশ্ন রয়েছে (কোনও কিছু ব্যাখ্যা করতে দ্বিধা করবেন না):

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

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

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

আমি অনুমান করি যে আমি এখানে এবং কিছু অনুমানের মধ্যে একটি ভুল করেছি, দয়া করে আমাকে ক্ষমা করুন। ধন্যবাদ!


14
প্রোগ্রামিং ল্যাঙ্গুয়েজগুলি সফ্টওয়্যার বর্ণনার জন্য, হার্ডওয়্যার বর্ণনার ভাষাগুলি হার্ডওয়্যার বর্ণনার জন্য।
Ignacio Vazquez-Abram

1
আপনি ভেরিলোগ বা ভিএইচডিএল দিয়ে ফার্মওয়্যারটি লেখেন না - আপনি চিপস, প্রোগ্রাম এফপিজিএ এবং মাদারবোর্ড ডিজাইন করার জন্য ভেরিলোগ বা ভিএইচডিএল ব্যবহার করেন। আপনি ফার্মওয়্যার লেখার জন্য সি বা অ্যাসেমব্লী ব্যবহার করেন। আপনি মাদারবোর্ডগুলি ডিজাইনের জন্য সি / সি ++ ব্যবহার করতে পারেন - এমন একটি লাইব্রেরি রয়েছে সিস্টেমসি নামক একটি সি তৈরির দ্বারা সংকলন করে এমন একটি প্রোগ্রাম তৈরি করতে যা আপনার নকশাকে অনুকরণ করে তবে একটি সিস্টেমসি সংকলক দ্বারা সার্কিটগুলিতে সংকলনও করা যায়।
slebetman

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

উত্তর:


28

সি বা কিছু অ্যাসেমব্লির মতো প্রোগ্রামিং ভাষার উপর যেমন ভেরিলোগ এবং ভিএইচডিএল হিসাবে হার্ডওয়্যার বর্ণন ভাষা (এইচডিএল) ব্যবহার করার অনুপ্রেরণা কী?

সিপিইউকে কী করা উচিত তা বলার জন্য সি এবং অ্যাসেমবিলি ভাল ভাষা। তারা একক রাষ্ট্রের মেশিন দ্বারা ক্রমানুসারে করা কর্মগুলি বর্ণনা করে।

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

আমি সি বা অ্যাসেমব্লিতে ফার্মওয়্যার লিখতে হবে কিনা তা নিয়ে সন্দেহ প্রকাশ করে আলোচনা দেখে অবাক হয়েছি (আপনার যদি সিপিইউ না থাকে তবে সমাবেশ কীভাবে উপযুক্ত?)

এই প্রশ্নে যা জিজ্ঞাসা করা হয়েছে তা হ'ল, "আপনি যদি মাইক্রোক্রন্ট্রোলারের কোড লিখছেন তবে যদি আপনি অ্যাসেম্বলি বা সি বা অন্য কোনও উচ্চ স্তরের ভাষায় লিখেন তবে কি কোনও পার্থক্য রয়েছে?"

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

একটি ফার্মওয়্যার সত্যিই হয় এইচডিএল বা একটি সফ্টওয়্যার প্রোগ্রামিং ভাষায় লেখা যেতে পারে, বা এটি একই মিশন সম্পাদন করার অন্য উপায়?

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

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

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

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

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


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

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

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

10

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

সি সঙ্কলিত হয়ে এসেম্বলি কোডে অনুবাদ করা হয় (এর বাইনারি আকারে, অর্থাৎ মেশিনের ভাষায়) । এই কোডটি সিপিইউকে একটি মৌলিক ক্রিয়াকলাপ (একটি রেজিস্টারের মান পরিবর্তন করুন, একটি সংযোজন সম্পাদন করা ইত্যাদি) করতে বলেছে এমন একটি নির্দেশের একটি সিরিজ।

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

output <= input1 + input2;

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

আসলে, আপনি ভিএইচডিএলে একটি সিপিইউ ডিজাইন করতে পারেন ( সফট কোর প্রসেসর ভিএস হার্ড কোর প্রসেসর দেখুন ) এবং এর জন্য সিটিতে সফ্টওয়্যারটি লিখতে পারেন ...

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


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

3

হার্ডওয়্যার সম্মতি একটি প্রধান অনুপ্রেরণা।

ইলেকট্রনগুলি একই সময়ে সমান্তরাল তারে প্রবাহিত হতে পারে, তাই আমরা যখন হার্ডওয়্যার ডিজাইন করার সময় সেটি বিবেচনায় নিতে চাই।

ভিএইচডিএলে, আপনি যদি এমন কিছু লিখেন:

x <= a or b;
y <= a and b;
z <= x xor y;

(কোনও processবা এর বাইরে function, যা স্পষ্টভাবে এটি ক্রমিক হিসাবে চিহ্নিত করে), তারপরে আপনি এই সত্যটি এনকোড করেছেন:

  • x, y, z, aএবং bতারের হয়
  • aএবং bইনপুট সংকেত হয়
  • xএকটি আউটপুট সাথে সংযুক্ত করা হয় orবর্তনী, যা লাগে aএবং bইনপুট হিসাবে
  • এবং অন্যান্য লাইনের জন্য

এটি দেখতে কিভাবে যে প্রকৃত হার্ডওয়্যার মধ্যে সংশ্লেষিত করা হবে, এবং যে সহজ xএবং yএকই সময়ে মূল্যায়ন করা হয়।

        +-----+
A--+----+     |  X
   |    | OR  +-----+
B----+--+     |     |  +-----+
   | |  +-----+     +--+     |
   | |                 | XOR +-- Z
   | |  +-----+     +--+     |
   | +--+     |  Y  |  +-----+
   |    | AND +-----+
   +----+     |
        +-----+

তারপরে, সময় হওয়ার সময় যখন সার্কিটের অনুকরণ করা হয়, তখন সিমুলেটর (যা সাধারণত একটি অনুক্রমিক প্রোগ্রাম হয়) তাই সার্কিটের পদার্থবিজ্ঞানের অনুকরণ করে এরকম কিছু:

  • হয়েছে aবা bপরিবর্তন হয়েছে? হ্যাঁ? আরে, xনির্ভর করে a। আপডেট করা যাক x
  • yউপর নির্ভর করে a। পাশাপাশি আপডেট করুন।
  • zউপর নির্ভর করে x। এটি আপডেট করুন কারণ xআপডেট হয়েছিল।
  • x( aবা b) উপর নির্ভর করে এমন কিছু আছে যা আপডেট হয়েছে? কোন? একই জন্য yএবং z। ঠিক আছে, আমরা এই পদক্ষেপটি সম্পন্ন করেছি।

এটি "আকর্ষণীয়" সম্ভাব্য ফলাফলগুলির দিকে পরিচালিত করে যার কোনও অনুক্রমিক এনালগ নেই, তবে যা সম্ভাব্য শারীরিক পরিস্থিতির প্রতিনিধিত্ব করে:

  • x <= not xসিমুলেশন একটি অসীম পুনরাবৃত্তি হতে হবে। সিমুলেটারগুলি নির্দিষ্ট গভীরতার পরে কেবল কেটে ফেলতে পারে।
  • x <= 0; x <= 1একটি ত্রুটি বাড়ে (শর্ট সার্কিট)। এই একটা কারণ কেন std_logicবিদ্যমান।

তবুও, যদিও ভিএইচডিএল হার্ডওয়্যার সি এর চেয়ে আরও নিবিড়ভাবে মডেল করে, এটি এটির একটি পুরোপুরি বিশদ বিবরণ নয়:

  • সংশ্লেষযোগ্য মধ্যে শুধুমাত্র ভিএইচডিএল একটি উপসেট
  • অনেকগুলি শারীরিক সরলীকরণ করা হয়, বিশেষত যে সংকেতগুলি অসীমভাবে দ্রুত প্রচার করে, https://en.wikedia.org/wiki/Static_timing_analysis TODO দেখুন ভেরিলোগে বিলম্বের মডেল তৈরি করা সম্ভব: http://www.asic-world.com /verilog/gate3.html#Gate_and_Switch_delays

শেষ পর্যন্ত ভিএইচডিএল উচ্চ স্তরের মানুষের বোধগম্য সার্কিট কার্যকারিতা এবং নিম্ন স্তরের সংশ্লেষযোগ্যতার মধ্যে একটি দুর্দান্ত ভারসাম্য সরবরাহ করে।

অন্যদিকে সি, সিপিইউতে ধারাবাহিকভাবে কথা বলার দিকে বেশি মনোযোগী।

আপনি অবশ্যই সি স্ট্রাক্টস, এনামস এবং অ্যারেগুলির সাথে একটি সার্কিট এনকোড করতে পারেন এবং তারপরে এটি ভিএইচডিএলের মতো অনুকরণ করতে পারেন (এটি সিস্টেম সি এর মতো কমবেশি দেখায় , তবে আমি কখনই এটি চেষ্টা করি নি)।

তবে আপনি মূলত একটি ভিএইচডিএল সিমুলেটর এবং আরও ভার্চুজের ভাষা সহ পুনরায় প্রয়োগ করবেন। সঠিক কাজের জন্য আমি অনুমান করি সঠিক সরঞ্জাম।

এছাড়াও এমন সরঞ্জাম রয়েছে যা সি কে ভিএইচডিএল /programming/8988629/can-you-program-fpgas-in-c- پسند- ভাষাগুলিতে রূপান্তরিত করে তবে কম কর্মক্ষমতার প্রত্যাশায় যেহেতু সেগুলি উচ্চতর স্তরের রূপান্তর।


0

এইচডিএলগুলি হার্ডওয়্যার বর্ণনা করার জন্য (সিনথেসাইজ করা) ব্যবহৃত হয় যেখানে প্রোগ্রামিং ভাষা হিসাবে ইতিমধ্যে সংশ্লেষিত হার্ডওয়্যার অর্থাৎ সিপিইউ প্রোগ্রাম করার জন্য ব্যবহৃত হয় program

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


-1

একটি প্রসেসর বেশিরভাগ উপাদান বিভিন্ন সময়ে বিভিন্ন অপারেশন সঞ্চালনের অনুমতি দিয়ে ক্রমানুসারে প্রচুর পরিমাণে ক্রিয়াকলাপ সম্পাদনের জন্য পরিমিত পরিমাণের সার্কিটরি ব্যবহার করে।

একটি এফপিজিএতে বেশ কয়েকটি সার্কিট রয়েছে যা অন্তত স্বতন্ত্রভাবে - বিশেষত পরিশীলিত অপারেশন করতে পারে না, তবে তারা একযোগে এবং স্বাধীনভাবে অভিনয় করতে সক্ষম।

মনে করুন যে কোনও একটি চিপ রাখতে চান যা বেশ কয়েকটি কাজ করে, যার মধ্যে 15 টি ইনপুট নিরীক্ষণ করা হয়:

  • আউটপুটকে যে কোনও সময় উচ্চতর সেট করা সমস্ত ইনপুট কমপক্ষে 21 মিমের জন্য স্থিতিশীল ছিল এবং উচ্চতর ইনপুটগুলির সংখ্যা তিনটির একাধিক
  • আউটপুটকে যেকোন সময় কম সেট করা সমস্ত ইনপুট কমপক্ষে 21 মিমের জন্য স্থিতিশীল ছিল এবং যে ইনপুটগুলি বেশি সেগুলি তিনটির একাধিক নয়
  • যেকোন ইনপুট পরিবর্তনের সময় এবং সমস্ত ইনপুট কমপক্ষে 20 মিমি স্থিতিশীল থাকা সময়ের মধ্যে নির্বিচারে ফ্যাশনে আউটপুট পরিবর্তন করা।

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

ভেরিলগ বা ভিএইচডিএল ব্যবহার করে, এমন একটি হার্ডওয়্যার সার্কিট তৈরি করা যেতে পারে যা নিয়মিত 15 ইনপুটগুলি পর্যবেক্ষণ করতে পারে এবং নির্দেশিত গণনা সম্পাদন করতে পারে। এই জাতীয় কোনও ডিভাইস সম্ভবত 100 মনের মধ্যে আউটপুট একটি সঠিক ইঙ্গিত তৈরি করতে সক্ষম হতে পারে - মাইক্রোকন্ট্রোলারের তুলনায় দ্রুততার আদেশ - তবে সেই কাজটিতে নিবেদিত সার্কিটরির পরিমাণ এবং অন্য কোনও উদ্দেশ্যে অকার্যকর greater


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

@ ক্রিসট্রেটটন: সম্ভবত আমার পরামর্শ দেওয়া উচিত ছিল যে সময়কালের প্রয়োজনীয়তা আরও কঠোর হয়ে উঠলে জিনিসগুলি পরিবর্তিত হতে পারে? প্রতি 20 মিনিটে সিপিইউতে কয়েকটি মাইক্রোসেকেন্ড উপলব্ধ হওয়ার প্রয়োজনে অন্তর্নিহিত সিস্টেমে কোনও পরিবর্তন প্রয়োজন হতে পারে না, তবে প্রতিক্রিয়া সময়টি 200us হওয়ার প্রয়োজন হলে এ জাতীয় প্রয়োজন অন্যথায় প্রয়োজনের চেয়ে আরও দ্রুত সিপিইউ প্রয়োজন হতে পারে 20us এর অধীনে, কেবল এটি পরিচালনা করতে অতিরিক্ত সিপিইউ যুক্ত করা প্রয়োজন হতে পারে এবং 200ns এর নীচে থাকলে কোনও সিপিইউ দিয়ে এটি সম্পাদন করা অসম্ভব হতে পারে।
সুপারক্যাট

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

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

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