পুনরায় সেট করুন: সিঙ্ক্রোনাস বনাম অ্যাসিনক্রোনাস


15

আমি কয়েক বছর ধরে এফপিগাসের সাথে কাজ করছি, এবং সর্বদা আমার সার্কিটের প্রতিটি অংশের (যা এটি প্রয়োজন) জন্য সিঙ্ক্রোনাস রিসেট ব্যবহার করেছি। এটি প্রদত্ত ঘড়ির চক্রে সার্কিটকে বিশ্বব্যাপী পুনরায় সেট করতে সহায়তা করে।

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

ধন্যবাদ

উত্তর:


11

এই সম্পর্কে অনেক মতামত আছে বলে মনে হচ্ছে।
অ্যাসিঙ্ক্রোনাস জোর, সিঙ্ক্রোনাস ডিজারেশন ভাল অনুশীলন বলে জানা যায়। এটি সিঙ্ক্রোনাস দৃser়তার সাথে ঘড়িটি চালাচ্ছে না (বা রিসেট সিগন্যাল ক্যাপচার করতে খুব ধীরে ধীরে চলবে) এবং অ্যাসিঙ্ক্রোনাস ডিজারসনে সম্ভাব্য মেটাস্টেবিলিটি এড়িয়ে চলে।

আপনি রিসেট সিঙ্ক্রোনাইজার (দুটি এফএফ) বাকী নকশার রিসেটের সাথে আউটপুটটি বেঁধে ব্যবহার করবেন:

রিসেট

কয়েক
দফা আলোচনা: অ্যাসিঙ্ক এবং সিঙ্ক পুনরায় সেট করুন বনাম সিঙ্ক বনাম অ্যাসিঙ্ক পুনরায় সেট
করুন


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

না, পুনঃস্থাপনের পুনরুদ্ধারের সময় প্রয়োজন (সেটআপ / হোল্ডের মতো) এর ফলে রিসেট অ্যাসিঙ্ক্রোনসিয়ালি রিলিজের পরিষ্কার হওয়ার গ্যারান্টি নেই তবে এ কারণেই আপনি রিসেটটি সিঙ্ক্রোনালি প্রকাশ করবেন।
অলি গ্লেজার

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

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

দুঃখিত, আমি মনে করি আপনি এখন যা বলতে চাইছেন তা আমি দেখতে পাচ্ছি। আপনি যদি সিঙ্ক্রোনাইজারের দ্বিতীয় ল্যাচ থেকে সিস্টেম এফএফ রিসেটটিতে আউটপুট বোঝাতে চান তবে আমার বোঝা হল যে রিসেট পুনরুদ্ধারের সময়টি সাধারণত একই এফএফের ডেটা সেটআপ সময়ের চেয়ে কম হয়, তাই এটি ঠিক হওয়া উচিত। আমি রুট ডাল সম্পর্কে একমত, এটি আপনার মতো কিছু কার্যকর না করে কার্যকর করার পরামর্শ দেয় those
অলি গ্লেজার

7

আমি কয়েকটি কারণে সিঙ্ক্রোনাস রিসেটের উপর একটি অ্যাসিনক্রোনাস রিসেটের পক্ষে চাই (কোনও নির্দিষ্ট ক্রমে নয়):

  • একটি অ্যাসিঙ্ক্রোনাস সেট বা ফ্লিপ-ফ্লপে রিসেট ফাংশন যুক্ত করার ফলে যুক্তিটির একক কোষে একীকরণের কারণে সম্ভবত একটি ছোট নকশা তৈরি হবে (বনাম। ইনপুটটিতে একটি এবং গেট সহ একটি পুনঃসেটযোগ্য ফ্লিপ-ফ্লপ)
  • কম গেটের ফলে কম যানজলযুক্ত ওয়্যারিং / স্থান এবং রুটে ফলাফল হয়
  • চিপটি পুনরায় সেট করা এটি একটি সহজ / সহজ প্রক্রিয়া (আরও ব্যবহারকারী / পরীক্ষার বান্ধব)
  • রিসেট পাথটি অ্যাসিঙ্ক্রোনাস তৈরি করা পুনরায় সেট সংকেতের স্থির সময় বিশ্লেষণ পার্টিশনকে সহজ করে
  • একটি সিঙ্ক্রোনাস রিসেট ডেটা প্রবাহ সমালোচনামূলক পথে অতিরিক্ত যুক্তি যুক্ত করে এবং সেটআপ পূরণ এবং প্রয়োজনীয়তা ধরে রাখা আরও কঠিন করে তোলে
  • কোনও এফপিজিএর ইনপুটটিতে 4-6 ইনপুট যথেচ্ছ যুক্তিযুক্ত ফাংশন রয়েছে, আপনি ASIC এর একটি গেটের প্রতিটি ইনপুটটির জন্য "অর্থ প্রদান" (আরও ইনপুট = বৃহত্তর গেট; জটিল ফাংশনগুলি = একাধিক গেট)

শেষ পর্যন্ত আমি মনে করি না যে এই সমস্যাগুলির কোনওটিই শো-স্টপার, তবে তারা অবশ্যই এএসআইসিতে অ্যাসিনক্রোনাস রিসেটের দৃ pre় অগ্রাধিকারে অবদান রাখবে।


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

4

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

আপনি যদি সত্যিই এটি খনন করতে চান তবে আপনি সম্ভবত এই বিষয়ে কামিংয়ের কাগজপত্রগুলি পড়তে পারেন:

http://www.sunburst-design.com/papers/CummingsSNUG2003Boston_Resets.pdf

চিয়ার্স।


আমি মনে করি যে মিঃ কমিংস তার কাগজে মিস করেছেন যে গ্লাইচ ডিটেক্টররা অন্যথায় নষ্ট হওয়া ডাল কী তা দমন করতে পারে, তবে বৈধ দৈর্ঘ্যের ডালগুলিকে রুট ডালগুলিতে পরিণত করতে পারে। এর প্রভাবটি হ'ল যে ডালটি যা কেবল সঠিক দৈর্ঘ্য সেগুলি যথাযথভাবে পুনরায় সেট করার কারণ ছাড়াই নির্ধারিতভাবে সিস্টেমের রাজ্যটিকে ক্লাব করতে পারে। যেহেতু ডাবল সিঙ্ক্রোনাইজেশন ছাড়াই সব ক্ষেত্রে मेटाস্টেটিবিলিটি এড়ানো খুব কঠিন, তাই আমি দু'টি এসিঙ্ক-ক্যাপচার সার্কিট থাকার পরামর্শ দেব, যার মধ্যে একটি 'কঠোর' গ্লিট-ডিটেক্ট মাপদণ্ড রয়েছে, এবং তারপরে ...
সুপারক্যাট

... জিনিসগুলি এমনভাবে সাজান যাতে একটি সংক্ষিপ্ত ত্রুটি পরে এক বা দুটি চক্রের পুনরায় সেট হতে পারে বা না ঘটায় তবে একটি দীর্ঘ পর্যায়ে ডাল তাত্ক্ষণিক পুনরুদ্ধারের কারণ হতে পারে। এছাড়াও, ফ্লিপ ফ্লপগুলিতে 'অ্যাসিঙ্ক রিসেট' ইনপুটগুলি ব্যবহার করার সময় কিছু টপোলজিতে সংশ্লেষণে সহায়তা করতে পারে, এর অর্থ এই নয় যে সেগুলি অবশ্যই অবিচ্ছিন্নভাবে ব্যবহার করা উচিত। ল্যাচগুলিতে "অ্যাসিঙ্ক রিসেট" ইনপুট ড্রাইভিং করার সময়ও বেশিরভাগ অভ্যন্তরীণ পুনরায় সেট করা সংকেতগুলি ঘড়ির সাথে সুসংগত করতে সহায়তা করতে পারে।
সুপারক্যাট

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

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

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

2

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

আরেকটি বিষয় বিবেচনা করার বিষয় হ'ল সিস্টেমগুলিতে প্রায়শই কিছু রেজিস্টার থাকে যা রিসেট দ্বারা প্রভাবিত হওয়ার কথা নয়। যদি একটি অ্যাসিনক্রোনাস রিসেট সেই সার্কিটরিতে আঘাত করতে পারে যা সেই রেজিস্টারগুলিকে লিখতে পারে তবে এটি পুনরায় সেট করার পালসটি সম্ভব হবে যা ভুল সময়ে এসে এই নিবন্ধগুলিকে আবদ্ধ করতে পারে, এমনকি এটি একটি পরিষ্কার (অ-রুট) নাড়ি থাকলেও। উদাহরণস্বরূপ, যদি কোডটি 1111 ঠিকানার জন্য লিখতে চেষ্টা করা হয় এবং একটি অ্যাসিঙ্ক রিসেট আসে যা একটি ঘড়ির নাড়ির ঠিক ঠিক আগে যেমন ঠিক একটি ঘন্টার ডাল আসার শূন্যে পৌঁছে যায়, এটি 1110 ঠিকানায় একটি ভুল লেখার কারণ হতে পারে While একত্রিতামূলক বিলম্বের সাথে একাধিক অভ্যন্তরীণ পুনরায় সেট লাইন ব্যবহার করতে পারে তা নিশ্চিত করার জন্য যাতে নিবন্ধটি লেখাগুলি সঙ্কুচিত হওয়ার আগে অক্ষম হয়ে যায়, সিঙ্ক্রোনাস অভ্যন্তরীণ পুনরায় সেট করার যুক্তি ব্যবহার করে বিষয়টি পুরোপুরি এড়ানো যায়।

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


আমি মনে করি এটি ভাল ধারণা মত মনে হচ্ছে। রিসেটের মতো আপাতদৃষ্টিতে সহজ জিনিসগুলির সাথে ধূসর রঙের অনেকগুলি শেড।
অলি গ্লেজার

0

একজন অভিজ্ঞ ইঞ্জিনিয়ার হিসাবে ( এফপিজিএ ডিজাইন এবং এমবেডেড সিস্টেম সহ 3 বছর) ), আমি আপনাকে বলছি যে আপনাকে এফপিজিএর ডেটাশিট এবং ব্যবহারকারী গাইড পরীক্ষা করা উচিত। এটি কোনও সহজ উত্তর নয়।

আপনার পছন্দসই এফপিজিএ টাইপটি আপনার ডিজাইন এফআইটি তৈরি করতে হবে । কিছু এফপিজিএতে ফ্লিপফ্লপস থাকে যা এসিঙ্ক রিসেটের জন্য ডিজাইন করা হয়েছিল, কিছু সিঙ্ক রিসেটের জন্য ডিজাইন করা হয়েছে।

আপনার কী ধরণের ফ্লিপফ্ল্যাপ রয়েছে তার জন্য আপনাকে এফপিজিএ ব্যবহারকারী গাইড পরীক্ষা করতে হবে।

প্রবর্তক / ম্যাপার আপনার পুনরায় সেট করার জন্য উত্সর্গীকৃত পথগুলি বেছে নেবে ( কোডটি উচ্চতর ফ্রিক্যে চালাতে পারে এবং কম স্থান নেয় ) যদি আপনি নিজের কোডটি এফপিজিএ আদিম ধরণের সাথে মেলে।

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

উদাহরণ: পরীক্ষিত Xilinx এর ZYNQ ( এফপিজিএ সিঙ্কড রিসেটের জন্য ডিজাইন করা হয়েছে - আদিম ব্যবহারকারীদের গাইড দেখুন )। অ্যাসিঙ্ক থেকে সিঙ্কে রিসেট পরিবর্তন করে , সর্বোচ্চ স্থিতিশীল ফ্রিকোয়েন্সি 220MHz থেকে 258MHz এ চলে গেছে এবং তাই আমি আমার ফ্রিকোয়েন্সি মার্জিন পেরিয়েছি

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


আপনার এই বক্তব্যের সাথে আমি একমত নই যে "কার্যকরকারী একটি ঘড়ি এবং রিসেট সিগন্যাল কী তা জানে না"। সংশ্লেষণ সরঞ্জামগুলি অনুমান করে যে কোনটি ঘড়ি এবং কীভাবে সেগুলি ব্যবহৃত হয় তা পুনরায় সেট করা হয়। একটি প্রান্ত স্পেসিফিকেশন সহ ক্লক সংকেত ব্যবহৃত হয়, রিসেট হয় না। তদ্ব্যতীত, যে কোনও ফ্লিপ-ফ্লপ সিঙ্ক্রোনাস রিসেট নির্দিষ্টকরণের সাথে ব্যবহার করা যেতে পারে এবং যেমন আপনি পর্যবেক্ষণ করেছেন, এটি প্রায়শই দ্রুত সমালোচনামূলক পথে বাড়ে।
জো হাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.