ঘড়ির ডোমেন জুড়ে প্রশস্ত নিবন্ধটি পাস করার জন্য আমি একটি বাস সিঙ্ক্রোনাইজার সার্কিট করেছি।
অ্যাসিনক্রোনাস রিসেট যুক্তি বাদ দিয়ে আমি একটি সরলীকৃত বিবরণ সরবরাহ করব।
ডেটা এক ঘড়িতে তৈরি করা হয়। আপডেটগুলি অনেকগুলি (কমপক্ষে এক ডজন) ঘড়ির কিনারা পৃথক করে:
PROCESS (src_clk)
BEGIN
IF RISING_EDGE(clock) THEN
IF computation_done THEN
data <= computation;
ready_spin <= NOT ready_spin;
END IF;
END IF;
END PROCESS;
টাটকা তথ্যের জন্য নিয়ন্ত্রণ সংকেত, যা এনআরজেডআই এনকোডেড (তাই বাসে একটি বৈধ শব্দ নিয়ন্ত্রণ সংকেতের পরিবর্তনের সাথে মিলে যায়)। নিয়ন্ত্রণ সিগন্যাল একটি সিঙ্ক্রোনাইজার হিসাবে অভিনয় করে একটি ডিএফএফ চেইনের মধ্য দিয়ে যায়।
PROCESS (dest_clk)
BEGIN
IF RISING_EDGE(dest_clk) THEN
ready_spin_q3 <= ready_spin_q2;
ready_spin_q2 <= ready_spin_q1;
ready_spin_q1 <= ready_spin;
END IF;
END PROCESS;
সিঙ্ক্রোনাইজার সার্কিট একটি সংক্ষিপ্ত বিলম্বের সূচনা করে, যা ডেটা বাসের স্থিতিশীল হওয়ার জন্য প্রচুর সময় সরবরাহ করে; ডেটা বাসটি मेटाস্ট্যাবিলিটি হওয়ার ঝুঁকি ছাড়াই সরাসরি নমুনাযুক্ত:
PROCESS (dest_clk)
BEGIN
IF RISING_EDGE(dest_clk) THEN
IF ready_spin_q3 /= ready_spin_q2 THEN
rx_data <= data;
END IF;
END IF;
END PROCESS;
এটি সংকলন করে, এবং একটি সাইক্লোন II এফপিজিএতে সংশ্লেষিত হলে ভাল কাজ করে। তবে টাইমকোয়েস্ট সেটআপ করে এবং সময় লঙ্ঘন ধরে রাখে, কারণ এটি সিঙ্ক্রোনাইজারকে সনাক্ত করে না। সবচেয়ে খারাপ, কোয়ার্টাস ম্যানুয়ালটি বলেছে
সবচেয়ে খারাপ স্লথ দেখায় এমন রাস্তাগুলি উন্নত করার দিকে মনোনিবেশ করুন। ফিটার সবচেয়ে খারাপ স্লথের সাথে পাথগুলিতে সবচেয়ে কঠোর পরিশ্রম করে। আপনি যদি এই পাথগুলি ঠিক করেন তবে ফিটার ডিজাইনের অন্যান্য ব্যর্থ সময়সীমার পাথগুলি উন্নত করতে সক্ষম হতে পারে।
সুতরাং আমি আমার প্রকল্পে সঠিক সময়সীমাবদ্ধতা যুক্ত করতে চাই যাতে কোয়ার্টাস তার নকশার অন্যান্য ক্ষেত্রগুলিতে ফিটার প্রচেষ্টা ব্যয় করতে পারে।
আমি নিশ্চিত যে set_multicycle_path
এটি যথাযথ এসডিসি (সাইনোপসিস ডিজাইন কনস্ট্রেন্ট) কমান্ড, যেহেতু ডেটা লাইনে গন্তব্য ঘড়ির একাধিক চক্র স্থিতিশীল হবে, তবে ক্লক ডোমেন ক্রসিংয়ের যুক্তি বর্ণনা করার জন্য এই আদেশটি ব্যবহার করে আমি কোনও সম্পূর্ণ উদাহরণ পাই না can't ।
আমি সিঙ্ক্রোনাইজারগুলির জন্য এসডিসির সময়সীমাবদ্ধতাগুলি লেখার জন্য কিছু গাইডেন্সের সত্যই প্রশংসা করব। যদি আপনি এই পদ্ধতির সাথে কোনও সমস্যা দেখেন তবে দয়া করে আমাকে এটিও জানান।
ঘড়ির বিশদ:
বাহ্যিক ঘড়ির জেনারেটর: দুটি চ্যানেল, রেফক্লিক = 20 মেগাহার্টজ, রেফক্লিক 2 = রেফক্ল্যাক / 2 (10 মেগাহার্জ এবং সম্পর্কিত)।
আল্টেরা পিএলএল: এসসিআর_সিএলকি = রিফ্ল্যাক * 9/5 = 36 মেগাহার্টজ
আল্টেরা পিএলএল: ডেসট_এলকি = রেফক্লিকে 2 * 10 = 100 মেগাহার্টজ
আমার কাছে 100 মেগাহার্জ এসসিআর_সিএলকি এবং 36 মেগাহার্টজ ডেস্ট_সিএলকে দিয়ে অন্য দিকে যাওয়ার ডেটা রয়েছে।
টিএল; ডিআর: উপরের কোডের জন্য সঠিক এসডিসির সময়সীমাবদ্ধতাগুলি কী কী?