ভিএইচডিএল: আর্কিটেকচারের নামকরণ এবং ব্যাখ্যা


14

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

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

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

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

  • যদি কোনও একক সত্তার জন্য একাধিক আর্কিটেকচার নির্দিষ্ট করে দেওয়া হয় (যা আমি বুঝতে পেরেছি এটি সম্ভব) আপনি কেবল একই ফাইলটিতে আর্কিটেকচারের বিভিন্ন নাম দেন বা ...?

  • আর্কিটেকচারের নামগুলি কি কোনও প্রদত্ত সত্তার মধ্যে সীমাবদ্ধ? (একাধিক সত্তার উপরে একই আর্কিটেকচার নামটি ব্যবহার করে "নেমস্পেসগুলি" নিয়ে কোনও সমস্যা আছে)?

সম্পাদনা করুন: এবং আরও একটি:

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

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

উত্তর:


6

কোনও সত্তার দিকে তাকালে, কীভাবে একজন আর্কিটেকচারের নাম থেকে ইঙ্গিত ছাড়াই প্রকৃত স্থাপত্যের মডেল ব্যবহার করা যায় তা নির্ধারণ করতে পারে?

আপনি পারবেন না - যখন এটি ইনস্ট্যান্ট বা কনফিগার করা হবে তখন আর্কিটেকচারটি নির্দিষ্ট করা যেতে পারে (যদি বেছে নেওয়ার জন্য একাধিক লোক থাকে) বা আপনার জন্য একটি ডিফল্ট চয়ন করা হবে।

যদি কোনও একক সত্তার জন্য একাধিক আর্কিটেকচার নির্দিষ্ট করে দেওয়া হয় (যা আমি বুঝতে পেরেছি এটি সম্ভব) আপনি কেবল একই ফাইলটিতে আর্কিটেকচারের বিভিন্ন নাম দেন বা ...?

আপনি তাদের বিভিন্ন নাম দিন। এটি একই ফাইলের মধ্যে থাকতে হবে না (আসলে ভিএইচডিএল কোন ফাইলের মধ্যে যা আছে তার সম্পর্কে আপনি ভাবার চেয়ে অনেক কম চিন্তা করেন)

আর্কিটেকচারের নামগুলি কি কোনও প্রদত্ত সত্তার মধ্যে সীমাবদ্ধ? (একাধিক সত্তার উপরে একই আর্কিটেকচার নামটি ব্যবহার করে "নেমস্পেসগুলি" নিয়ে কোনও সমস্যা আছে)?

এগুলি কোনও সত্তার সাথে "সংযুক্ত" থাকে, তাই পুনরায় ব্যবহার করা যায়।

a1সংশ্লেষযোগ্য প্রতিটি কিছুর জন্য আমি প্রায়শই আমার স্থাপত্য হিসাবে ব্যবহার করি

  • rtl আমি লেখার চেয়ে নিম্ন স্তরের (অনেক পাঠকের কাছে) বোঝায়।
  • behavioural প্রায়শই অ-সংশ্লেষযোগ্য (কিছু পাঠকের কাছে) বোঝায়
  • synth এটির মডেলটির জন্য সিনথেসাইজার দ্বারা ব্যবহৃত হয় (অন্যথায় আমি এটি ব্যবহার করতাম)

a1 এখনও অবধি বিরোধহীন এবং বিভ্রান্তির কারণ হয় না;)

যদি আমার কাছে একাধিক আর্কিটেকচার থাকে তবে আমি তাদের নামটি ভারবোজিভাবে রাখি (উদাহরণস্বরূপ hard_multipliersএবং lut_multipliersএমন ফিল্টারের জন্য যা ইনস্ট্যান্ট করে - না - MUL18 ব্লক)।

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

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

এটি historicalতিহাসিক - আপনি "আচরণগত" কোডটি সংশ্লেষ করতে সক্ষম হতেন না (যা এক পর্যায়ে যোগ করার মতো জিনিসগুলি অন্তর্ভুক্ত করে!) - সুতরাং আপনি একটি আরটিএল সংস্করণ তৈরি করেছিলেন যা সংযোজক এবং তাদের মতো করে তোলে। (এটি আমি যেমন বুঝতে পেরেছি - ১৯৯৯ সালে ভিএইচডিএলিং শুরু করার পর থেকে আমি আচরণগত (এবং এখনও সংশ্লেষযোগ্য) কোডটি লিখছি!)


আমি পয়েন্ট বাই পয়েন্ট উত্তর প্রশংসা করি!
MartyMacGyver

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

8

এখানে স্থাপত্যের ধরণগুলি রয়েছে:

ব্যবহারিক:

সাধারণ নোট:

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

Xilinx নির্দিষ্ট নোট

  • সাধারণত কোর জেনারেটর মডেলগুলি প্রাক সংশ্লেষণ .vhd ফাইল

কাঠামোগত:

সাধারণ সংজ্ঞা

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

Xilinx এক্সপিসিফিক নোট

  • মূল জেনারেটরের মডেলগুলি সময় বিবেচনা করে না।
  • সাধারণত মূল জেনারেটর মডেলগুলি সংশ্লেষ পরবর্তী নেটলিস্টগুলি ইনস্ট্যান্ট করে

উপরেরটি মূলত স্থাপত্যের প্রচলিত প্রধান দুটি প্রাণী। খুব সাধারণত একটি "মিশ্র" সংজ্ঞা ব্যবহৃত হয়, যার মধ্যে উভয়ের বৈশিষ্ট্য রয়েছে।

আরটিএল:

আরটিএল আসলে দিনের শেষে এফপিজিএতে রাখা হয়। সুতরাং এটি সংশ্লেষযোগ্য কোড যা সিস্টেমের আচরণকে সংজ্ঞায়িত করে এবং একটি কোড স্তরক্রম নিয়ে গঠিত:
নীচের স্তরগুলি সংশ্লেষযোগ্য আচরণ হবে, যেখানে সংকেত আচরণের নিত্ত্বপূর্ণ কৃপণতা সংজ্ঞায়িত করা হয়েছে, এবং উপরের স্তরগুলি কাঠামোগত হবে, যেখানে আচরণের উপাদানগুলি একত্রে আবদ্ধ হয় যদি আপনি চান তবে একটি বড় শীর্ষ স্তরের "ব্লক ডায়াগ্রাম" তৈরি করুন।

একাধিক আর্কিটেকচারে:

আর্কিটেকচার সবই এক ফাইলে বা একাধিক ফাইলে থাকতে পারে। একমাত্র গুরুত্বপূর্ণ বিষয় হ'ল সত্তাটি প্রথমে সংকলিত হয় এবং ব্যবহারের জন্য আর্কিটেকচারটি নির্দিষ্ট করা হয়।

এই বইটি খুব সহজ এবং এই ধরণের জিনিসটি বেশ ভালভাবে বিশদ দেয়।

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


উত্তরের জন্য এবং বইটির টিপটির জন্য ধন্যবাদ (যদিও এটি স্পষ্টতই অর্জন করা খুব কঠিন একটি আইটেম)।
MartyMacGyver

@ মার্টিম্যাকজিভার: হ্যাঁ, আমি সাধারণত গুগল ডক্স সংস্করণটি পড়ে থাকি: পি
স্টানরি

আমি চাইতাম তবে এটি ইচ্ছাকৃতভাবে পাতাগুলি হারিয়ে যাচ্ছে ...
মার্টিম্যাকজিভার

1

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

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

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

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

আর্কিটেকচারগুলি বিভিন্ন ফাইলে থাকতে পারে, আপনাকে কেবল সুনির্দিষ্ট ঘোষণাটি প্রথম সংকলিত হয়েছে তা নিশ্চিত করতে হবে।

সত্তাটি ইনস্ট্যান্ট করার সময় বা কনফিগারেশন বিবৃতি ব্যবহার করার সময় আপনি কোন আর্কিটেকচারটি ব্যবহার করতে পারেন তা নির্বাচন করতে পারেন। আপনি যদি না করেন, পূর্বনির্ধারিত সত্তা ঘোষণার জন্য সংকলকটি দেখেছে ডিফল্টটি সাধারণত 'সাধারণত' হয় architect


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