Amazon Best VPN GoSearch

অনওয়ার্কস ফেভিকন

ভেরিলেটর - ক্লাউডে অনলাইন

উবুন্টু অনলাইন, ফেডোরা অনলাইন, উইন্ডোজ অনলাইন এমুলেটর বা MAC OS অনলাইন এমুলেটরের মাধ্যমে OnWorks ফ্রি হোস্টিং প্রদানকারীতে ভেরিলেটর চালান

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

কার্যক্রম:

NAME এর


ভেরিলেটর - ভেরিলগ কোডকে C++/SystemC-তে রূপান্তর করুন

সাইনোপিসিস


ভেরিলেটর -- সাহায্য
ভেরিলেটর --সংস্করণ
ভেরিলেটর --cc [বিকল্প] [top_level.v]... [opt_c_files.cpp/c/cc/a/o/so]
ভেরিলেটর --sc [বিকল্প] [top_level.v]... [opt_c_files.cpp/c/cc/a/o/so]
verilator --lint-only [top_level.v]...

বর্ণনাঃ


ভেরিলেটর সিন্থেসাইজেবল (আচরণগত নয়) ভেরিলগ কোডকে রূপান্তর করে, সাথে কিছু সংশ্লেষণ,
SystemVerilog এবং C++ বা SystemC কোডে ভেরিলগ AMS দাবির একটি ছোট উপসেট। এটা
একটি সম্পূর্ণ সিমুলেটর নয়, কিন্তু একটি কম্পাইলার।

জিসিসি, ক্যাডেন্স ভেরিলগ-এক্সএল/এনসি-ভেরিলগ, অথবা
Synopsys এর VCS. এটি নির্দিষ্ট ভেরিলগ কোড পড়ে, এটি লিন্ট করে এবং ঐচ্ছিকভাবে যোগ করে
কভারেজ এবং ওয়েভফর্ম ট্রেসিং কোড। C++ এবং SystemC ফরম্যাটের জন্য, এটি .cpp এবং .h আউটপুট করে
ফাইল।

ভেরিলেটর দ্বারা তৈরি ফাইলগুলি তারপর C++ দিয়ে কম্পাইল করা হয়। ব্যবহারকারী একটু C++ লেখেন
wrapper ফাইল, যা শীর্ষ স্তরের মডিউলটি তাত্ক্ষণিক করে এবং এই ফাইলের নামটি পাস করে
কমান্ড লাইন। এই C ফাইলগুলি C++ এ কম্পাইল করা হয় এবং ভেরিলেটেড ফাইলের সাথে লিঙ্ক করা হয়।

ফলস্বরূপ এক্সিকিউটেবল প্রকৃত সিমুলেশন সম্পাদন করবে।

শুরু করতে, "EXAMPLE C++ EXECUTION"-এ যান।

যুক্তি সংক্ষিপ্তসার


এটি ভেরিলেটরের আর্গুমেন্টের একটি সংক্ষিপ্ত সারাংশ। বিস্তারিত বিবরণ দেখুন
আরো তথ্যের জন্য পরবর্তী বিভাগ.

{file.v} ভেরিলগ শীর্ষ স্তরের ফাইলের নাম
{file.c/cc/cpp} কম্পাইল করার জন্য ঐচ্ছিক C++ ফাইল
{file.a/o/so} লিঙ্ক করার জন্য ঐচ্ছিক C++ ফাইল

+1364-1995ext+ ফাইল এক্সটেনশন সহ ভেরিলগ 1995 ব্যবহার করুন
+1364-2001ext+ ফাইল এক্সটেনশন সহ ভেরিলগ 2001 ব্যবহার করুন
+1364-2005ext+ ফাইল এক্সটেনশন সহ ভেরিলগ 2005 ব্যবহার করুন
+1800-2005ext+ ফাইল এক্সটেনশন সহ SystemVerilog 2005 ব্যবহার করুন
+1800-2009ext+ ফাইল এক্সটেনশন সহ SystemVerilog 2009 ব্যবহার করুন
+1800-2012ext+ ফাইল এক্সটেনশন সহ SystemVerilog 2012 ব্যবহার করুন
-- assert সমস্ত দাবী সক্রিয় করুন
--অটোফ্লাশ ফ্লাশ স্ট্রীম সব $ডিসপ্লে পরে
--bbox-sys Blackbox অজানা $সিস্টেম কল
--bbox-unsup Blackbox অসমর্থিত ভাষা বৈশিষ্ট্য
--বিন ভেরিলেটর বাইনারি ওভাররাইড করুন
-সিফ্ল্যাগস মেকফাইলের জন্য C++ কম্পাইলার পতাকা
--cc C++ আউটপুট তৈরি করুন
--cdc ঘড়ি ডোমেইন ক্রসিং বিশ্লেষণ
--clk ঘড়ি হিসাবে নির্দিষ্ট সংকেত চিহ্নিত করুন
-- কম্পাইলার নির্দিষ্ট C++ কম্পাইলারের জন্য টিউন করুন
--সংসার-সীমা সুরের মিলন স্থির সময়
--কভারেজ সমস্ত কভারেজ সক্ষম করুন
--কভারেজ লাইন লাইন কভারেজ সক্ষম করুন
--coverage-toggle টগল কভারেজ সক্ষম করুন
--coverage-user SVL ব্যবহারকারী কভারেজ সক্ষম করুন
--কভারেজ-আন্ডারস্কোর _সিগন্যালের কভারেজ সক্ষম করুন
-ডি [= ] সেট প্রিপ্রসেসর সংজ্ঞায়িত
--debug ডিবাগিং সক্ষম করুন
--debug-check ডিবাগিং দাবী সক্রিয় করুন
--ডেবুগি একটি নির্দিষ্ট স্তরে ডিবাগিং সক্ষম করুন৷
--ডেবুগি- একটি স্তরে একটি উৎস ফাইল ডিবাগিং সক্ষম করুন
--নির্ধারিত ভাষা পার্স করার জন্য ডিফল্ট ভাষা
+সংজ্ঞায়িত + = প্রিপ্রসেসর নির্ধারণ করুন
--dump-tree .tree ফাইল ডাম্পিং সক্ষম করুন
--ডাম্প-গাছ একটি স্তরে .tree ফাইল ডাম্পিং সক্ষম করুন৷
--ডাম্প-গাছ- একটি স্তরে একটি উৎস ফাইলে ডাম্পিং .tree ফাইল সক্রিয় করুন৷
-ই প্রিপ্রসেস, কিন্তু কম্পাইল করবেন না
--ত্রুটি-সীমা এই সংখ্যার ত্রুটির পরে বাতিল করুন
--exe লিংক এক্সিকিউটেবল তৈরি করতে
-এফ তুলনামূলকভাবে একটি ফাইল থেকে অপশন পার্স করুন
-চ একটি ফাইল থেকে বিকল্প পার্স
--gdb ইন্টারেক্টিভভাবে GDB-এর অধীনে ভেরিলেটর চালান
--gdbbt ব্যাকট্রেসের জন্য GDB-এর অধীনে ভেরিলেটর চালান
--help এই সাহায্য প্রদর্শন করুন
-আমি অনুসন্ধান করার জন্য ডিরেক্টরি অন্তর্ভুক্ত
--যদি-গভীরতা IFDEPTH সতর্কতা টিউন করুন
+incdir+ অনুসন্ধান করার জন্য ডিরেক্টরি অন্তর্ভুক্ত
--ইনহিবিট-সিম সিম বন্ধ করতে ফাংশন তৈরি করুন
--ইনলাইন-mult টিউন মডিউল ইনলাইনিং
-এলডিফ্ল্যাগস মেকফাইলের জন্য লিঙ্কার প্রি-অবজেক্ট ফ্ল্যাগ
-এলডিএলআইবিএস মেকফাইলের জন্য লিঙ্কার লাইব্রেরি পতাকা
--ভাষা পার্স করার জন্য ডিফল্ট ভাষা মান
+libext+ +[ext]... মডিউল খোঁজার জন্য এক্সটেনশন
--লিন্ট-শুধু লিন্ট, কিন্তু আউটপুট করবেন না
--MMD .d নির্ভরতা ফাইল তৈরি করুন
--MP ভুয়া নির্ভরতা লক্ষ্য তৈরি করুন
--মদির আউটপুট অবজেক্ট ডিরেক্টরির নাম
--mod-প্রিফিক্স নিম্ন শ্রেণীতে অগ্রসর হওয়ার জন্য নাম
--না-ক্লক ঘড়ি হিসাবে নির্দিষ্ট সংকেত চিহ্নিত করা প্রতিরোধ করুন
--no-pins64 64-33 বিট সিগের জন্য vluint64_t's ব্যবহার করবেন না
--no-skip-identical অভিন্ন আউটপুট এড়িয়ে যাওয়া নিষ্ক্রিয় করুন
+notiming চেক উপেক্ষা করা হয়েছে
-O0 অপ্টিমাইজেশন অক্ষম করুন
-O3 উচ্চ কর্মক্ষমতা অপ্টিমাইজেশান
-ও নির্বাচনযোগ্য অপ্টিমাইজেশান
-o চূড়ান্ত নির্বাহযোগ্য নাম
--no-order-clock-delay অর্ডার ঘড়ি নিষ্ক্রিয় অ্যাসাইনমেন্ট সক্রিয় করুন
--আউটপুট-বিভক্ত .cpp ফাইলগুলিকে টুকরো টুকরো করে বিভক্ত করুন
--আউটপুট-বিভক্ত-সিফাঙ্কস বিভক্ত .cpp ফাংশন
--আউটপুট-বিভক্ত-ctrace বিভক্ত ট্রেসিং ফাংশন
-P লাইন সংখ্যা এবং -E দিয়ে ফাঁকা নিষ্ক্রিয় করুন
--পিন-বিভি শীর্ষ স্তরের পোর্টগুলির জন্য প্রকারগুলি নির্দিষ্ট করুন৷
--pins-sc-uint শীর্ষ স্তরের পোর্টের জন্য প্রকার উল্লেখ করুন
--pins-sc-biguint শীর্ষ স্তরের পোর্টের জন্য প্রকার উল্লেখ করুন
--pins-uint8 শীর্ষ স্তরের পোর্টের জন্য প্রকার উল্লেখ করুন
-- পাইপ-ফিল্টার একটি স্ক্রিপ্টের মাধ্যমে সমস্ত ইনপুট ফিল্টার করুন
-- উপসর্গ শীর্ষ স্তরের শ্রেণীর নাম
--প্রোফাইল-সিফাঙ্কস প্রোফাইলিংয়ের জন্য নাম ফাংশন
--প্রাইভেট ডিবাগিং; ডক্স দেখুন
--পাবলিক ডিবাগিং; ডক্স দেখুন
--report-unoptflat UNOPTFLAT-এর জন্য অতিরিক্ত ডায়াগনস্টিকস
--savable মডেল সংরক্ষণ-পুনরুদ্ধার সক্ষম করুন
--sc SystemC আউটপুট তৈরি করুন
--stats পরিসংখ্যান ফাইল তৈরি করুন
--stats-vars ভেরিয়েবলের পরিসংখ্যান প্রদান করে
-sv সিস্টেম ভেরিলগ পার্সিং সক্ষম করুন
+systemverilogext+ +1800-2012ext+ এর প্রতিশব্দ
--টপ-মডিউল শীর্ষ স্তরের ইনপুট মডিউলের নাম
--ট্রেস তরঙ্গরূপ সৃষ্টি সক্ষম করুন
-- ট্রেস-গভীরতা ট্রেসিং এর গভীরতা
--ট্রেস-ম্যাক্স-অ্যারে ট্রেসিংয়ের জন্য সর্বাধিক বিট প্রস্থ
--ট্রেস-সর্বোচ্চ-প্রস্থ ট্রেসিংয়ের জন্য সর্বোচ্চ অ্যারের গভীরতা
--trace-params ট্রেসিং পরামিতি সক্রিয় করুন
--trace-structs ট্রেসিং কাঠামোর নাম সক্রিয় করুন
--ট্রেস-আন্ডারস্কোর _সিগন্যালের ট্রেসিং সক্ষম করুন
-U Undefine preprocessor define
--আনরোল-গণনা সর্বোচ্চ লুপ পুনরাবৃত্তি টিউন করুন
--unroll-stmts টিউন সর্বাধিক লুপ শরীরের আকার
--unused-regexp অব্যবহৃত লিন্ট সংকেত টিউন করুন
-V ভার্বোস সংস্করণ এবং কনফিগারেশন
-v ভেরিলগ লাইব্রেরি
+verilog1995ext+ +1364-1995ext+ এর প্রতিশব্দ
+verilog2001ext+ +1364-2001ext+ এর প্রতিশব্দ
-ভুল- সতর্কতাকে ত্রুটিতে রূপান্তর করুন
-ভবিষ্যত- অজানা বার্তা সতর্কতা নিষ্ক্রিয় করুন
-ওনো- সতর্কতা অক্ষম করুন
-Wno-lint সমস্ত লিন্ট সতর্কতা অক্ষম করুন
-Wno-শৈলী সমস্ত শৈলী সতর্কতা অক্ষম করুন
-Wno-fatal সতর্কতায় মারাত্মক প্রস্থান অক্ষম করুন
--x-অর্পণ প্রাথমিকভাবে এই মানটিতে Xs বরাদ্দ করুন
--x-initial-edge প্রারম্ভিক X->0 এবং X->1 প্রান্ত ট্রিগার সক্রিয় করুন
-y মডিউল অনুসন্ধান করার জন্য ডিরেক্টরি

যুক্তি


{file.v}
ভেরিলগ ফাইলটি নির্দিষ্ট করে যেখানে ভেরিলেট করা শীর্ষ মডিউল রয়েছে।

{file.c/.cc/.cpp/.cxx}
ভেরিলগ কোডের সাথে লিঙ্ক করার জন্য ঐচ্ছিক C++ ফাইলগুলি নির্দিষ্ট করে। যদি কোন C++ ফাইল থাকে
এইভাবে নির্দিষ্ট করা হয়েছে, ভেরিলেটর একটি মেক রুল অন্তর্ভুক্ত করবে যা একটি তৈরি করে মডিউল
নির্বাহযোগ্য কোনো C++ ফাইল ছাড়াই, ভেরিলেটর থেমে যাবে মডিউল__একটি লাইব্রেরি,
এবং অনুমান করুন যে আপনি নিজের লেখা নিয়মগুলির সাথে লিঙ্ক করা চালিয়ে যাবেন। এছাড়াও দেখুন
-CFLAGS বিকল্প।

{file.a/.o/.so}
ভেরিলগ কোডের সাথে লিঙ্ক করার জন্য ঐচ্ছিক বস্তু বা লাইব্রেরি ফাইলগুলিকে নির্দিষ্ট করে, a
-LDFLAGS এর সংক্ষিপ্ত হস্ত " ". যদি কোন ফাইল এই ভাবে নির্দিষ্ট করা হয়, ভেরিলেটর
লিঙ্ক করার সময় এই ফাইলগুলি ব্যবহার করে এমন একটি মেক নিয়ম অন্তর্ভুক্ত করবে মডিউল এক্সিকিউটেবল।
এটি সাধারণত শুধুমাত্র উপযোগী হয় যখন --exe বিকল্পের সাথে ব্যবহার করা হয়।

+1364-1995ext+EXT
+1364-2001ext+EXT
+1364-2005ext+EXT
+1800-2005ext+EXT
+1800-2009ext+EXT
+1800-2012ext+EXT
একটি নির্দিষ্ট ফাইলের নাম এক্সটেনশনের সাথে ব্যবহার করা ভাষার মান উল্লেখ করে, EXT.

অন্যান্য সিমুলেটরগুলির সাথে সামঞ্জস্যের জন্য, "+verilog1995ext+" প্রতিশব্দটিও দেখুনEXT,
"+verilog2001ext+"EXT, এবং "+systemverilogext+"EXT.

যেকোন সোর্স ফাইলের জন্য, এই বিকল্পগুলি দ্বারা নির্দিষ্ট করা ভাষা যেকোনটির চেয়ে প্রাধান্য পায়
"--default-language" বা "--language" বিকল্প দ্বারা নির্দিষ্ট করা ভাষা।

এই বিকল্পগুলি তাদের সম্মুখীন হয় সেই ক্রমে কার্যকর হয়৷ এইভাবে নিম্নলিখিত হবে
"av" এর জন্য Verilog 1995 এবং "bv" এর জন্য Verilog 2001 ব্যবহার করুন।

যাচাইকারী ... +1364-1995ext+v av +1364-2001ext+v bv

এই পতাকাগুলি শুধুমাত্র উত্তরাধিকারী মিশ্র ভাষার ডিজাইনের জন্য সুপারিশ করা হয়, যেমনটি পছন্দনীয়
বিকল্প হল নতুন কীওয়ার্ড মেরামত করার জন্য কোড সম্পাদনা করা, অথবা উপযুক্ত যোগ করা
"`শুরু_কীওয়ার্ড"।

বিঃদ্রঃ "`begin_keywords" হল একটি SystemVerilog গঠন, যা নির্দিষ্ট করে কেবল কোনটি
কীওয়ার্ডের সেট স্বীকৃত হতে হবে। যে সেটটি বেছে নেওয়া হোক না কেন, শব্দার্থবিদ্যা হবে
SystemVerilog যারা. বিপরীতে "+1364-1995ext+" ইত্যাদি উভয় সিনট্যাক্স নির্দিষ্ট করুন এবং
শব্দার্থবিদ্যা ব্যবহার করা হবে।

--জাহির করা
সমস্ত দাবী সক্রিয় করুন.

আরও দেখুন --x-assign এবং --x-initial-edge; "--x-অসাধারণ অনন্য" এবং/অথবা সেটিং
"--x-প্রাথমিক-প্রান্ত" কাম্য হতে পারে।

--অটোফ্লাশ
প্রতি $display বা $fdisplay পরে, আউটপুট স্ট্রীম ফ্লাশ করুন। এই যে বিমা
বার্তাগুলি অবিলম্বে প্রদর্শিত হবে কিন্তু কর্মক্ষমতা হ্রাস করতে পারে; সেরা পারফরম্যান্স কলের জন্য
"fflush(stdout)" মাঝে মাঝে প্রধান C লুপে। ডিফল্ট বন্ধ, যা বাফার হবে
সাধারন C stdio কল দ্বারা প্রদত্ত আউটপুট।

--bbox-sys
ব্ল্যাক বক্স যেকোনো অজানা $সিস্টেম টাস্ক বা ফাংশন কল। সিস্টেমের কাজগুলো সহজ হবে
NOPed, এবং সিস্টেমের ফাংশনগুলি আকারবিহীন শূন্য দ্বারা প্রতিস্থাপিত হবে। যেমন যুক্তি
ফাংশন পার্স করা হবে, কিন্তু অন্যথায় চেক করা হবে না। এই ত্রুটি প্রতিরোধ করে যখন
কোম্পানি নির্দিষ্ট PLI কল উপস্থিতিতে linting.

--bbox-আনসাপ
ব্ল্যাক বক্স কিছু অসমর্থিত ভাষা বৈশিষ্ট্য, বর্তমানে UDP টেবিল এবং cmos এবং
ট্রান গেট আদিম। এটি এমনকি যখন নকশার বাকি অংশ linting সক্ষম করতে পারে
অসমর্থিত নির্মাণ উপস্থিত আছে.

--বিন ফাইলের নাম
খুব কমই প্রয়োজন। ভেরিলেটরের জন্য ডিফল্ট ফাইলের নাম ওভাররাইড করুন। যখন একটি নির্ভরতা
(.d) ফাইল তৈরি হলে, এই ফাইলের নামটি একটি উৎস নির্ভরতা হয়ে যাবে, যেমন a
এই বাইনারি পরিবর্তন আউটপুট ফাইল পুনর্নির্মাণ করতে হবে.

-সিফ্ল্যাগস পতাকা
জেনারেট করা মেকফাইলে নির্দিষ্ট সি কম্পাইলার ফ্ল্যাগ যোগ করুন। যখন মেক চালানো হয়
তৈরি করা মেকফাইল এগুলি C++ কম্পাইলারে (gcc/g++/msvc++) পাঠানো হবে।

--cc
SystemC আউটপুট মোড ছাড়াই C++ নির্দিষ্ট করে; এছাড়াও দেখুন --sc.

--CDC
পরীক্ষামূলক। কিছু ঘড়ি ডোমেন ক্রসিং চেক সঞ্চালন এবং সংক্রান্ত সতর্কতা জারি করুন
(CDCRSTLOGIC) এবং তারপর প্রস্থান করুন; সিডিসি সতর্কতা ছাড়া অন্য সতর্কতা প্রয়োজন হলে একটি করুন
--lint-only দিয়ে দ্বিতীয় রান। অতিরিক্ত সতর্কতা তথ্যও লেখা হয়
ফাইল {prefix}__cdc.txt.

বর্তমানে শুধুমাত্র কিছু আইটেম পরীক্ষা করে যা অন্যান্য CDC টুল মিস করেছে; যদি আপনার আগ্রহ থাকে
আরো ঐতিহ্যগত CDC চেক যোগ করা, লেখকদের সাথে যোগাযোগ করুন.

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

--clk দিয়ে , ব্যবহারকারী মডেলের মধ্যে রুট ঘড়ি নির্দিষ্ট করতে পারেন, তারপর ভেরিলেটর
সংকেতটিকে ক্লোকার হিসাবে চিহ্নিত করবে এবং স্বয়ংক্রিয়ভাবে ঘড়ির বৈশিষ্ট্যটি প্রচার করবে
যে থেকে উদ্ভূত অন্যান্য সংকেত. এইভাবে, ভেরিলেটর নেওয়া এড়াতে চেষ্টা করবে
চেকিং তালিকায় ঘড়ির সংকেত।

নোট সংকেত-নাম RTL শ্রেণীবিন্যাস পাথ দ্বারা নির্দিষ্ট করা হয়। উদাহরণস্বরূপ, v.foo.bar. যদি
সিগন্যাল হল টপ-মডিউলে ইনপুট, সরাসরি সিগন্যালের নাম। খুঁজে পেলে
সঠিক নামটি খুঁজে পাওয়া কঠিন, আরটিএল ফাইলে "/*ভেরিলেটর ক্লকার*/" ব্যবহার করার চেষ্টা করুন
সরাসরি সংকেত চিহ্নিত করুন।

-- কম্পাইলার কম্পাইলার-নাম
নির্দিষ্ট C++ কম্পাইলারের জন্য টিউনিং এবং ওয়ার্ক-অ্যারাউন্ড সক্ষম করে।

ঝনঝন
ঝনঝন জন্য টিউন. এটি কার্যকর করার গতি কমাতে পারে কারণ এটি বেশ কয়েকটি সমাধান সক্ষম করে
ঝনঝন মধ্যে নির্বোধ হার্ডকোড সীমা এড়াতে. এর মধ্যে রয়েছে গভীর কাঠামো ভাঙা
নীচে বর্ণিত হিসাবে msvc এর জন্য।

Gnu C++-এর জন্য gcc টিউন, যদিও জেনারেট করা কোড প্রায় যেকোনো কমপ্লায়েন্ট C++ এ কাজ করা উচিত।
কম্পাইলার বর্তমানে ডিফল্ট।

msvc
মাইক্রোসফট ভিজ্যুয়াল সি++ এর জন্য টিউন করুন। এটি সক্ষম হওয়ার সাথে সাথে এটি কার্যকর করার গতি হ্রাস করতে পারে
MSVC++ এ নির্বোধ হার্ডকোডেড সীমা এড়াতে বেশ কিছু সমাধান। এটা অন্তর্ভুক্ত
এড়াতে গভীরভাবে নেস্টেড বন্ধনীর অভিব্যক্তিগুলিকে সাব-এক্সপ্রেশনে ভাঙা
ত্রুটি C1009, এবং ত্রুটি C1061 এড়াতে ফাংশনে গভীর ব্লক ভাঙ্গা।

--সংসার-সীমা
খুব কমই প্রয়োজন। একটি তৈরি করার আগে রানটাইম পুনরাবৃত্তির সর্বাধিক সংখ্যা নির্দিষ্ট করে
মডেল ত্রুটি একত্রিত করতে ব্যর্থ হয়েছে. ডিফল্ট 100।

--কভারেজ
সব ধরনের কভারেজ সক্ষম করে, "--কভারেজ-লাইন --কভারেজ-টগলের জন্য উপনাম
--কভারেজ-ব্যবহারকারী"।

--কভারেজ লাইন
মৌলিক ব্লক লাইন কভারেজ বিশ্লেষণ কোড সন্নিবেশ করা উচিত নির্দিষ্ট করে.

কভারেজ বিশ্লেষণ প্রতিটি কোড প্রবাহ পরিবর্তন বিন্দুতে বিবৃতি যোগ করে, যা হল
IF এবং CASE স্টেটমেন্টের শাখা, সাধারণ ভেরিলগ লাইন কভারেজের একটি সুপার-সেট। এ
এই ধরনের প্রতিটি শাখা একটি অনন্য কাউন্টার বৃদ্ধি করা হয়. একটি পরীক্ষা শেষে কাউন্টার
প্রতিটি কাউন্টারের সাথে সম্পর্কিত ফাইলের নাম এবং লাইন নম্বর সহ লিখিত হয়
logs/coverage.pl.

ভেরিলেটর স্বয়ংক্রিয়ভাবে যে শাখাগুলিতে $স্টপ আছে সেগুলির কভারেজ অক্ষম করে, যেমনটি
ধরে নেওয়া হয় $stop শাখায় একটি ত্রুটি পরীক্ষা রয়েছে যা ঘটতে হবে না। একটি /*ভেরিলেটর
coverage_block_off*/ মন্তব্য সেই ব্লকের যেকোনো কোডে একই ধরনের ফাংশন করবে
বা নীচে, অথবা /*verilator coverage_on/coverage_off*/ লাইনের চারপাশে কভারেজ নিষ্ক্রিয় করবে
কোডের

নোট ভেরিলেটর কম্বিনেটরিয়াল (নন-ক্লকড) ব্লকগুলিকে অতিরিক্ত গণনা করতে পারে যখন সেই ব্লকগুলি
UNOPTFLAT সতর্কতা নিষ্ক্রিয় থাকা সংকেতগুলি গ্রহণ করুন; সবচেয়ে সঠিক জন্য
কভারেজ ব্যবহার করার সময় ফলাফল এই সতর্কতা নিষ্ক্রিয় করে না।

--কভারেজ-টগল
সংকেত টগল কভারেজ বিশ্লেষণ কোড সন্নিবেশ করা উচিত নির্দিষ্ট করে.

একটি মডিউলের প্রতিটি সংকেতের প্রতিটি বিটে একটি কাউন্টার ঢোকানো আছে। পাল্টা দেবে
সংশ্লিষ্ট বিটের প্রতিটি প্রান্ত পরিবর্তনে বৃদ্ধি।

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

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

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

মডেলটি স্থিতিশীল হওয়ার সময় শূন্যের কাছাকাছি প্রান্তগুলি গণনা করা হতে পারে৷ এটি ভালো
এই ধরনের গণনা প্রতিরোধ করার জন্য রিসেট প্রকাশ করার ঠিক আগে সমস্ত কভারেজ শূন্য করার অনুশীলন করুন
আচরণ।

A /*verilator coverage_off/on */ মন্তব্য জোড়া এমন সংকেতগুলির কাছাকাছি ব্যবহার করা যেতে পারে যেগুলি নেই৷
টগল বিশ্লেষণ প্রয়োজন, যেমন RAM এবং রেজিস্টার ফাইল।

--কভারেজ-আন্ডারস্কোর
একটি আন্ডারস্কোর দিয়ে শুরু হওয়া সংকেতগুলির কভারেজ সক্ষম করুন৷ সাধারণত, এই সংকেত হয়
ঢাকা না. এছাড়াও দেখুন --ট্রেস-আন্ডারস্কোর।

--কভারেজ-ব্যবহারকারী
ব্যবহারকারী ঢোকানো কার্যকরী কভারেজ সক্ষম করে। বর্তমানে, সমস্ত কার্যকরী কভারেজ পয়েন্ট
SVA ব্যবহার করে নির্দিষ্ট করা হয়েছে যা অবশ্যই --assert এর সাথে আলাদাভাবে সক্ষম করতে হবে।

উদাহরণস্বরূপ, নিম্নলিখিত বিবৃতিটি মন্তব্যের সাথে একটি কভারেজ পয়েন্ট যোগ করবে
"ডিফল্ট ক্লক":

DefaultClock: কভার প্রপার্টি (@(posedge clk) cyc==3);

-DVar=মূল্য
অনুমতি ছাড়াই প্রদত্ত প্রিপ্রসেসর প্রতীক সংজ্ঞায়িত করে। +সংজ্ঞায়িত করার অনুরূপ; +সংজ্ঞায়িত করুন
ভেরিলগ টুল জুড়ে মোটামুটি স্ট্যান্ডার্ড যখন -D হল GCC সামঞ্জস্যের জন্য একটি উপনাম।

--ডিবাগ
ভেরিলেটরের ডিবাগ বিল্ট ইমেজ নির্বাচন করুন (যদি পাওয়া যায়), এবং আরও অভ্যন্তরীণ সক্ষম করুন
দাবী ("--debug-check" এর সমতুল্য), ডিবাগিং বার্তা (এর সমতুল্য)
"--debugi 4"), এবং মধ্যবর্তী ফর্ম ডাম্প ফাইল ("--dump-treei 3" এর সমতুল্য)।

--ডিবাগ-চেক
খুব কমই প্রয়োজন। ডিবাগ পরিবর্তন না করে অভ্যন্তরীণ ডিবাগিং দাবী চেক সক্ষম করুন
শব্দচয়ন --debug নির্দিষ্ট করা হলে স্বয়ংক্রিয়ভাবে সক্রিয় হয়।

--ডেবুগি
--ডেবুগি-
খুব কমই প্রয়োজন - ডেভেলপার ব্যবহারের জন্য। বিশ্বব্যাপী অভ্যন্তরীণ ডিবাগিং স্তর সেট করুন
নির্দিষ্ট ডিবাগ লেভেল (1-10) অথবা নির্দিষ্ট ভেরিলেটর সোর্স ফাইলে সেট করুন
নির্দিষ্ট স্তর (যেমন "--debugi-V3Width 9")। উচ্চ স্তর আরো বিস্তারিত উত্পাদন
বার্তা।

--নির্ধারিত ভাষা মূল্য
প্রতিটি ভেরিলগ ফাইল প্রথম প্রক্রিয়া করার সময় ডিফল্টরূপে ব্যবহার করা ভাষা নির্বাচন করুন।
ভাষার মান হতে হবে "1364-1995", "1364-2001", "1364-2005", "1800-2005",
"1800-2009" বা "1800-2012"।

একটি নির্দিষ্ট ফাইল এক্সটেনশনের সাথে যুক্ত যেকোনো ভাষা (বিভিন্ন + দেখুনশুধুমাত্রext+
অপশন) --default-language দ্বারা নির্দিষ্ট করা ভাষার অগ্রাধিকারে ব্যবহার করা হবে।

--default-language পতাকা শুধুমাত্র একই ব্যবহার করে লিগ্যাসি কোডের জন্য সুপারিশ করা হয়
সমস্ত সোর্স ফাইলে ভাষা, কারণ মেরামত করার জন্য কোডটি সম্পাদনা করা পছন্দের বিকল্প
নতুন কীওয়ার্ড, অথবা উপযুক্ত "`begin_keywords" যোগ করুন। উত্তরাধিকার মিশ্র ভাষা ডিজাইনের জন্য,
বিভিন্ন +শুধুমাত্রext+ অপশন ব্যবহার করা উচিত।

যদি কোন ভাষা নির্দিষ্ট করা না থাকে, হয় এই পতাকা বা + দ্বারাশুধুমাত্রext+ বিকল্প, তারপর সর্বশেষ
সিস্টেম ভেরিলগ ভাষা (IEEE 1800-2012) ব্যবহার করা হয়।

+সংজ্ঞায়িত করুনVar=মূল্য
+সংজ্ঞায়িত করুনVar=মূল্য+var2=মান 2...
প্রদত্ত প্রিপ্রসেসর চিহ্ন, বা একাধিক চিহ্ন সংজ্ঞায়িত করে যদি প্লাস দ্বারা পৃথক করা হয়।
-D এর অনুরূপ; +define ভেরিলগ টুল জুড়ে মোটামুটি স্ট্যান্ডার্ড যখন -D একটি উপনাম
GCC সামঞ্জস্যের জন্য।

-- ডাম্প-গাছ
খুব কমই প্রয়োজন। ডাম্পিং লেভেল 3 সহ .tree ডিবাগ ফাইল লেখা সক্ষম করুন, যা ডাম্প করে
স্ট্যান্ডার্ড সমালোচনামূলক পর্যায়। ফরম্যাটের বিস্তারিত জানার জন্য ভেরিলেটর ইন্টারনাল দেখুন
ম্যানুয়াল --dump-tree --debug-এর সাথে স্বয়ংক্রিয়ভাবে সক্রিয় হয়, তাই "--debug
--no-dump-tree" উপযোগী হতে পারে যদি ডাম্প ফাইলগুলি বড় হয় এবং পছন্দসই না হয়।

--ডাম্প-গাছ
--ডাম্প-গাছ-
খুব কমই প্রয়োজন - ডেভেলপার ব্যবহারের জন্য। বিশ্বব্যাপী অভ্যন্তরীণ ট্রি ডাম্পিং স্তর সেট করুন a
নির্দিষ্ট ডাম্পিং লেভেল বা নির্দিষ্ট ভেরিলেটর সোর্স ফাইলটিকে নির্দিষ্ট করে সেট করুন
ট্রি ডাম্পিং লেভেল (যেমন "--dump-treei-V3Order 9")। স্তর 0 ডাম্প নিষ্ক্রিয় এবং হয়
"---নো-ডাম্প-ট্রি" এর সমতুল্য। লেভেল 9 প্রতিটি পর্যায়ে ডাম্পিং সক্ষম করে।

-E সোর্স কোডটি প্রিপ্রসেস করুন, কিন্তু 'gcc -E' এর মতো কম্পাইল করবেন না। আউটপুট লেখা হয়
স্ট্যান্ডার্ড আউট ডিবাগিং বার্তা সক্রিয় করার বিষয়ে সতর্ক থাকুন, কারণ সেগুলিও যাবে৷
স্ট্যান্ডার্ড আউট

--ত্রুটি-সীমা
এই সংখ্যার ত্রুটি বা সতর্কতার সম্মুখীন হওয়ার পরে, প্রস্থান করুন। ডিফল্ট 50।

--exe
একটি এক্সিকিউটেবল জেনারেট করুন। এছাড়াও আপনাকে অতিরিক্ত .cpp ফাইল পাস করতে হবে
কমান্ড লাইন যা আপনার সিমুলেশনের জন্য প্রধান লুপ বাস্তবায়ন করে।

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

-f ফাইল
নির্দিষ্ট ফাইল পড়ুন, এবং কাজ করুন যেন এর ভিতরের সমস্ত পাঠ্য কমান্ড হিসাবে নির্দিষ্ট করা হয়েছে
লাইন পরামিতি। যেকোনো আপেক্ষিক পাথ বর্তমান ডিরেক্টরির সাথে আপেক্ষিক। আরো দেখুন
-এফ. Note -f ভেরিলগ টুল জুড়ে মোটামুটি স্ট্যান্ডার্ড।

ফাইলটিতে // মন্তব্য থাকতে পারে যা লাইনের শেষে উপেক্ষা করা হয়। যেকোনো $VAR,
$(VAR), বা ${VAR} নির্দিষ্ট পরিবেশ পরিবর্তনশীল দিয়ে প্রতিস্থাপিত হবে।

--জিডিবি
একটি ইন্টারেক্টিভ GDB (বা VERILATOR_GDB এনভায়রনমেন্ট ভেরিয়েবল) এর নিচে ভেরিলেটর চালান
মান) সেশন। এছাড়াও দেখুন --gdbbt.

--gdbbt
যদি --debug নির্দিষ্ট করা থাকে, একটি GDB প্রক্রিয়ার নীচে ভেরিলেটর চালান এবং একটি ব্যাকট্রেস মুদ্রণ করুন
প্রস্থান করার সময়, তারপর অবিলম্বে GDB থেকে প্রস্থান করুন। --debug ছাড়া বা GDB কাজ করছে বলে মনে হয় না,
এই পতাকা উপেক্ষা করা হয়. ব্যবহারকারীদের দ্বারা ব্যাকট্রেস সহজে তৈরি করার উদ্দেশ্যে; অন্যথায়
--gdb পতাকা দেখুন।

--help
এই বার্তা এবং প্রোগ্রাম সংস্করণ প্রদর্শন করে এবং প্রস্থান করে।

-IDir
Y দেখতে.

--যদি-গভীরতা মূল্য
খুব কমই প্রয়োজন। যে গভীরতায় IFDEPTH সতর্কবাণী ফায়ার হবে সেটি সেট করুন, ডিফল্ট 0 এ
যা এই সতর্কতা নিষ্ক্রিয় করে।

+incdir+Dir
Y দেখতে.

--ইনহিবিট-সিম
খুব কমই প্রয়োজন। মূল্যায়ন সক্ষম এবং নিষ্ক্রিয় করতে একটি "ইনহিবিটসিম(বুল)" ফাংশন তৈরি করুন।
এটি একটি উচ্চ স্তরের টেস্টবেঞ্চকে মডিউলগুলি নিষ্ক্রিয় করতে দেয় যা a-তে গুরুত্বপূর্ণ নয়
সিস্টেমসি মডিউলগুলি পুনরায় কম্পাইল বা পরিবর্তন করার প্রয়োজন ছাড়াই প্রদত্ত সিমুলেশন
তাত্ক্ষণিক

--ইনলাইন-mult মূল্য
মডিউলের ইনলাইনিং টিউন করুন। 2000 এর ডিফল্ট মান 2000 নতুন পর্যন্ত নির্দিষ্ট করে
এই সংখ্যার বেশি হলে ইনলাইন করে মডেলে অপারেশন যোগ করা যেতে পারে
অপারেশনের ফলে, মডিউল ইনলাইন করা হয় না। বড় মান, বা একটি মান <= 1
সবকিছু ইনলাইন করবে, কম্পাইল সময়কে দীর্ঘতর করবে, কিন্তু সম্ভাব্য দ্রুততর
রানটাইম এই সেটিংটি খুব ছোট মডিউলের জন্য উপেক্ষা করা হয়; তারা সবসময় থাকবে
ইনলাইন, যদি অনুমতি দেওয়া হয়।

-এলডিফ্ল্যাগস পতাকা
জেনারেট করা মেকফাইলে নির্দিষ্ট সি লিঙ্কার ফ্ল্যাগ যোগ করুন। যখন মেক চালানো হয়
তৈরি করা মেকফাইল এগুলি C++ লিঙ্কারে (ld) *প্রাইমারীর পরে* পাস করা হবে
ফাইল লিঙ্ক করা হচ্ছে। এই পতাকাটিকে -LDFLAGS বলা হয় কারণ এটি প্রচলিত নাম
সিমুলেটর; মেকফাইল ভেরিয়েবলের কারণে এটিকে LDLIBS বলা ভালো হতো
এটা নিয়ন্ত্রণ করে। (মেকে, LDFLAGS প্রথম বস্তুর আগে, LDLIBS পরে। -L
লাইব্রেরি মেক ভেরিয়েবল LDLIBS-এ থাকা দরকার, LDFLAGS নয়।)

--ভাষা মূল্য
"--default-languge" এর একটি প্রতিশব্দ, অন্যান্য সরঞ্জামের সাথে সামঞ্জস্যের জন্য এবং পূর্ববর্তী
ভেরিলেটরের সংস্করণ।

+libext+EXT+EXT...
মডিউল খোঁজার জন্য যে এক্সটেনশনগুলি ব্যবহার করা উচিত তা নির্দিষ্ট করুন। যদি উদাহরণস্বরূপ মডিউল
x উল্লেখ করা হয়, দেখুন x.EXT. Note +libext+ ভেরিলগ জুড়ে মোটামুটি স্ট্যান্ডার্ড
টুলস ডিফল্ট .v এবং .sv.

--লিন্ট-শুধু
শুধুমাত্র লিন্ট লঙ্ঘনের জন্য ফাইলগুলি পরীক্ষা করুন, অন্য কোন আউটপুট তৈরি করবেন না।

আপনি স্টাইলিস্টিক হিসাবে বিবেচিত বার্তাগুলি সক্ষম করতে -ওয়াল বিকল্পটিও চাইতে পারেন
এবং ডিফল্টরূপে সক্রিয় নয়।

নকশা সম্পূর্ণরূপে যাচাই করা না হলে --bbox-sys এবং দেখুন
--bbox-unsup অপশন।

--এমএমডি
.d নির্ভরতা ফাইল তৈরি করতে সক্ষম করুন, যা নির্ভরতা সনাক্তকরণের জন্য ব্যবহৃত হয়, অনুরূপ
জিসিসি -এমএমডি বিকল্প। ডিফল্টরূপে চালু, নিষ্ক্রিয় করতে --no-MMD ব্যবহার করুন।

--এমপি
--MMD দিয়ে .d নির্ভরতা ফাইল তৈরি করার সময়, নকল লক্ষ্য তৈরি করুন। gcc -MP এর অনুরূপ
বিকল্প।

--মদির ডিরেক্টরি
মেক অবজেক্ট ডিরেক্টরির নাম উল্লেখ করে। সমস্ত উত্পন্ন ফাইল স্থাপন করা হবে
এই ডিরেক্টরিতে। উল্লেখ না থাকলে, "obj_dir" ব্যবহার করা হয়। যদি ডিরেক্টরি তৈরি হয়
এটি বিদ্যমান নেই এবং মূল ডিরেক্টরি বিদ্যমান; অন্যথায় ম্যানুয়ালি Mdir তৈরি করুন
ভেরিলেটর কল করার আগে।

--mod-প্রিফিক্স শীর্ষ নাম
সমস্ত নিম্ন স্তরের ক্লাসে প্রিপেন্ড করার জন্য নাম নির্দিষ্ট করে। ডিফল্ট হিসাবে একই
-- উপসর্গ।

--না-ক্লক
নির্দিষ্ট সংকেতকে ঘড়ি হিসেবে চিহ্নিত করা থেকে বিরত রাখুন। "--clk" দেখুন।

--নো-পিন64
"--pins-bv 33" এর জন্য পশ্চাদগামী সামঞ্জস্যপূর্ণ উপনাম।

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

+নোটাইমিং চেক
অন্যান্য সিমুলেটরগুলির সাথে সামঞ্জস্যের জন্য উপেক্ষা করা হয়েছে৷

-O0 মডেলের অপ্টিমাইজেশন অক্ষম করে।

-O3 কোডের জন্য ধীর অপ্টিমাইজেশান সক্ষম করে যা ভেরিলেটর নিজেই তৈরি করে (এর বিপরীতে
"-CFLAGS -O3" যা C কম্পাইলারের অপ্টিমাইজেশানকে প্রভাবিত করে। -O3 সিমুলেশন কমাতে পারে
কম্পাইল সময়ের খরচে রানটাইম। এটি বর্তমানে --inline-mult -1 সেট করে।

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

-ও
--exe ব্যবহার করলে নির্মিত চূড়ান্ত এক্সিকিউটেবলের নাম উল্লেখ করুন। ডিফল্ট থেকে
--উপসর্গ নির্দিষ্ট না হলে।

--অর্ডার-ঘড়ি-বিলম্ব
খুব কমই প্রয়োজন। ঘড়ির অর্ডার বিলম্বিত করার জন্য একটি বাগ ফিক্স অক্ষম করে
অ্যাসাইনমেন্ট এই পতাকাটি শুধুমাত্র বিকাশকারীদের দ্বারা প্রস্তাবিত হলেই ব্যবহার করা উচিত৷

--আউটপুট-বিভক্ত বাইট
আউটপুট .cpp/.sp ফাইলগুলিকে একাধিক আউটপুটে বিভক্ত করা সক্ষম করে৷ যখন একটি C++ ফাইল
অপারেশনের নির্দিষ্ট সংখ্যা অতিক্রম করে, পরবর্তীতে একটি নতুন ফাইল তৈরি করা হবে
ফাংশন সীমানা। উপরন্তু, যেকোনো ধীর রুটিন __Slow ফাইলে স্থাপন করা হবে।
এটি সংকলনকে ত্বরান্বিত করে কারণ ধীরগতির রুটিনে অপ্টিমাইজেশন অক্ষম করা যেতে পারে,
এবং অবশিষ্ট ফাইলগুলি সমান্তরাল মেশিনে কম্পাইল করা যেতে পারে। --আউটপুট-বিভক্ত ব্যবহার করে
কর্মক্ষমতা উপর শুধুমাত্র একটি তুচ্ছ প্রভাব থাকা উচিত. 3.3GHz Opteron-এ GCC 2 সহ,
--output-split 20000 প্রায় এক মিনিট-কম্পাইলে বিভক্ত হবে
খণ্ড

--আউটপুট-বিভক্ত-সিফাঙ্কস বিবৃতি
আউটপুট .cpp/.sp ফাইলে একাধিক ফাংশনে বিভক্ত ফাংশন সক্ষম করে।
যখন একটি উত্পন্ন ফাংশন অপারেশনের নির্দিষ্ট সংখ্যা অতিক্রম করে, একটি নতুন ফাংশন
তৈরি করা হবে। --আউটপুট-বিভক্তের সাথে, এটি জিসিসিকে দ্রুত কম্পাইল করতে সক্ষম করবে, এ
কর্মক্ষমতার ছোট ক্ষতি যা বিভক্ত মান হ্রাসের সাথে আরও খারাপ হয়। মনে রাখবেন যে
এই বিকল্পটি --output-split-এর চেয়ে শক্তিশালী এই অর্থে যে --output-split হবে না
একটি ফাংশন ভিতরে বিভক্ত.

--আউটপুট-বিভক্ত-ctrace বিবৃতি
আউটপুট .cpp/.sp ফাইলে ট্রেস ফাংশনগুলিকে একাধিকতে বিভক্ত করা সক্ষম করে৷
ফাংশন --output-split-cfuncs হিসাবে একই সেটিং ডিফল্ট।

-P এর সাথে -E, GCC -P পতাকার অনুরূপ `লাইন মার্কার এবং ফাঁকা লাইনের জেনারেশন অক্ষম করুন।

--পিন64
"--pins-bv 65"-এর জন্য ব্যাকওয়ার্ড সামঞ্জস্যপূর্ণ উপনাম। মনে রাখবেন এটি একটি 65, একটি 64 নয়।

--পিন-বিভি প্রস্থ
এর থেকে বেশি বা সমান SystemC ইনপুট/আউটপুট নির্দিষ্ট করে প্রস্থ বিট প্রশস্ত করা উচিত
uint32/vluint64_t এর পরিবর্তে sc_bv ব্যবহার করুন। ডিফল্ট হল "-pins-bv 65"। সংস্করণ
ভেরিলেটর 3.671 এর আগে "--pins-bv 33" এ ডিফল্ট হয়েছে। যত বেশি sc_bv ব্যবহার করা হয়, তত খারাপ
কর্মক্ষমতা জন্য। নির্দিষ্ট পোর্ট নির্বাচন করতে "/*verilator sc_bv*/" অ্যাট্রিবিউট ব্যবহার করুন
sc_bv হতে।

--পিন-sc-uint
2 বিটের বেশি প্রশস্ত সিস্টেমসি ইনপুট/আউটপুট নির্দিষ্ট করে sc_uint ব্যবহার করা উচিত
2 এবং 64-এর মধ্যে। যখন "-pins-sc-biguint" সংমিশ্রণের সাথে মিলিত হয়, এটি ফলাফল দেয়
sc_uint-এ 2 এবং 64 এর মধ্যে ব্যবহার করা হচ্ছে এবং sc_biguint 65 এবং 512-এর মধ্যে ব্যবহার করা হচ্ছে।

--পিন-sc-বিগুইন্ট
65 বিটের বেশি প্রশস্ত সিস্টেমসি ইনপুট/আউটপুট নির্দিষ্ট করে sc_biguint ব্যবহার করা উচিত
65 এবং 512 এর মধ্যে, এবং sc_bv 513 থেকে উপরের দিকে। সঙ্গে মিলিত হলে
"--pins-sc-uint" সংমিশ্রণ, এর ফলে sc_uint 2 থেকে 64 এর মধ্যে ব্যবহার করা হচ্ছে এবং
sc_biguint 65 এবং 512 এর মধ্যে ব্যবহৃত হচ্ছে।

--pins-uint8
সিস্টেমসি ইনপুট/আউটপুটগুলি নির্দিষ্ট করে যা --পিন-বিভি সেটিং এবং 8 থেকে ছোট
বিট বা কম uint8_t এর পরিবর্তে uint32_t ব্যবহার করা উচিত। একইভাবে 9-16 প্রস্থের পিন হবে
uint16_t এর পরিবর্তে uint32_t ব্যবহার করুন।

-- পাইপ-ফিল্টার হুকুম
খুব কমই প্রয়োজন এবং পরীক্ষামূলক। ভেরিলেটর একটি হিসাবে নির্দিষ্ট কমান্ড তৈরি করবে
সাবপ্রসেস পাইপ, কমান্ডকে ভেরিলগ কোডে কাস্টম সম্পাদনা করার অনুমতি দিতে
ভেরিলেটরে পৌঁছানোর আগেই।

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

ফিল্টারের আউটপুট ডিবাগ করতে, প্রিপ্রসেসড আউটপুট দেখতে -E বিকল্পটি ব্যবহার করার চেষ্টা করুন।

-- উপসর্গ শীর্ষ নাম
শীর্ষ স্তরের শ্রেণী এবং মেকফাইলের নাম উল্লেখ করে। V এর পূর্বনির্ধারিত ডিফল্ট
--top-মডিউল সুইচের নাম, অথবা V প্রথম ভেরিলগ ফাইলের নামের সাথে যুক্ত
কমান্ড লাইনে পাস।

--প্রোফাইল-সিফাঙ্কস
প্রোফাইলিং সমর্থন করার জন্য তৈরি করা C++ ফাংশন পরিবর্তন করুন। ফাংশন হবে
একটি "মৌলিক" বিবৃতি ধারণ করার জন্য ছোট করা হয়েছে, সাধারণত একটি একক সর্বদা ব্লক বা তার
বিবৃতি (মনে রাখবেন এটি ~5% দ্বারা এক্সিকিউটেবল কমিয়ে দেবে।) উপরন্তু,
ফাংশনের নাম ভেরিলগ মডিউল এবং লাইন নম্বরের বেসনামের সাথে প্রত্যয়িত হবে
বিবৃতি থেকে এসেছে. এটি gprof বা oprofile রিপোর্টের সাথে সম্পর্কযুক্ত হতে দেয়
মূল ভেরিলগ উৎসের বিবৃতি।

--ব্যক্তিগত
--এর বিপরীত। ডিফল্ট হয়; এই বিকল্পটি পিছনের সামঞ্জস্যের জন্য বিদ্যমান।

--পাবলিক
এটি শুধুমাত্র ঐতিহাসিক ডিবাগ ব্যবহারের জন্য। এটি ব্যবহার করলে এর ভুল-সিমুলেশন হতে পারে
উত্পন্ন ঘড়ি.

সমস্ত সংকেত এবং মডিউল সর্বজনীন ঘোষণা করে। এটি সিগন্যাল অপ্টিমাইজেশান বন্ধ করবে
যদি সমস্ত সিগন্যালে একটি /*ভেরিলেটর পাবলিক*/ মন্তব্য এবং ইনলাইন থাকে। এটিও ঘুরবে
অফ ইনলাইন করা যেন সমস্ত মডিউলে একটি /*verilator public_module*/ আছে, যদি না মডিউলটি থাকে
বিশেষভাবে এটিকে /*verilator inline_module* দিয়ে সক্ষম করেছে/.

--report-unoptflat
UNOPTFLAT সতর্কতার জন্য অতিরিক্ত ডায়গনিস্টিক। এটি প্রতিটি লুপের জন্য অন্তর্ভুক্ত, 10টি প্রশস্ততম
লুপে ভেরিয়েবল, এবং লুপে 10টি সবচেয়ে বেশি ফ্যান করা ভেরিয়েবল। এইগুলো
লুপ ভাঙতে একাধিক ভেরিয়েবলে বিভক্ত হওয়ার জন্য প্রার্থীরা।

এছাড়াও সমগ্র দৃঢ়ভাবে সংযুক্ত উপাদানগুলির একটি GraphViz DOT ফাইল তৈরি করে
প্রতিটি লুপের সাথে যুক্ত উৎসের মধ্যে। এই কিনা নির্বিশেষে উত্পাদিত হয়
--ডাম্প-ট্রি সেট করা হয়েছে। এই ধরনের গ্রাফ সমস্যা বিশ্লেষণে সাহায্য করতে পারে, কিন্তু খুব হতে পারে
সত্যিই বড়।

DOT ফাইলগুলি দেখার এবং ম্যানিপুলেট করার জন্য বিভিন্ন কমান্ড বিদ্যমান। উদাহরণস্বরূপ ডট
কমান্ড প্রিন্ট করার জন্য একটি DOT ফাইলকে PDF এ রূপান্তর করতে ব্যবহার করা যেতে পারে। উদাহরণ স্বরূপ:

ডট -Tpdf -O Vt_unoptflat_simple_2_35_unoptflat.dot

DOT ফাইল থেকে একটি PDF Vt_unoptflat_simple_2_35_unoptflat.dot.pdf তৈরি করবে।

-- সংরক্ষণযোগ্য
উত্পন্ন মডেলে সংরক্ষণ এবং পুনরুদ্ধার ফাংশন সহ সক্ষম করুন৷

ব্যবহারকারী কোডটি অবশ্যই একটি VerilatedSerialize বা VerilatedDeserialze বস্তু তৈরি করতে হবে
জেনারেট করা মডেলে << অথবা >> অপারেটরদের কল করা এবং অন্য যেকোন ডেটা প্রক্রিয়াটি
সংরক্ষিত/পুনরুদ্ধার প্রয়োজন। উদাহরণ স্বরূপ:

void save_model(const char* filenamep) {
ভেরিলেটেড সেভ ওএস;
os.open(filenamep);
os << main_time; // ব্যবহারকারীর কোড টাইমস্ট্যাম্প ইত্যাদি সংরক্ষণ করতে হবে
os << *টপ;
}
void restore_model(const char* filenamep) {
ভেরিলেটেড রিস্টোর ওএস;
os.open(filenamep);
os >> main_time;
os >> *টপ;
}

--sc
SystemC আউটপুট মোড নির্দিষ্ট করে; এছাড়াও দেখুন --cc.

-- পরিসংখ্যান
{prefix}__stats.txt-এ ডিজাইনের পরিসংখ্যান সহ একটি ডাম্প ফাইল তৈরি করে।

--পরিসংখ্যান-ভার্স
আকার অনুসারে সমস্ত ভেরিয়েবলের একটি তালিকা সহ আরও বিশদ পরিসংখ্যান তৈরি করে (সরল
-- পরিসংখ্যান শুধু একটি গণনা দেয়)। দেখুন --stats, যা এই দ্বারা উহ্য।

-sv নির্দিষ্ট করে SystemVerilog ভাষা বৈশিষ্ট্য সক্রিয় করা উচিত; "--ভাষার সমতুল্য
1800-2005"। এই বিকল্পটি ডিফল্টরূপে নির্বাচিত, এটির সাথে সামঞ্জস্যের জন্য বিদ্যমান
অন্যান্য সিমুলেটর।

+systemverilogext+EXT
"+1800-2012ext+" এর একটি প্রতিশব্দEXT.

--টপ-মডিউল শীর্ষ নাম
যখন ইনপুট ভেরিলগে একাধিক শীর্ষ স্তরের মডিউল থাকে, তখন এর নাম উল্লেখ করে
শীর্ষ স্তরের ভেরিলগ মডিউল শীর্ষে পরিণত হয় এবং যদি --প্রেফিক্সের জন্য ডিফল্ট সেট করে
ব্যবহার করা হয় না এটি শুধুমাত্র একটি শীর্ষ সঙ্গে মান ডিজাইন সঙ্গে প্রয়োজন হয় না.

-- ট্রেস
মডেলে ওয়েভফর্ম ট্রেসিং কোড যোগ করে। ভেরিলেটর অতিরিক্ত তৈরি করবে
{prefix}__Trace*.cpp ফাইলগুলিকে কম্পাইল করতে হবে। এছাড়াও
verilated_vcd_sc.cpp (SystemC ট্রেসের জন্য) অথবা verilated_vcd_c.cpp (উভয়ের জন্য) হতে হবে
কম্পাইল করা এবং লিঙ্ক করা। ভেরিলেটর ব্যবহার করলে মেকফাইলস জেনারেট করা হয়
আপনার জন্য উৎস লক্ষ্য হিসাবে যোগ করা হয়েছে. আপনি যদি ভেরিলেটর মেকফাইলস ব্যবহার না করেন, আপনি
ম্যানুয়ালি আপনার Makefile এ যোগ করতে হবে।

কম্পাইল ইন ট্রেসিং কিছু ছোট কর্মক্ষমতা ক্ষতি হতে পারে, এমনকি যখন
মডেল এক্সিকিউশনের সময় ওয়েভফর্ম চালু হয় না।

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

--ট্রেস-ম্যাক্স-অ্যারে গভীরতা
খুব কমই প্রয়োজন। একটি সংকেতের সর্বাধিক অ্যারে গভীরতা উল্লেখ করুন যা ট্রেস করা যেতে পারে।
ডিফল্ট 32, কারণ বড় অ্যারে ট্রেস করা ট্রেস করা সিমুলেশনগুলিকে অনেক ধীর করে দিতে পারে।

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

--নো-ট্রেস-পরামস
পরামিতিগুলির ট্রেসিং অক্ষম করুন।

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

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

-UVar
প্রদত্ত প্রিপ্রসেসর চিহ্নটিকে অসংজ্ঞায়িত করে।

--আনরোল-গণনা লুপ
খুব কমই প্রয়োজন। লুপ পুনরাবৃত্তির সর্বাধিক সংখ্যা নির্দিষ্ট করে যা আনরোল করা হতে পারে।
BLKLOOPINIT সতর্কতাও দেখুন।

--unroll-stmts বিবৃতি
খুব কমই প্রয়োজন। সেই লুপের জন্য একটি লুপে সর্বোচ্চ সংখ্যক বিবৃতি নির্দিষ্ট করে
আনরোল করা BLKLOOPINIT সতর্কতাও দেখুন।

--unused-regexp regexp
খুব কমই প্রয়োজন। একটি সাধারণ regexp উল্লেখ করে * এবং? যে যদি একটি সংকেত নাম মেলে
অব্যবহৃত সতর্কতা দমন করবে। ডিফল্ট "*unused*"। এটিকে "" সেট করা নিষ্ক্রিয় করে
ম্যাচিং

-V কম্পাইল করা কনফিগারেশন তথ্য সহ ভার্বোস সংস্করণ দেখায়
ভেরিলেটর (পার্ল-ভির অনুরূপ)

-v ফাইলের নাম
একটি ভেরিলগ লাইব্রেরি হিসাবে ফাইলের নাম পড়ুন। ফাইলের কোনো মডিউল ব্যবহার করা যেতে পারে
শীর্ষ স্তরের মডিউলে সেল ইনস্ট্যান্টেশনগুলি সমাধান করুন, অন্যথায় উপেক্ষা করা হবে। Note -v মোটামুটি
ভেরিলগ টুল জুড়ে স্ট্যান্ডার্ড।

+verilog1995ext+EXT
+verilog2001ext+EXT
"+1364-1995ext+" এর সমার্থক শব্দEXT এবং "+1364-2001ext+"EXT যথাক্রমে

-ওয়াল
কোড শৈলী সতর্কতাগুলি সহ যেগুলি সাধারণত অক্ষম করা হয় সেগুলি সহ সমস্ত সতর্কতা সক্ষম করুন৷
ডিফল্ট.

-ভুল-বার্তা
নির্দিষ্ট সতর্কতা বার্তাটিকে একটি ত্রুটি বার্তায় রূপান্তর করুন। এই সাধারণত
উদাহরণস্বরূপ, গুরুত্বপূর্ণ সাইট-ব্যাপী নিয়ম লঙ্ঘন থেকে ব্যবহারকারীদের নিরুৎসাহিত করুন
"-Werror-NOUNOPTFLAT"।

-ভবিষ্যত-বার্তা
খুব কমই প্রয়োজন। প্রদত্ত দিয়ে অজানা ভেরিলেটর মন্তব্য বা সতর্কতা বার্তা দমন করুন
বার্তা কোড। এর পরবর্তী সংস্করণের জন্য pragmas দিয়ে লেখা কোডের অনুমতি দিতে এটি ব্যবহার করা হয়
একটি পুরানো সংস্করণের অধীনে চালানোর জন্য ভেরিলেটর; প্রতিটি বার্তা কোডের জন্য -Wfuture- যুক্ত করুন
অথবা মন্তব্য করুন যে নতুন সংস্করণ সমর্থন করে যা পুরানো সংস্করণ সমর্থন করে না।

-ওনো-বার্তা
নির্দিষ্ট সতর্কতা বার্তা নিষ্ক্রিয় করুন. এটি যেকোনো lint_on নির্দেশকে ওভাররাইড করবে
উত্স, অর্থাৎ সতর্কতা এখনও মুদ্রিত হবে না।

-উনো-লিন্ট
সমস্ত লিন্ট সম্পর্কিত সতর্কতা বার্তা এবং সমস্ত শৈলী সতর্কতা অক্ষম করুন। এই সমতুল্য
থেকে "-Wno-ALWCOMBORDER -Wno-CASEINcomplete -Wno-CASEOVERLAP -Wno-CASEX -Wno-CASEWITHX
-Wno-CMPCONST -Wno-ENDLABEL -Wno-IMPLICIT -Wno-LITENDIAN -Wno-PINCONNECTEMPTY
-Wno-PINMISSING -Wno-SYNCASYNCNET -Wno-UNDRIVEN -Wno-unSigned -Wno-unused -Wno-WIDTH"
প্লাস Wno-স্টাইলের জন্য দেখানো তালিকা।

এটি দৃঢ়ভাবে সুপারিশ করা হয় যে আপনি এই বিকল্পটি ব্যবহার করার পরিবর্তে আপনার কোড পরিষ্কার করুন, এটি
শুধুমাত্র তৃতীয় পক্ষের কাছ থেকে প্রাপ্ত কোডের টেস্ট-কেস চালানোর সময় ব্যবহার করার উদ্দেশ্যে।

-উনো-স্টাইল
সমস্ত কোড শৈলী সম্পর্কিত সতর্কতা বার্তাগুলি অক্ষম করুন (ডিফল্টরূপে নোট করুন সেগুলি ইতিমধ্যেই রয়েছে৷
অক্ষম)। এটি "-Wno-DECLFILENAME -Wno-DEFPARAM -Wno-INCABSPATH এর সমতুল্য
-Wno-PINCONNECTEMPTY -Wno-PINNOCONNECT -Wno-SYNCASYNCNET -Wno-UNDRIVEN -Wno-unused
-উনো-ভারহিদেন"।

-ওনো-মারাত্মক
যখন সতর্কতা সনাক্ত করা হয়, সেগুলি মুদ্রণ করুন, কিন্তু সিমুলেটর থেকে প্রস্থান করবেন না।

বিল্ডে সতর্কতামূলক বার্তা থাকা অপ্রতুল। এটা দৃঢ়ভাবে আপনি পরিষ্কার সুপারিশ করা হয়
আপনার কোড, ইনলাইন lint_off ব্যবহার করুন, অথবা এই বিকল্পটি ব্যবহার করার পরিবর্তে -Wno-... পতাকা ব্যবহার করুন।

-ওয়ার্ন-বার্তা
নির্দিষ্ট সতর্কতা বার্তা সক্ষম করে।

-ওয়ার্ন-লিন্ট
সমস্ত লিন্ট সম্পর্কিত সতর্কতা বার্তা সক্ষম করুন (ডিফল্টরূপে নোট করুন তারা ইতিমধ্যে সক্ষম করা আছে),
কিন্তু শৈলী বার্তা প্রভাবিত না. এটি "-Wwarn-ALWCOMBORDER এর সমতুল্য
-Wwarn-CASEINcomplete -Wwarn-CASEOVERLAP -Wwarn-CASEX -Wwarn-CASEWITHX -Wwarn-CMPCONST
-Wwarn-ENDLABEL -Wwarn-IMPLICIT -Wwarn-LITENDIAN -Wwarn-PINMISSING -Wwarn-REALCVT
-Wwarn-unSigned -Wwarn-WIDTH"।

-ওয়ার্ন-স্টাইল
সমস্ত কোড শৈলী সম্পর্কিত সতর্কতা বার্তা সক্ষম করুন৷ এটি "-Wwarn এর সমতুল্য
বরাদ্দ -Wwarn-DECLFILENAME -Wwarn-DEFPARAM -Wwarn-INCABSPATH -Wwarn-PINNOCONNECT
-Wwarn-SYNCASYNCNET -Wwarn-UNDRIVEN -Wwarn-unused -Wwarn-VARHIDDEN"।

--x-অর্পণ 0
--x-অর্পণ 1
--x- দ্রুত বরাদ্দ (ডিফল্ট)
--x-অনন্য বরাদ্দ করুন
X-এর একটি অ্যাসাইনমেন্টের সম্মুখীন হলে প্রতিস্থাপিত দুই-স্থিতি মান নিয়ন্ত্রণ করে।
--x-assign=fast, ডিফল্ট, কর্মক্ষমতার জন্য সর্বোত্তম যাই হোক না কেন সব X-কে রূপান্তরিত করে।
--x-assign=0 সমস্ত Xs-কে 0s-এ রূপান্তর করে, এবং দ্রুত। --x-assign=1 সব Xs-এ রূপান্তর করে
1s, এটি প্রায় 0 এর মতো দ্রুত, তবে সক্রিয় উচ্চ হিসাবে রিসেট বাগগুলি খুঁজে পাওয়ার সম্ভাবনা বেশি
যুক্তি জ্বলে উঠবে। --x-assign=unique মান নির্ধারণ করতে একটি ফাংশন কল করবে, এটি
রিসেট বাগগুলি খুঁজে পেতে সমস্ত Xs-এর র্যান্ডমাইজেশনের অনুমতি দেয় এবং এটি সবচেয়ে ধীর, তবে সবচেয়ে নিরাপদ
কোডে রিসেট বাগ খুঁজে বের করা।

--x-assign অনন্য ব্যবহার করলে, আপনি আপনার এলোমেলো নম্বর জেনারেটরটি বীজ করতে চাইতে পারেন
যে প্রতিটি রিগ্রেশন রান একটি ভিন্ন র্যান্ডমাইজেশন সিকোয়েন্স পায়। সিস্টেম ব্যবহার করুন
srand48() অথবা উইন্ডোজের জন্য srand() এটি করার জন্য ফাংশন। আপনি সম্ভবত চাইবেন
নির্বাচিত যেকোনো বীজ প্রিন্ট করুন এবং সেই একই বীজ দিয়ে পুনরায় চালু করার জন্য কোড করুন যাতে আপনি করতে পারেন
বাগ পুনরুত্পাদন.

বিঃদ্রঃ. এই বিকল্পটি শুধুমাত্র সেই ভেরিয়েবলের ক্ষেত্রে প্রযোজ্য যা স্পষ্টভাবে X-এ বরাদ্দ করা হয়েছে
ভেরিলগ সোর্স কোড। ঘড়ির প্রাথমিক মান 0 তে সেট করা হয় যদি না --x-initial-edge হয়
নির্দিষ্ট করা অন্য সব স্টেট হোল্ডিং ভেরিয়েবলের প্রারম্ভিক মান সেট করা হয়েছে
--x-assign অনন্য নির্দিষ্ট করা হয়েছে।

--x-প্রাথমিক-প্রান্ত
ইভেন্ট চালিত সিমুলেটরগুলির অনুকরণ সক্ষম করে যা সাধারণত একটি এজ ট্রিগার করে৷
X থেকে 1 ("পোজেজ") বা X থেকে 0 ("নেজেজ") থেকে রূপান্তর। এইভাবে নিম্নলিখিত কোড,
যেখানে "rst_n" চালু করা হয় না তখন "res_n" কে "1'b1" তে সেট করবে যখন "rst_n" প্রথম সেট করা হয়
শূন্য থেকে:

reg res_n = 1'b0;

সর্বদা @(negedge rst_n) শুরু করুন
যদি (rst_n == 1'b0) শুরু হয়
res_n <= 1'b1;
শেষ
শেষ

ভেরিলেটরে, ডিফল্টরূপে, অপ্রচলিত ঘড়িগুলিকে শূন্যের মান দেওয়া হয়, তাই উপরের
"সর্বদা" ব্লক ট্রিগার করবে না।

যদিও এটি ভাল অনুশীলন নয়, কিছু ডিজাইন রয়েছে যা XX 0 ট্রিগারিং a-এর উপর নির্ভর করে
"negedge", বিশেষ করে রিসেট সিকোয়েন্সে। ভেরিলেটরের সাথে --x-initial-edge ব্যবহার করলে হবে
এই আচরণ প্রতিলিপি. এটি নিশ্চিত করবে যে XX 1 একটি "পোজেজ" ট্রিগার করে।

বিঃদ্রঃ. কিছু ব্যবহারকারী রিপোর্ট করেছেন যে এই বিকল্পটি ব্যবহার করলে কনভারজেন্সকে প্রভাবিত করতে পারে এবং এটি
কনভারজেন্সের সংখ্যা বাড়াতে --converge-limit ব্যবহার করা প্রয়োজন হতে পারে
পুনরাবৃত্তি এটি মডেল ডিজাইনের সাথে সমস্যার আরেকটি ইঙ্গিত হতে পারে
সম্বোধন করা উচিত।

-y Dir
ফাইলগুলি অন্তর্ভুক্ত করার জন্য অনুসন্ধান করা উচিত এমন ডিরেক্টরিগুলির তালিকায় ডিরেক্টরি যোগ করুন
বা লাইব্রেরি। তিনটি পতাকা -y, +incdir এবং -I একই রকম প্রভাব ফেলে; +incdir এবং +y
ভেরিলগ টুল জুড়ে মোটামুটি স্ট্যান্ডার্ড যখন -I হল GCC সামঞ্জস্যের জন্য একটি উপনাম।

ভেরিলেটর বর্তমান ডিরেক্টরি ("-y .") এবং কোনো নির্দিষ্ট --Mdir-এ ডিফল্ট, যদিও
এই ডিফল্ট পাথগুলি ব্যবহারকারীর নির্দিষ্ট ডিরেক্টরির পরে ব্যবহার করা হয়। এই অনুমতি দেয় '-y
"$(pwd)"' ব্যবহার করা হবে যদি এর পরিবর্তে ত্রুটি বার্তাগুলির জন্য পরম ফাইলের নাম চান
আপেক্ষিক ফাইলের নাম।

EXAMPLE টি সি ++ এক্সিকিউশন


আমরা এই উদাহরণটি C++ এ কম্পাইল করব।

mkdir test_our
cd test_our

বিড়াল < আমাদের ভি
আমাদের মডিউল;
প্রাথমিক শুরু $display("হ্যালো ওয়ার্ল্ড"); $শেষ; শেষ
শেষ মডিউল
ফাইলের শেষে

বিড়াল < sim_main.cpp
# "Vour.h" অন্তর্ভুক্ত করুন
# "verilated.h" অন্তর্ভুক্ত করুন
int main(int argc, char **argv, char **env) {
যাচাইকৃত::commandArgs(argc, argv);
Vour* top = new Vour;
যখন (!Verilated::gotFinish()) { top->eval(); }
শীর্ষ মুছে ফেলুন;
প্রস্থান(২০১১);
}
ফাইলের শেষে

যদি আপনি উৎস থেকে ভেরিলেটর ইনস্টল করেন, বা একটি টারবল, কিন্তু আপনার অপারেটিং অংশ হিসাবে না
সিস্টেম (আরপিএম হিসাবে), প্রথমে আপনাকে কিটটি নির্দেশ করতে হবে:

রপ্তানি VERILATOR_ROOT=/path/to/where/verilator/was/installed
এক্সপোর্ট PATH=$VERILATOR_ROOT/bin:$PATH

এখন আমরা আমাদের ছোট্ট উদাহরণে ভেরিলেটর চালাই।

verilator -Wall --cc our.v --exe sim_main.cpp

আমরা "obj_dir" ডিরেক্টরির অধীনে সোর্স কোড দেখতে পারি। এর জন্য নীচের ফাইলস বিভাগটি দেখুন
তৈরি করা কিছু ফাইলের বিবরণ।

ls -l obj_dir

আমরা তারপর এটি কম্পাইল করতে পারেন

cd obj_dir
make -j -f Vour.mk Vour

(ভেরিলেটর একটি ডিফল্ট কম্পাইল নিয়ম এবং লিঙ্ক নিয়ম অন্তর্ভুক্ত করেছে, যেহেতু আমরা --exe ব্যবহার করেছি এবং একটি পাস করেছি
ভেরিলেটর কমান্ড লাইনে .cpp ফাইল। এছাড়াও আপনি আপনার নিজস্ব কম্পাইল নিয়ম লিখতে পারেন, হিসাবে
আমরা SYSTEMC বিভাগে দেখাব।)

এবং এখন আমরা এটি চালানো

সিডি ..
obj_dir/Vour

এবং আমরা আউটপুট হিসাবে পেতে

হ্যালো ওয়ার্ল্ড
- our.v:2: Verilog $finish

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

EXAMPLE টি সিস্টেম এক্সিকিউশন


এটি উপরের অনুরূপ একটি উদাহরণ, কিন্তু SystemC ব্যবহার করে।

mkdir test_our_sc
cd test_our_sc

বিড়াল < আমাদের ভি
আমাদের মডিউল (clk);
ইনপুট clk; // প্রাথমিক সক্রিয়করণ পেতে ঘড়ি প্রয়োজন
সর্বদা @ (পোজেজ ক্লক)
শুরু $display("হ্যালো ওয়ার্ল্ড"); $শেষ; শেষ
শেষ মডিউল
ফাইলের শেষে

বিড়াল < sc_main.cpp
# "Vour.h" অন্তর্ভুক্ত করুন
int sc_main(int argc, char **argv) {
যাচাইকৃত::commandArgs(argc, argv);
sc_clock clk ("clk", 10, 0.5, 3, সত্য);
ভোউর* টপ;
শীর্ষ = নতুন Vour("শীর্ষ"); // SP_CELL (শীর্ষ, Vour);
top->clk(clk); // SP_PIN (টপ, clk, clk);
যখন (!Verilated::gotFinish()) { sc_start(1, SC_NS); }
শীর্ষ মুছে ফেলুন;
প্রস্থান(২০১১);
}
ফাইলের শেষে

যদি আপনি উৎস থেকে ভেরিলেটর ইনস্টল করেন, বা একটি টারবল, কিন্তু আপনার অপারেটিং অংশ হিসাবে না
সিস্টেম (আরপিএম হিসাবে), প্রথমে আপনাকে কিটটি নির্দেশ করতে হবে:

রপ্তানি VERILATOR_ROOT=/path/to/where/verilator/was/installed
এক্সপোর্ট PATH=$VERILATOR_ROOT/bin:$PATH

এখন আমরা আমাদের ছোট্ট উদাহরণে ভেরিলেটর চালাই।

verilator -ওয়াল --sc our.v

আমরা তারপর এটি কম্পাইল করতে পারেন

make -j -f Vour.mk Vour__ALL.a
make -j -f Vour.mk ../sc_main.o verilated.o

এবং SystemC এর সাথে লিঙ্ক করুন। নোট করুন লাইব্রেরিতে আপনার পথের উপর নির্ভর করে পরিবর্তিত হতে পারে
অপারেটিং সিস্টেম

রপ্তানি SYSTEMC_LIBDIR=/path/to/where/libsystemc.a/exists
এক্সপোর্ট LD_LIBRARY_PATH=$SYSTEMC_LIBDIR:$LD_LIBRARY_PATH
# SystemC 2.3.0 হলে প্রয়োজন হতে পারে
রপ্তানি SYSTEMC_CXX_FLAGS=-pthread

g++ -L$SYSTEMC_LIBDIR ../sc_main.o Vour__ALL*.o verilated.o \
-o Vour -lsystemc

এবং এখন আমরা এটি চালানো

সিডি ..
obj_dir/Vour

এবং আমরা C++ উদাহরণের মতো একই আউটপুট পাই:

হ্যালো ওয়ার্ল্ড
- our.v:2: Verilog $finish

সত্যিই, আপনার জন্য এই সব করার জন্য আপনি একটি Makefile ব্যবহার করা ভাল। তারপর, যখন আপনার উৎস
পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে এই সমস্ত পদক্ষেপগুলি চালাবে। test_sc ডিরেক্টরিতে দেখুন
একটি উদাহরণের জন্য বিতরণ।

বেঞ্চমার্কিং & অপ্টিমাইজেশান


সেরা পারফরম্যান্সের জন্য, "-O3 --x-assign=fast --noasssert" পতাকা সহ ভেরিলেটর চালান। দ্য
-O3 ফ্ল্যাগের জন্য দীর্ঘ কম্পাইল সময় প্রয়োজন হবে এবং --x-assign=fast এর ঝুঁকি বাড়াতে পারে
পারফরম্যান্সের জন্য ট্রেডে বাগ রিসেট করুন; এই পতাকার জন্য উপরের ডকুমেন্টেশন দেখুন.

ক্ষুদ্র ভেরিলগ কোড পরিবর্তনগুলিও বড় জয় দিতে পারে। আপনার কোন UNOPTFLAT থাকা উচিত নয়
ভেরিলেটর থেকে সতর্কতা। এই সতর্কতাগুলি ঠিক করার ফলে বিশাল উন্নতি হতে পারে; একজন ব্যবহারকারী
গেটের জন্য ব্যবহৃত একটি ঘড়ির ল্যাচে একটি সাধারণ পরিবর্তন করে তাদের একটি UNOPTFLAT সতর্কতা সংশোধন করেছে
ঘড়ি এবং একটি 60% কর্মক্ষমতা উন্নতি অর্জন.

এর বাইরে, একটি ভেরিলেটেড মডেলের কর্মক্ষমতা বেশিরভাগই আপনার C++ কম্পাইলারের উপর নির্ভর করে এবং
আপনার CPU এর ক্যাশের আকার।

ডিফল্টরূপে, lib/verilated.mk ফাইলের অপ্টিমাইজেশন বন্ধ আছে। এই জন্য
নতুন ব্যবহারকারীদের সুবিধা, কারণ এটি রানটাইমের খরচে কম্পাইলের সময় উন্নত করে। যোগ করতে
ডিফল্ট হিসাবে অপ্টিমাইজেশান, তিনটি ভেরিয়েবলের একটি সেট করুন, OPT, OPT_FAST, বা OPT_SLOW
lib/verilated.mk. অথবা, ভেরিলেটর কমান্ডে -CFLAGS এবং/বা -LDFLAGS বিকল্পটি ব্যবহার করুন
পতাকা সরাসরি কম্পাইলার বা লিঙ্কারে পাস করার জন্য লাইন। অথবা, শুধুমাত্র এক রানের জন্য, পাস
কমান্ড লাইনে তাদের তৈরি করতে:

OPT_FAST="-O2" -f Vour.mk Vour__ALL.a করুন

OPT_FAST সেই প্রোগ্রামগুলির জন্য অপ্টিমাইজেশন নির্দিষ্ট করে যেগুলি দ্রুত পথের অংশ, বেশিরভাগই
কোড যা প্রতি চক্র নির্বাহ করা হয়। OPT_SLOW স্লো-পাথ ফাইলের জন্য অপ্টিমাইজেশান নির্দিষ্ট করে
(প্লাস ট্রেসিং), যা খুব কমই চালায়, তবুও কম্পাইল করতে অনেক সময় লাগে
অপ্টিমাইজেশান চালু OPT সামগ্রিক অপ্টিমাইজেশান নির্দিষ্ট করে এবং সহ সমস্ত কম্পাইলকে প্রভাবিত করে
যারা OPT_FAST এবং OPT_SLOW প্রভাবিত করে। সেরা ফলাফলের জন্য, OPT="-O2" ব্যবহার করুন এবং এর সাথে লিঙ্ক করুন
"-স্থির"। প্রায় একই ফলাফলের সাথে অনেক ভালো কম্পাইল সময় থাকতে পারে
OPT_FAST="-O1 -fstrict-aliasing"। উচ্চতর অপ্টিমাইজেশান যেমন "-O3" সাহায্য করতে পারে, কিন্তু gcc
এমনকি মাঝারি আকারের ডিজাইনেও O3 এর অধীনে কম্পাইলের সময় অতিরিক্ত হতে পারে। বিকল্পভাবে, কিছু
বড় ডিজাইন "-Os" ব্যবহার করে ভালো পারফরম্যান্স রিপোর্ট করে।

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

সেরা ফলাফলের জন্য, GCC 3.3 বা নতুন ব্যবহার করুন। GCC 3.2 এবং তার আগের অপ্টিমাইজেশান বাগ রয়েছে
পয়েন্টার অ্যালিয়াসিং সনাক্তকরণ, যার ফলে 2x কর্মক্ষমতা ক্ষতি হতে পারে।

আপনি যদি একটি একক কম্পাইলে অনেকগুলি সিমুলেশন চালান, তাহলে প্রতিক্রিয়া চালিত তদন্ত করুন
সংকলন GCC-এর সাথে, -fprofile-arcs ব্যবহার করে, তারপর -fbranch-সম্ভাবনা পাওয়া যাবে
অন্য 15% বা তার বেশি।

আধুনিক কম্পাইলারগুলি লিঙ্ক-টাইম অপ্টিমাইজেশান (LTO) সমর্থন করে, যা বিশেষ করে যদি সাহায্য করতে পারে
আপনি DPI কোডে লিঙ্ক করুন। GCC-তে LTO সক্ষম করতে, সংকলন এবং লিঙ্ক উভয় ক্ষেত্রেই "-flto" পাস করুন।
দ্রষ্টব্য LTO বড় ডিজাইনে অত্যধিক কম্পাইল সময় সৃষ্টি করতে পারে।

আপনি যদি নিজের মেকফাইলগুলি ব্যবহার করেন তবে আপনি ভেরিলেড কোডটি কম্পাইল করতে চাইতে পারেন
-DVL_INLINE_OPT=ইনলাইন। এটি ইনলাইন ফাংশন করবে, তবে এর জন্য সমস্ত সিপিপি প্রয়োজন
ফাইলগুলি একটি একক কম্পাইলার রানে কম্পাইল করা হয়।

আপনি ভেরিলগ কোড প্রোফাইল করার মাধ্যমে আরও টিউনিং সম্ভাবনা উন্মোচন করতে পারেন। ব্যবহার করুন
ভেরিলেটরের --প্রোফাইল-সিফাঙ্কস, তারপর জিসিসির -জি -পিজি। আপনি তারপর oprofile বা চালাতে পারেন
C++ কোডে কোথায় সময় কাটছে তা দেখতে gprof। এর মাধ্যমে gprof আউটপুট চালান
verilator_profcfunc এবং এটি আপনাকে বলবে যে ভেরিলগ লাইন নম্বরগুলি যার উপর বেশিরভাগ
সময় ব্যয় করা হচ্ছে।

হয়ে গেলে, লেখককে ফলাফল জানাতে দিন। আমি কিভাবে Verilator ট্যাব রাখতে চাই
তুলনা করে, এবং অতিরিক্ত উন্নতির পরামর্শ দিতে সক্ষম হতে পারে।

onworks.net পরিষেবা ব্যবহার করে অনলাইন ভেরিলেটর ব্যবহার করুন


বিনামূল্যে সার্ভার এবং ওয়ার্কস্টেশন

উইন্ডোজ এবং লিনাক্স অ্যাপ ডাউনলোড করুন

লিনাক্স কমান্ডগুলি

Ad




×
ভি .আই. পি  বিজ্ঞাপন
❤️এখানে কেনাকাটা করুন, বুক করুন, অথবা কিনুন — বিনামূল্যে, পরিষেবাগুলি বিনামূল্যে রাখতে সাহায্য করে।