ভিএইচডিএল: ডিজাইনে মাল্টিপ্লায়ারগুলি প্রয়োগ করার সময় '*' অপারেটরটি ব্যবহার করা


10

বর্তমান দিনের এফপিজিএগুলি ডিএসপি ব্লকগুলিতে তৈরি করেছে, সর্বশেষতম এফপিজিএগুলি এমনকি আইইইই-75৫৪ অনুবর্তী ভাসমান পয়েন্ট ইউনিট তৈরি করেছে।

এটিতে প্রয়োজনীয় প্যারামিটারগুলি নির্বাচন করার পরে একটি জিইউআই ব্যবহার করে ডিএসপি সত্তা / মডিউল তৈরি করা সম্ভব, এবং তারপরে এটি নকশায় ইনস্ট্যান্টিয়েন্ট করা সম্ভব।

প্রকৃত ডিএসপি ব্লকগুলি তাত্ক্ষণিক নকশায় কখন আমাদের এই ধরনের মাইক্রোম্যানেজমেন্ট করা দরকার এবং যখন আমরা কেবল কোডে একটি '*' অপারেটর প্রবেশ করি এবং সংশ্লেষণের সরঞ্জামটি নিম্ন স্তরের বিশদটি পরিচালনা করি? কোনটা ভাল?

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


কোন এফপিজিএতে ফ্যাব্রিকের 754- অনুগত FPUs রয়েছে?
মার্টিন থম্পসন

উত্তর:


6

আমি নিজে কয়েকবার এটি করেছি।

সাধারণত, ডিজাইনের সরঞ্জামগুলি সংশ্লেষণের সেটিংসের উপর ভিত্তি করে একটি ফ্যাব্রিক বাস্তবায়ন এবং একটি ডিএসপি স্লাইসের মধ্যে নির্বাচন করবে।

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

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

যাইহোক, যদি মনে হয় আপনি স্লাইসগুলি ডিএসপি স্লাইসের সর্বাধিক গতির (স্পার্টান normal সাধারণ গতির গ্রেডের জন্য ৩৩৩ মেগাহার্টজ) কাছাকাছি চালাচ্ছেন তবে আপনি সমস্ত স্লাইস ব্যবহার করতে চলেছেন, আপনাকে ম্যানুয়ালি সেগুলি নির্ধারণ করা উচিত ।

এই ক্ষেত্রে, আপনার কাছে দুটি বিকল্প রয়েছে।

বিকল্প 1: ম্যানুয়ালি কাঁচা ডিএসপি ইনস্ট্যান্টেশন টেম্পলেট ব্যবহার করুন। বিকল্প 2: জিলিনেক্স কোর জেনারেটরের একটি আইপি ব্লক ব্যবহার করুন। (আমি এই বিকল্পটি ব্যবহার করব the একই সাথে, আপনি মূল জেন সম্পর্কে সমস্ত কিছু শিখবেন যা ভবিষ্যতে সহায়তা করবে)

এর মধ্যে দুটি করার আগে, ডিএসপি স্লাইস ব্যবহারকারী গাইডের প্রথম দু'টি পৃষ্ঠা পড়ুন। স্পার্টান 6, (ডিএসপি 48 এ 1) এর ক্ষেত্রে এটি জিলিনক্স ডক ইউজি 389 হবে: http://www.xilinx.com/support/docamentation/user_guides/ug389.pdf

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

কোর জিনে, আপনি বেছে নিতে পারেন বিভিন্ন আইপি ব্লকগুলি একবার দেখুন - কয়েকটি ডজন রয়েছে, যার বেশিরভাগই দুর্দান্ত।

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

গত বছর যখন আমি 5 বাই 3 অর্ডার আইআইআর ফিল্টার তৈরি করছিলাম তখন আমি ম্যানুয়াল ইনস্ট্যান্টেশন টেম্পলেটটি ব্যবহার করতে হয়েছিল যেহেতু আমি খুব কাস্টম বাস্তবায়ন তৈরি করছিলাম, 2 ডিএসপি স্লাইস নমুনা হারের চেয়ে 4x দ্রুত ক্লকড সহ। এটি মোট ব্যথা ছিল।


13

আপনি যদি কেবল দুটি সংখ্যার গুণন করতে চান এবং তারা ডিএসপি ব্লকের জন্য উপযুক্ত হয় তবে *অপারেটরের একটি ডিএসপি ব্লকটি নির্ধারণ করা উচিত। যদি তা না হয় তবে সংশ্লেষণের সরঞ্জামটি আবার প্রেরণ করুন :)

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

  • প্রি-অ্যাডারের ব্যবহার
  • পোস্ট সংগ্রহকারী ব্যবহার
  • প্যাটার্ন ডিটেক্টর ব্যবহার করুন
  • লজিক ইউনিট ব্যবহার

এবং বিশেষ করে উপরের সংমিশ্রণগুলি।

সংশ্লেষণের সরঞ্জামগুলি এখনও আপনার আশা মতো দক্ষতার সাথে যুক্তি এবং পাটিগণিতের সম্পূর্ণ স্বেচ্ছাচারিত সংমিশ্রণের মানচিত্রের পক্ষে যথেষ্ট ভাল নয় good


4

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

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

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


হার্ডওয়্যার গুণক ব্যবহার করার সময় কেন এটি টাইমিংয়ে ব্যর্থ হয়?
কোয়ান্টাম 231

32 বিট বাই 32 বিট নন-পাইপলাইনযুক্ত গুণটি 8 এনএস থেকে বেশি সময় নেয়, স্পষ্টতই।
অ্যালেক্স.ফরঞ্চিচ

হুম আমি দেখছি, এটি বিবেচনা করে নি। সুতরাং ডিএসপি ব্লকগুলি পাইপযুক্ত নয়। আমি অবাক হয়ে দেখি যে তারা ঠিক কীভাবে গুণনটি বাস্তবায়ন করে। এটি কি সত্যিকারের শক্ত সমান্তরাল গুণক?
কোয়ান্টাম 231

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

2

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

আমি জানতাম না যেখানে এফপিজিএগুলিতে শক্তিশালী এফপি গুণিতক রয়েছে।

একটি সিপিইউর জন্য উপযুক্ত একটি আসল আইইইই পি 7575০ কমপ্লিয়েন্টাল গুণ গুণক অপারেটর একটি বৃহত গুণক এর চেয়ে বেশি জড়িত: আপনাকে এক্সটেনশন যুক্ত করতে হবে, শিফট ডেনোরমালগুলি ইনফিনাইটগুলি পরিচালনা করতে হবে এবং কয়েকটি বেশিরভাগ অকেজো পতাকা লাগাতে হবে (অক্ষত, আন্ডারফ্লো ...)


আল্টেরা 10 সিরিজের মতো সর্বশেষ প্রজন্মের এফপিজিএগুলির হার্ডওয়্যারেই আইইইই -754 কমপ্লায়েন্ট ফ্লোটিং পয়েন্ট মাল্টিপ্লায়ার রয়েছে! যদিও সেগুলি আমি নিজে ব্যবহার করার সুযোগ পাইনি।
কোয়ান্টাম 231

যদি আমরা ডিএসপি ব্লকগুলি তৈরি করে থাকি তবে এফপিজিএগুলি সংযুক্তি গুণক পরিবর্তে তাদের ব্যবহার করা উচিত বা অন্য কোনও অ্যালগরিদম ব্যবহার করা উচিত যেমন মেমরি ব্লককে সঠিকভাবে ব্যবহার করে?
কোয়ান্টাম 231

2

আমি এই দস্তাবেজটি http://www2.warwick.ac.uk/fac/sci/eng/staff/saf/papers/fpl2014-ronak.pdf পড়েছি :

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

আমি আশা করি যে আমি তাদের সরঞ্জামগুলির উত্সগুলি তাদের অনুসন্ধানগুলি পরীক্ষা করার জন্য খুঁজে পেতে পারি।

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