সফট-সিপিইউ যাচাইকরণ


18

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

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

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

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

উত্তর:


16

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

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

  2. লিখুন, সি / সি ++ বা কিছু ব্যবহার করে, আপনার সিপিইউর একটি মডেল। এটি আপনার ভার্চুয়াল সিপিইউ। এটি আপনার "সোনার সিপিইউ", অর্থাত্ এই সিপিইউ যা অন্য সমস্ত কিছুর সাথে তুলনা করা। মূলত ব্যক্তি VHDL লিখেছেন নয় একই ব্যক্তি যিনি সি / সি ++ মডেল লিখেছেন।

  3. এমন একটি সিস্টেম লিখুন / তৈরি করুন যেখানে আপনি সি / সি ++ মডেল এবং ভিএইচডিএল মডেল পাশাপাশি পাশাপাশি চালাতে পারেন, এবং ফলাফলটিকে একটি চক্র-ভিত্তিতে-চক্রের সাথে তুলনা করুন। পদক্ষেপ 1 থেকে আপনার সমাবেশ প্রোগ্রামটি চালান এবং দুটি মডেলের মিল রয়েছে তা নিশ্চিত করুন।

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

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

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

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

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


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

আপনার কাছে একটি সোনালী, তবে নন-চক্র-নির্ভুল, সি ++ মডেল থাকতে পারে যা এটি আরও সহজ হতে দেয় এবং তাই সঠিক হওয়ার সম্ভাবনা বেশি - উদাহরণস্বরূপ ALU কার্যকারিতা পরীক্ষার জন্য দরকারী ("2 + 2 = 4 এবং কিছু পতাকা, আমি যখন একটি টিকের পরে "2 + 2 = 4" এবং 2 টিকের পরে পতাকাগুলি "" পরিবর্তে "যখন চিন্তা করবেন না)
মার্টিন থম্পসন

এছাড়াও, কোড-কভারেজ চালান (আপনি এটি সমস্ত প্রয়োগ করেছেন তা পরীক্ষা করতে) এবং পরীক্ষা-কভারেজ (সমস্ত পরীক্ষাগুলি পাস এবং ব্যর্থ উভয়ের জন্য পরীক্ষা করা হয়েছে)
মার্টিন থম্পসন

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