এই অপারেটরটিকে ভারিওলেজে "+:" হিসাবে ডাকা হয়


14

আমি ভেরিলোগ পরীক্ষা মামলার মধ্য দিয়ে যাচ্ছি এবং একটি বিবৃতি পেয়েছি

assign XYZ = PQR_AR[44*8 +: 64];

"+:" অপারেটর কী হিসাবে পরিচিত। আমি গুগলে এটি সন্ধান করার চেষ্টা করেছি কিন্তু কোনও প্রাসঙ্গিক উত্তর পাইনি।

উত্তর:


22

এই সিনট্যাক্সকে সূচকযুক্ত অংশ-নির্বাচন বলা হয় । প্রথম শব্দটি বিট অফসেট এবং দ্বিতীয় পদটি প্রস্থ। এটি আপনাকে অফসেটের জন্য একটি ভেরিয়েবল নির্দিষ্ট করার অনুমতি দেয় তবে প্রস্থটি অবশ্যই ধ্রুবক হতে হবে।

সিস্টেমভাইরোগ 2012 এলআরএম থেকে উদাহরণ:

logic [31: 0] a_vect;
logic [0 :31] b_vect;

logic [63: 0] dword;
integer sel;

a_vect[ 0 +: 8] // == a_vect[ 7 : 0]
a_vect[15 -: 8] // == a_vect[15 : 8]
b_vect[ 0 +: 8] // == b_vect[0 : 7]
b_vect[15 -: 8] // == b_vect[8 :15]

dword[8*sel +: 8] // variable part-select with fixed width

2

অবশেষে আমি এর জন্য উত্স পৃষ্ঠাটি পেয়েছি, এটিকে সূচক ভেক্টর অংশ নির্বাচন হিসাবে বলা হয় ("+:")

এটি আরও কিছুটা ব্যাখ্যা করার জন্য

PQR_AR[44*8 +: 64];

ইনডেক্সেড ভেক্টর অংশ নির্বাচন করুন যা ভেরিলগ 2000 এ যুক্ত হয়েছে, আপনি পুরো অংশটি বেছে নেওয়ার পরিবর্তে বাসের একটি অংশ নির্বাচন করতে পারেন।

৪৪ * part অংশটি পার্ট সিলেক্ট ভেরিয়েবলের প্রারম্ভিক এবং part৪ পার্ট সিলেক্ট অ্যান্ডিস ধ্রুবকের প্রস্থ। এর অর্থ হল যদি প্রাথমিকভাবে আমরা আরম্ভ করি

input [415:0] PQR;

আমরা PQR এর একটি বিশেষ অংশ ব্যবহার করে নির্বাচন করছি

PQR_AR[44*8 +: 64];

এটি PQR_AR [352+: 64] বা এর অর্থ আমরা 0 থেকে 415 এর মধ্যে 352 থেকে 415 এর মধ্যে অংশ নিচ্ছি।


এলআরএম থেকে প্রাপ্ত দ্বিচল উত্তর থেকে, যখন আমরা একটি বাস শুরু করি: ইনপুট [415: 0] পিকিউআর; তারপরে, পিকিউআর_আর [৪৪ * ৮ +: 64৪] পিকিউআর_আর [352: 288] হওয়া উচিত এবং পিকিউআর_আর নয় [415: 352]। আমি যদি ভুল পথে যাচ্ছি তবে দয়া করে আমাকে সংশোধন করুন।
এবিএক্স

@ এএক্সএক্স আমি নির্দেশনার বিষয়ে একমত, পিকিউআর_আর [৩৫২: ২৮৯] ব্যতীত bit৪ বিট প্রশস্ত বাস হতে হবে
পিটারবিসি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.