কীভাবে 2-এফএফ সিঙ্ক্রোনাইজার যথাযথ সমন্বয় নিশ্চিত করে?


9

ঘড়ির সীমানা অতিক্রম করার জন্য সিগন্যালের জন্য 2-এফএফ সিঙ্ক্রোনাইজারগুলি ব্যবহার করা একটি মান। এবং প্রচুর পরিমাণে কাগজ / পরিসংখ্যান রয়েছে যার মাধ্যমে এই প্রক্রিয়াটি বর্ণনা করা হয়েছে:এখানে চিত্র বর্ণনা লিখুন

মনে হচ্ছে bclk শুধুমাত্র নাড়ি পাওয়া যাবে adat একবার (দ্বিতীয় ক্রমবর্ধমান প্রান্ত এ bclk , যার উপর আউটপুট metastability ঘটায়) bq1_dat । পরবর্তী সক্রিয় ঘড়ির প্রান্তে কীভাবে bq1_dat "উচ্চ" নমুনাযুক্ত হতে পারে?


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

এখানে চিত্র বর্ণনা লিখুন

PS: মেটাস্টেবল স্টেটটি "তীর ঘুরে" তরঙ্গরূপ প্রদর্শন করে না, তবে এমন স্তর যা '1' বা '0' নয়। নিম্নলিখিত চিত্রটি মেটাস্টেবল আউটপুটের উদাহরণ দেখায়।এখানে চিত্র বর্ণনা লিখুন

আসল চিত্রটি EE108A, লেকচার 13: মেটাস্টাবিলিটি এবং সিঙ্ক্রোনাইজেশন ব্যর্থতা (ওউ যখন গুড ফ্লিপ-ফ্লপগুলি খারাপ হয়ে যায়) ডাব্লু জে ডালির জন্য লেকচার নোট থেকে এসেছিল ।


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

@ ডেভ ট্যুইড the মন্তব্যের জন্য আপনাকে ধন্যবাদ मेटाস্টেটিবিলিটি সম্পর্কে আমি যে সমস্ত নথি পড়েছি তাতে আমি "ঘুরে বেড়ানো" তরঙ্গরূপ দেখেছি। আমি চারপাশে অনুসন্ধান করেছি এবং একটি পোস্ট পেয়েছি ( যদি কোনও ফ্লিপ ফ্লপের কোনও সেটআপ লঙ্ঘন হয় এবং মেটাস্টেবল যায় তবে মেটাস্টেবল স্টেটের সাথে ও-স্কোপ থেকে অঙ্কুর সমন্বিত কোনও ইনপুট মান স্থির করে দেওয়া কি গ্যারান্টিযুক্ত? )। চিত্রটির মূল রেফারেন্সের একটি লিঙ্ক সেই পোস্টে অন্তর্ভুক্ত রয়েছে।
fiedel

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

উত্তর:


8

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

বিভিন্ন ধরণের সংকেত রয়েছে এবং আপনি কীভাবে সিঙ্ক্রোনাইজারগুলি অন্তর্ভুক্ত করবেন তা নির্ভর করে আপনি কোন সংকেতের বিষয়ে কথা বলছেন on তবে কয়েকটি সাধারণ প্রকারের দিকে নজর দেওয়া যাক:

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

    সর্বাধিক সহজ বিকল্পটি হ'ল ডালটি প্রসারিত করা - মূলত আপনি নিশ্চিত হন যে ইনপুট ডালটি গন্তব্য ঘড়ির 1 ঘন্টার বেশি সময়কালের (এটি কমপক্ষে সেটআপের চেয়ে 1 চক্রের চেয়ে দীর্ঘ হওয়া উচিত এবং গন্তব্য নিবন্ধের জন্য সময় ধরে রাখা উচিত) । উদাহরণস্বরূপ আপনি যদি 20MHz ঘড়ি থেকে 15MHz ঘড়িতে যাচ্ছেন তবে আপনি নিশ্চিত করবেন যে আপনার ডালটি ইনপুটটিতে দুটি ঘড়ি চক্র রয়েছে যা নিশ্চিত করে যে এটি গন্তব্য ঘড়ির সামনে উপস্থাপিত হয়েছে এবং হারিয়ে গেছে না। এটি কীভাবে সিগন্যালটি পেরিয়ে যাওয়ার গ্যারান্টিযুক্ত তা আপনার প্রশ্নের উত্তর দেয়। যদি নাড়িটি এক গন্তব্য ঘড়ির সময়কালের চেয়ে আরও প্রশস্ত হয় তবে এর অর্থ এটি যদি এটি প্রথম ঘড়ির প্রান্তে মেটাস্টেবল হয়ে যায় এবং 0 হিসাবে দেখা শেষ হয়, তবে দ্বিতীয় ঘড়ির প্রান্তে এটি অবশ্যই নাড়িটি ধরে ফেলবে।

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

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

    আপনি গন্তব্য ঘড়িতে একটি নিয়ন্ত্রণ শব্দ প্রেরণের প্রয়োজন হলে আপনি এই ধরণের বাস ব্যবহার করবেন যার জন্য আপনাকে জানতে হবে যে আপনি অন্য পাঠানোর আগে সেখানে পৌঁছেছে (যেমন আপনি যদি কোনও কিছু করার জন্য আদেশ পাঠাচ্ছেন)।

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

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

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


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


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

সিঙ্ক্রোনাইজেশন কৌশলগুলির বিশদ পরিচিতির জন্য আপনাকে ধন্যবাদ। এই চিত্রটি ক্লিফোর্ড ই। কামিংস-এর "ক্লকড ডোমেন ক্রসিং (সিডিসি) ডিজাইন এবং সিস্টেমভেয়ারোগ ব্যবহার করে যাচাইকরণ কৌশল" থেকে এসেছে। আমি বুঝতে পারি যে এক-বিট সিগন্যালের জন্য, প্রস্থটি কমপক্ষে 1 ঘড়ি চক্র + সেটআপ সময় + এটির নিরাপদে প্রবেশের জন্য প্রাপ্তির দিকটি ধরে রাখতে হবে। এই ছবিতে, এই মানদণ্ডটি সন্তুষ্ট নয় কারণ আডাতের স্পন্দনটি স্খলিত প্রান্তে কেবল একবার bclk নমুনাগুলি দ্বারা নমুনা তৈরি করা হয়, যার ফলে bq1_dat metastable হতে পারে।
Fiedel

... ফলস্বরূপ, bclk এর পরবর্তী উত্থিত প্রান্তে bq1_dat পড়াটি '0' বা '1' হতে পারে। তাই ছবিতে সিঙ্ক্রোনাইজেশন ব্যর্থ বলে মনে হচ্ছে। আমি কি সঠিক?
Fiedel

@ পেবেবেলস রেফারেন্সের জন্য আপনাকে ধন্যবাদ। একবার দেখে নেবেন =)
ফাইডেল

আপনার এটিকে আপনার প্রশ্নের মধ্যে সম্পাদনা করা উচিত, উত্তর হিসাবে পোস্ট করবেন না, তবে মূলত হ্যাঁ, আপনি উদাহরণের আউটপুটটিতে 1 পেতে বা নাও পেতে পারেন।
টম কার্পেন্টার

1

1) উদাহরণস্বরূপ আপনার অঙ্কন ব্যবহার করে, aclk এবং bclk একে অপরের জন্য অবিচ্ছিন্ন। অন্য কথায়, তাদের বিভিন্ন ঘড়ির উত্স রয়েছে। তারা বৈধ ডেটা হিসাবে অ্যাড্যাট দেখাচ্ছে তবে কেবল এসিএলকে সিঙ্ক্রোনাইজ করা হয়েছে। এখানেই বিসিএলকে সিঙ্ক্রোনাইজার আসবে।

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

3) প্রথম বিসিএলকে ডেটাটির কিছু অংশ দখল করে, ফলে একটি অগোছালো আউটপুট তৈরি হয়, তবে দ্বিতীয় বিসিএলকে একটি ক্লক চক্র পরে হয়, বেক 1_ড্যাট থেকে অস্পষ্ট ডেটা উচ্চ বা নিম্ন অবস্থানে স্থিত হওয়ার জন্য যথেষ্ট সময়। অগোছালো bq1_dat ডালটি বৈধ লজিক '1' (লজিক উচ্চ) ক্যাপচার করতে, এবং এটি বৈধ এবং এখন সিঙ্ক্রোনাইজড ডেটা (লজিক উচ্চ) হিসাবে bq2_dat এ পাস করার জন্য যথেষ্ট দীর্ঘ স্থায়ী হয়েছিল।

৪) ডাউন স্ট্রিম, বিসিএলকে ব্যবহার করে যে কোনও ঘড়ির সাথে কাজ করার জন্য সিঙ্ক্রোনাইজ করা ডেটা থাকবে। লক্ষ্য করুন যে কেবল প্রথম বিসিএলকে এফএফকে একটি মেটাস্টেবল রাষ্ট্রের সাথে ডিল করতে হয়েছিল । যদি আডাত খুব পিকো বা ন্যানো সেকেন্ডে খুব দেরিতে হয়ে থাকে তবে আউটপুটটি কম যুক্তিযুক্ত হতে পারে। এই ফ্লিপ-ফ্লপগুলি কেবল ঘড়ির প্রান্তে ডেটা ইনপুট নমুনা মনে রাখবেন। উদীয়মান প্রান্তের আগে বা পরে যা ঘটে তা উপেক্ষা করা হয়।


তবে নোট করুন যে, bclk বিলম্ব কেবল সুরক্ষার একটি সম্ভাব্য পরিমাপ সরবরাহ করে এবং সঠিক পরিমাণ উভয়ই এফএফ প্রযুক্তি এবং বিসিএলসি সময়কালের উপর নির্ভর করে। কিছু হাই-রিল ক্ষেত্রে ক্ষেত্রে ত্রুটি হারকে গ্রহণযোগ্য স্তরে নামিয়ে আনতে 3 বা তারও বেশি পর্যায়ের প্রয়োজন হতে পারে।
হোয়াটআরফিস্ট

@WhatRoughBeast। আমি জানি যে খারাপ পরিস্থিতিতে দৃশ্যের অনেকগুলি সিঙ্ক পর্বের প্রয়োজন হয়, পাশাপাশি ডিজিটাল ফিল্টারিং। স্পষ্টতই আমার উত্তরটি খুব সাধারণ ছিল।
স্পার্ক 256

@ স্পার্কি 256 আমার ধাঁধাটি কী 3) আপনার মন্তব্যে। যখন বিকিউ 1_ড্যাট মেটাস্টেবল অবস্থায় থাকে তখন কীভাবে বেক 2 একটি '1' ক্যাপচার করতে পারে?
Fiedel

@Fedel, দু'টি জিনিসই বিকি 2 কে একটি পরিষ্কার ইনপুট (কমপক্ষে) ক্যাপচার করতে সক্ষম হতে অবদান রাখে। প্রথমে মেটাস্টেবলের স্থিতিকে একটি পুরো ঘড়ির চক্র ধরে রাখা দরকার। দ্বিতীয়ত, বিকিউ 1 এর মেটাস্টেবল (সিউডো-মধ্য-রেল) মান উইন্ডোতে থাকা অসম্ভব (বা এড়াতে অপ্টিমাইজড) হতে পারে যা বিকিউ 2 কে মেটাস্টেবলও হতে পারে - তবে এটি মূলত এর প্রথমটি। বলুন প্রযুক্তির ফলে মেটাস্টেবিলিটির সম্ভাব্যতা দীর্ঘায়িত হওয়ার 5% সম্ভাবনা রয়েছে। একটি 3-এফএফ সিঙ্ক পর্যায়ে এটি হ্রাস করে 0.25% করা হবে কারণ উভয় ঘরই ব্যর্থ হতে হয়েছে। মেসি অনুশীলনে প্রায় স্থিতিশীল রাষ্ট্র থেকে একটি সু-সংজ্ঞায়িত তাত্পর্যপূর্ণ বিচ্যুতি।
শান হোলিহানে

@SeanHoulihane। ব্যাখ্যার জন্য ধন্যবাদ. 'রাইজিং এজ' শব্দটি কিছুটিকে বিভ্রান্ত করে কারণ ডেটা গ্রহণের উইন্ডোটি (মেটাস্টেবল বা স্থিতিশীল) ক্রমবর্ধমান প্রান্তের অর্ধেক পয়েন্টে রয়েছে, এটি কেবলমাত্র কয়েক পিকো বা ন্যানো সেকেন্ড স্থায়ী হয়। কেবলমাত্র তাত্ক্ষণিকভাবে যুক্তিতে '1' বা '0' এ ইনপুট ডেটা থাকে তা মেটাস্টেবল বা স্থিতিশীল, যুক্তির জন্য 1 বা 0 এর
আইসির
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.