কী ওপেন সোর্স লাইব্রেরিগুলি ভিএইচডিএল-তে সি ++ বা অজগরের জন্য সেভাবে বিদ্যমান?


11

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

আইইইই স্ট্যান্ডার্ড লাইব্রেরিগুলিতে কেবলমাত্র ডেটা টাইপ (সি স্ট্যান্ডার্ড লাইবের মতো সাজানো) যেমন খুব বেসিকগুলি আবৃত করা যায় বলে মনে হয়।

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

আমি কি আমার প্রকল্পগুলিতে আমদানি করতে পারি এমন কোনও ওপেন সোর্স লাইব্রেরি উপলব্ধ আছে? সবাই কেন একই জিনিসগুলির জন্য নিজস্ব কোড রোল করে বলে মনে হচ্ছে?


2
আপনি কি ওপেনকোর্স.আরোগুলি অনুসন্ধান করেছেন?
মার্কু

3
ভিএইচডিএল যাচাইকরণ গ্রন্থাগারগুলির জন্য, osvvm.org দেখুন
জিম লুইস

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

উত্তর:


14

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

@ ক্রগ্রাস বর্ণিত হিসাবে এটি মডিউলগুলি ডিজাইন করা বেশ জটিল, যা:

  • অনেক প্ল্যাটফর্মে কাজ
  • সর্বাধিক বিক্রেতার সরঞ্জাম চেইন সমর্থন করে
  • কম / কম ওভারহেড যোগ করুন

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

উদাহরণস্বরূপ, PoC.fifo_cc_gotএকটি 'সাধারণ ঘড়ি' (সিসি) ইন্টারফেস সহ একটি ফিফো এবং ফিফোটি নিয়ন্ত্রণ করার জন্য সংকেতগুলি রাখা / রাখা হয়েছে। ফিফো প্রস্থ, গভীরতা, ফিল-স্টেট বিট এবং প্রয়োগের ধরণের ক্ষেত্রে কনফিগারযোগ্য। একটি LUT- ভিত্তিক র‌্যাম বা অন-চিপ-র‌্যাম (ocram) প্রয়োগের ধরণ চয়ন করা সম্ভব। যদি এই ফিফোটি আল্টেরার জন্য অ্যাকরাম বিকল্পের সাথে সংশ্লেষিত হয় তবে এটি অলটসাইক্রাম ব্যবহার করে; যদি জিলিনেক্স চয়ন করা হয় তবে এটি জেনেরিক ব্লকআরএএম বর্ণনাটি ব্যবহার করে এবং সুস্পষ্ট ক্যারিচেইন ইনস্ট্যান্টেশন দ্বারা পয়েন্টার গাণিতিক প্রয়োগ করে (জিলিনক্স এক্সএসটি অনুকূল সমাধানটি খুঁজে পায় না, সুতরাং এটি ম্যানুয়ালি করা হয়েছে)।

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

আমি মনে করি এটি প্রমাণ করে, সাধারণ মডিউলগুলি লেখা সম্ভব, যা একাধিক প্ল্যাটফর্মে কাজ করে এবং বিভিন্ন সরঞ্জাম (স্পার্টান-> ভার্টেক্স, সাইক্লোন -> স্ট্রাইটেক্স; আইএসই, ভিভাডো, কোয়ার্টাস) সংকলন করে।

পিওসি ছাড়াও অন্যান্য ওপেন সোর্স লাইব্রেরি রয়েছে:


গিটহাবের "ডিসকভার ফ্রি অ্যান্ড ওপেন সোর্স সিলিকন" ( এফওএসসি ) প্রকল্পগুলি সমস্ত গিটহাব প্রকল্পের ব্রাউজযোগ্য ডেটাবেস সরবরাহ করে যা মূলত , , বা অন্য কোনও গুরুত্বপূর্ণ হার্ডওয়্যার বিবরণ ভাষা ( ) ব্যবহার করে।

আরো দেখুন:


আপনি কী করেছেন এবং অন্যেরা কী করেছে তা দেখানোর জন্য +1। ভাল দীর্ঘ তালিকা।
মিস্টার মাইস্টেয়ার

3

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

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

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

সুতরাং নীচের লাইনটি এমন কোনও লাইব্রেরি নেই এবং আপনার বর্তমান পদ্ধতির শব্দটি দুর্দান্ত।


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

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

2

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

ওপেনকোরস.আর.জি এখন পর্যন্ত বৃহত্তম ওপেন সোর্স ডাটাবেস।

অনুসন্ধানের প্রক্রিয়াটি সহজ করার জন্য, ডাউনলোড এবং কোড ব্রাউজিং (গিথুবের মাধ্যমে) আপনি এই আধুনিক ইন্টারফেসটি ব্যবহার করতে পারেন:

http://freerangefactory.org/cores.html

উদাহরণস্বরূপ, আপনি সিরিয়ালটি অনুসন্ধান করলে আপনি এখানে শেষ করতে পারেন:

http://freerangefactory.org/cores/communication_controller/serial_uart_2/index.html

এবং সরাসরি গিটহাবের কোডে ঝাঁপুন। সেখানে আপনি দেখতে পাবেন যে আপনি সিরিয়াল মডিউলটি খুব সহজেই ইনস্ট্যান্ট করতে পারেন এবং এটির সাথে আপনার নিজের সার্কিটটি সংযুক্ত করতে পারেন এবং ডেটা প্রেরণ এবং গ্রহণ শুরু করতে পারেন। এটি সি ++ এ সিরিয়াল লিবের মতোই সহজ।

আশা করি এটা কাজে লাগবে.


0

এই ধরণের জিনিসটির জন্য আমি যে প্রথম সাইটটিতে যাচ্ছি (যেমনটি @ মারকু উল্লিখিত) ওপেনকোরস.আর.ও.

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


ওপি এটিই বলে না। তিনি বা সে ওপেনকোরস.আর.আর দেখার বিষয়ে জানেন প্যারামিটারাইজড এফএফটি ইঞ্জিন পাইথনের একটি স্ট্যান্ডার্ড ম্যাথ লাইব্রেরি আমদানি করা এবং এটি ব্যবহার করা থেকে অনেক দূরে। ওভারহেডের কারণে হার্ডওয়্যারে "মিডলওয়্যার" বলে কোনও জিনিস নেই।
ক্রাগ্রেস

0

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

ওএসভিভিএমের ওয়েবসাইট এবং ব্লগটি http://osvvm.org এ রয়েছে । প্যাকেজগুলি গিথুব এ এখানে পাওয়া যায়: https://github.com/ জিমলিউইস / ওএসভিভিএম

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