একটি ঘড়ির উভয় প্রান্ত ব্যবহার করা


10

আমি ভেরিলোগ এবং দ্বিতীয় কোয়ার্টাস দ্বিতীয়টি ব্যবহার করে একটি আল্টেরা ঘূর্ণিঝড় IV প্রোগ্রাম করছি। আমার ডিজাইনে, আমি একটি ঘড়ির উভয় প্রান্ত ব্যবহার করতে চাই যাতে আমি 50% শুল্ক চক্রের সাথে একটি বিজোড় ফ্যাক্টর দ্বারা ঘড়ি বিভাগ করতে পারি। এখানে আমার কোডের একটি স্নিপেট রয়েছে:

  always @(posedge low_jitter_clock_i or negedge low_jitter_clock_i or posedge reset_i) begin
    if(reset_i) begin
      fixed_clock <= 1'b0;
      divider_dummy <= 'b0;
    end else begin
      fixed_clock <= fixed_clock_next;
      divider_dummy <= divider_dummy_next;
    end
  end

এখন যখন আমি এটি সংকলন করি, দ্বিতীয় কোয়ার্টাস নিম্নলিখিত ত্রুটিটি ছুড়ে ফেলেছেন:

ভেরিলোগ এইচডিএল সর্বদা adc_clocking.v (83) এ ত্রুটি তৈরি করুন: ইভেন্ট কন্ট্রোল "কম_জিটার_ক্লোক_আই" ভেরিয়েবলের ইতিবাচক এবং নেতিবাচক উভয় প্রান্তের জন্য পরীক্ষা করতে পারে না

আমি কীভাবে আমার নকশায় প্রদত্ত ঘড়ির ধনাত্মক এবং নেতিবাচক প্রান্ত ব্যবহার করতে পারি?

উত্তর:


7

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

আপনি যা চান তা করতে, আপনাকে দুটি পৃথক সর্বদা ব্লক থাকা দরকার, ঘড়ির প্রতিটি প্রান্তের জন্য একটি এবং তারপরে কোনও সমস্যা তৈরি না করে দুটি ব্লকের আউটপুটগুলিকে একত্রিত করার উপায় বের করতে হবে।

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


আমি যে কারণে ঘড়ির ধনাত্মক এবং নেতিবাচক উভয় প্রান্তই ব্যবহার করতে চাই তা হচ্ছে 50% শুল্কচক্র থাকা।
র্যান্ডমব্লিউ

হ্যাঁ, আমি এটি পেয়েছি আমার উত্তরটি সরাসরি এটিকে সম্বোধন করে। আমি ধরে নিয়েছি আপনি যখনই ডিভাইডারের মান সমান হয় তখন কীভাবে 50% শুল্ক চক্রটি পাবেন তা আপনি ইতিমধ্যে জানেন। কি পরিষ্কার নয়?
ডেভ টুইট করেছেন

দ্বৈত প্রান্তের ফ্লিপ-ফ্লপ নেই? এর কোন অন্তর্নিহিত কারণ নেই। এটি কেবল প্রমাণিত হয়েছে যে কেউ তাদের তৈরি করছে না (বা কমপক্ষে এমন কেউ নয় যা আমরা জানি)। মার্টিন যেমন উল্লেখ করেছেন, সেখানে একটি সিপিএলডি রয়েছে যা দ্বৈত প্রান্তের ফ্লিপ-ফ্লপগুলি সমর্থন করে: xilinx.com/products/silicon-devices/cpld/coolrunner-ii/…
ফিলিপ

3

যদি এটি অভ্যন্তরীণ যুক্তিযুক্ত হয় তবে আপনার সম্ভবত সম্ভবত পাওয়া যায় এমন ফ্লিপপ্লপগুলির আরও অনেক কাছাকাছি লিখতে হবে। কুলারনার -২ ব্যতীত আমি সহজাতভাবে দ্বি-প্রান্তের রেজিস্টারগুলির সাথে কোনও প্রোগ্রামযোগ্য যুক্তি সম্পর্কে অবগত নই।

সুতরাং, আপনাকে দুটি alwaysব্লক তৈরি করতে হবে , একটি নেজেজের জন্য এবং একটি পোজ দেওয়ার জন্য এবং তাদের আউটপুটগুলিকে কিছু সংমিশ্রণ যুক্তির সাথে একত্রিত করতে হবে।

বা ঘড়ির দ্বিগুণ করার জন্য একটি পিএলএল ব্যবহার করুন এবং তারপরে আপনি প্রচলিত একক ধারার যুক্তি ব্যবহার করতে পারেন।



1

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

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

এই ফ্যাশনে নকশাকৃত একটি সার্কিট মূলত ডাবল-এজ ফ্লিপ ফ্লপের মতো কাজ করবে, যদিও দীর্ঘ সেটআপ এবং প্রচারের সময় থাকলেও অতিরিক্ত সময়সীমাবদ্ধতা রয়েছে। একটি সাধারণ ফ্লিপ ফ্লপ যা কোনও প্রতিক্রিয়া পথে নয় তা যদি মনে হয় না তবে যদি একটি ঘড়ির প্রান্তের শুরুতে একগুচ্ছ রুট ডাল থাকে তবে শর্ত থাকে যে ঘড়িটি একটি বৈধ স্তরে স্থিতিশীল হয় এবং প্রদত্ত যে সেটআপের সময় সীমাবদ্ধতাটি আগে থেকেই পরিমাপ করা হয়েছিল প্রথম রেন্ট ডাল এবং হোল্ড সময় এবং ঘড়ি-সক্রিয় সময় সীমাবদ্ধতাগুলি, ঘড়ির নাড়িটি স্থিরভাবে সক্রিয় হওয়ার সময় থেকে পরিমাপ করা হয়। ঘড়িটি অস্থির হওয়ার সময় ফ্লিপ ফ্লপ আউটপুটটির আচরণ সংজ্ঞায়িত হবে তবে ঘড়ির স্থিরতা হওয়ার পরে সংজ্ঞা দেওয়া হবে। ডাবল-এক্সোর-ডাবল-ফ্লপ মডিউলটি অতিরিক্ত সময় সীমাবদ্ধতা যুক্ত করবে যে যে কোনও ক্লক প্রান্ত যা আউটপুট পরিবর্তন করবে তা অবশ্যই অন্য যে কোনও ক্লক প্রান্ত থেকে নিরাপদ দূরত্ব হতে হবে। এই সীমাবদ্ধতাটি পূরণ করতে ব্যর্থ হওয়া, যেমন ইনপুট আউটপুটটির সাথে মেলে না এমন সময় খুব কাছাকাছি সময়ে তিনটি ঘড়ি প্রান্ত থাকা, আউটপুটটিকে একটি অনির্দিষ্ট বা मेटाস্টেবল অবস্থায় রেখে যেতে পারে (দ্রষ্টব্য যে একটি সংখ্যক প্রান্তের সাথে জড়িত পরিস্থিতিতেও উদ্বেগ নয়) যেহেতু এই জাতীয় পরিস্থিতিগুলি ডাল ছাড়া রঞ্জক ছাড়া আর কিছুই জড়িত না; ত্রিমুখী কেস (বা একের চেয়ে বড় অন্যান্য বিজোড় সংখ্যাগুলি) উদ্বেগের কারণ এই রুট ডালের পরে বৈধ নাড়ি থাকতে পারে।

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

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.