সংশ্লেষণকারী সরঞ্জাম দ্বারা কীভাবে কোডটি আরটিএল সার্কিটের মধ্যে অন্তর্ভুক্ত করা হয়েছে সেই ক্ষেত্রে ভিএইচডিএল-তে কোনও প্রক্রিয়া যদি ইফ-এলস কনস্ট্রাক্ট এবং কেস স্টেটমেন্ট কনস্ট্রাক্টসের মধ্যে পার্থক্য বলতে পারেন কেউ?
if-elsif-else
কনস্ট্রাক্ট একটি অগ্রাধিকার নেটওয়ার্কের রাউটিং infers:
এই সার্কিটটি অনুকরণ করুন - সার্কিটল্যাব ব্যবহার করে স্কিম্যাটিক তৈরি করা হয়েছে
এটি অনুরূপ
if bool_expr_1 then
sig <= val_expr_1;
elsif bool_expr_2 then
sig <= val_expr_2;
elsif bool_expr_3 then
sig <= val_expr_3;
else
sig <= val_expr_4;
end if;
case
কনস্ট্রাক্ট অন্যদিকে একটি বড় infers ওল 'mux:
এটি অনুরূপ
case case_expr is
when c0 =>
sig <= val_expr_0;
when c1 =>
sig <= val_expr_1;
when c2 =>
sig <= val_expr_2;
...
when others =>
sig <= val_expr_N;
end case;
স্পষ্টতই এগুলি কেবলমাত্র একটি মান অভিব্যক্তি সহ খুব সরল নকশাগুলি, ফলস্বরূপ একটি আউটপুট।
একাধিক নেস্টেড কেস-এর সাথে বিবেচনা করবেন না এবং যদি-প্রক্রিয়াটির ভিতরে বাছাই করে কেস-স্টেটমেন্টগুলি মিশ্রিত করেন।
উপরের হিসাবে, আপনি দেখতে পাবেন যে তারা কীভাবে বাসা বেঁধে রাখবে / মিশ্রিত করবে।
এছাড়াও কখন কোন কনস্ট্রাক্ট ব্যবহার করবেন?
যেহেতু if-else
infers অগ্রাধিকার, এটা যখন একটির বেশি ইনপুট অবস্থা ঘটতে পারে ব্যবহার করা উচিত। case
ইনপুটগুলি পারস্পরিক একচেটিয়া হয়ে গেলে অন্যদিকে ব্যবহার করা উপযুক্ত।
dec
/jz
নির্দেশনা করে, যা আরও কার্যকর। সম্ভবত এখানে অনুরূপ অপ্টিমাইজেশন প্রয়োগ করা হয়েছে।