এসডিসির মাধ্যমে ASIC সময়সীমাবদ্ধতা: কীভাবে সঠিকভাবে একটি মাল্টিপ্লেক্সযুক্ত ঘড়িটি নির্দিষ্ট করা যায়?


10

ভূমিকা

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

আমি জানি যে কীভাবে একজন এএসআইসি বা এফপিজিএতে আমি একটি নির্দিষ্ট কার্যকারিতা বাস্তবায়িত করতে পারি তার মধ্যে পার্থক্য রয়েছে (আমি উভয়ের সাথেই কাজ করেছি) তবে আমি মনে করি যে প্রদত্ত কাঠামোর সময়কে সীমাবদ্ধ করার জন্য একটি সাধারণ, সঠিক উপায় থাকতে হবে , যা স্বাধীন অন্তর্নিহিত প্রযুক্তি - দয়া করে আমাকে জানাবেন যে আমি এতে ভুল করছি।

বিভিন্ন বিক্রেতাদের বাস্তবায়ন এবং সময় বিশ্লেষণের জন্য বিভিন্ন সরঞ্জামের মধ্যেও কিছু পার্থক্য রয়েছে (সিনোপিসি এসডিসি পার্সার উত্স কোড সরবরাহ করেও) তবে আমি আশা করি যে তারা মূলত একটি সিনট্যাক্স ইস্যু যা ডকুমেন্টেশনে সন্ধান করতে পারে।

প্রশ্ন

এটি নীচের ক্লকটি মাল্টিপ্লেক্সারের কাঠামো সম্পর্কে, এটি ক্লকজেন মডিউলের অংশ যা আবার আরও বড় ডিজাইনের অংশ: ক্লক মাল্টিপ্লেজার স্কিম্যাটিক

যদিও ext_clkইনপুট বাইরে ডিজাইন (একটি ইনপুট পিন দিয়ে ঢুকছে) এর তৈরি করা বলে ধরা হয়, clk0এবং clk4সংকেত তৈরি এবং দ্বারা ব্যবহার করা হয় clkgen মডিউল (আমার সংশ্লিষ্ট দেখতে লহরী ঘড়ি প্রশ্ন বিস্তারিত জানার জন্য) এবং সংযুক্ত করেছেন ঘড়ি সীমাবদ্ধতার নামে baseclkএবং div4clk, যথাক্রমে।

প্রশ্নটি কীভাবে সীমাবদ্ধতাগুলি নির্দিষ্ট করে তা টাইমিং বিশ্লেষক

  1. cpu_clkমাল্টিপ্লেক্সযুক্ত ঘড়ি হিসাবে আচরণ করে যা উত্স ঘড়ির মধ্যে একটি হতে পারে ( fast_clkবা slow_clkবা ext_clk), বিভিন্ন ওআর ও গেটগুলি বিবেচনায় নিয়ে বিলম্ব গ্রহণ করে
  2. একই সময়ে নকশার অন্য কোথাও ব্যবহৃত সোর্স ক্লকগুলির মধ্যে পাথগুলি কাটছেন না।

অন-চিপ ক্লক মাল্টিপ্লেক্সারের সহজতম ক্ষেত্রে কেবল set_clock_groupsএসডিসির বিবৃতি প্রয়োজন বলে মনে হয় :

set_clock_groups -logically_exclusive -group {baseclk} -group {div4clk} -group {ext_clk}

... প্রদত্ত কাঠামোটিতে, এটি সত্য যে জটিলভাবে জটিল clk0( fast_clkআউটপুট মাধ্যমে ) এবং clk4(মাধ্যমে slow_clk) এখনও নকশায় ব্যবহৃত হয়, এমনকি যদি কেবলমাত্র যখন বলা হয় তখনই cpu_clkতা কনফিগার করা থাকে ।ext_clkuse_ext

হিসাবে বর্ণনা এখানে , set_clock_groupsউপরে যেমন কমান্ড অনুসরণ কারণ হবে:

এই কমান্ডটি প্রতিটি গ্রুপের প্রতিটি ঘড়ি থেকে অন্য গ্রুপে প্রতিটি ঘড়ি থেকে সেট_ফালস_পথ কল করার সমতুল্য এবং বিপরীতভাবে

... যা অন্যথায় ঘড়ি এখনও অন্য কোথাও ব্যবহার করা হয়, কারণ এটি ভুল হবে।

অতিরিক্ত তথ্য

use_clk0, use_clk4এবং use_extইনপুট এমনভাবে এর মধ্যে শুধুমাত্র একটি যেকোনো দেওয়া সময়ে উচ্চ যে তৈরি হয়। সমস্ত use_*ইনপুট কম থাকলে এটি সমস্ত ঘড়ি থামাতে ব্যবহার করা যেতে পারে , তবে এই প্রশ্নের কেন্দ্রবিন্দু এই কাঠামোর ঘড়ির একাধিক সংস্থার দিকে।

X2 তে উদাহরণস্বরূপ (ক সহজ বাফার) পরিকল্পিত মাত্র একটি জায়গা-ধারক স্বয়ংক্রিয় জায়গা & রুট সরঞ্জাম সাধারণত যে কোন জায়গায় জায়গা বাফার (যেমন মধ্যে হিসাবে মুক্ত হবার বিষয়টি তুলে ধরতে হয় and_cpu_1/zএবং or_cpu1/in2পিনের)। আদর্শভাবে, সময়সীমাবদ্ধতাগুলি এর দ্বারা প্রভাবিত হওয়া উচিত।


আপনি একটি খুব নির্দিষ্ট, খুব সংকীর্ণ প্রশ্ন এটিকে সংকুচিত করে আরও সংযুক্ত করার চেষ্টা করতে পারেন? গুরুত্বপূর্ণ তথ্য কী, এবং আপনি এখানে পরে আসলে কী তা বুঝতে আমার পক্ষে শক্ত।
ট্র্যাভিসবার্টলি

@ ট্র্যাভ 1 এস: আমি প্রশ্নটি পুনর্গঠন করেছি। আপনার কোনও ব্যাখ্যা প্রয়োজন হলে দয়া করে আমাকে জানান।
ফ্রেন্ডএফএক্স

উত্তর:


3

And_ * নেটগুলিতে 1 টি ঘড়ি দ্বারা বিভাজন সংজ্ঞা দিন এবং তাদের শারীরিকভাবে একচেটিয়া ঘোষণা করুন। ক্যাডেন্স আরটিএল সংকলক সিপিইউ_ক্ল্যাক দ্বারা ক্লক করা রেজিস্টারগুলির জন্য 3 টি টাইমিং পাথ তৈরি করে পরিস্থিতিটি সঠিকভাবে পরিচালনা করে (এক ঘন্টার জন্য প্রতিটি এক পাথ)। Clk0, clk4 এবং clk_ext দ্বারা সরাসরি চালিত নিবন্ধসমূহগুলির নিজস্ব টাইমিং আর্ক থাকে।

create_generated_clock -source [get_ports clk0] \
-divide_by 1 -name and_clk0    [get_pins and_cpu_1/Y]

create_generated_clock -source [get_ports clk4] \
-divide_by 1 -name and_clk4    [get_pins and_cpu_2/Y]

create_generated_clock -source [get_ports clk_ext] \
-divide_by 1 -name and_clk_ext [get_pins and_cpu_ext1/Y]

set_clock_groups \
-physically_exclusive \
-group [get_clocks and_clk0] \
-group [get_clocks and_clk4] \
-group [get_clocks and_clk_ext]

আপনার পরামর্শের জন্য ধন্যবাদ. দুর্ভাগ্যক্রমে আমি বর্তমানে এটি যাচাই করতে পারি না, তবে আপনার ধারণাটি আমার কাছে বেশ প্রতিশ্রুতিবদ্ধ বলে মনে হচ্ছে। আপনি কিনা মধ্যে পাথ পরীক্ষা গেল cast_clk, cpu_clkএবং slow_clkএখনও (কারণে একচেটিয়া ঘড়ি গোষ্ঠীতে অর্থাত না একটি ব্যতিক্রম) পরীক্ষিত হয়, যখন একই সময়ে তাদের নিজ নিজ ইনপুট ঘড়ি দ্বারা সীমাবদ্ধ হচ্ছে? শেষ পর্যন্ত, আমি এই প্রশ্নের একটি অনুমোদিত উত্তর খুঁজছি।
ফ্রেন্ডএফএক্স

@ ফ্রেন্ডএফএক্স আমি আরটিএল সংকলনে কোডটি পরীক্ষা করেছি এবং পাথগুলি সঠিকভাবে অনুমান করা হয়েছে।
রেভান্থ কামরাজ

কেবল আপনাকে জানাতে, আমি একক সেল ঘড়ির মাল্টিপ্লেক্সার এবং একটি সমাধান (কমপক্ষে কিছু সরঞ্জামের জন্য) সম্পর্কে কিছু তথ্য যুক্ত করেছি।
ফ্রেন্ডএফএক্স

1

যদিও এটি একটি পুরানো থ্রেড অনুत्तरযুক্ত ... এটি সিঙ্ক বনাম অ্যাসিঙ্ক ঘড়িগুলির কিছু প্রাথমিক বোঝাপড়া coversেকে রাখে

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

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


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