شمارنده آبشاری- بخش اول
شمارنده MOD یا Modulus Counter یک مدار شمارنده آبشاری است که قبل از ریست شدن، تا یک مقدار تنظیم شده میشمارد. در این مقاله قصد داریم این نوع از شمارندهها را بررسی کنیم.
سرویس آموزش و آزمون برق نیوز، شمارنده MOD یا Modulus Counter یک مدار شمارنده آبشاری است که قبل از ریست شدن، تا یک مقدار تنظیم شده میشمارد. در این آموزش قصد داریم این نوع از شمارندهها را بررسی کنیم.
وظیفه یک شمارنده این است که با هر پالس کلاک، در دنباله اعداد از پیش تعیین شده پیشروی کند، تا شمارش انجام گیرد. شمارندههایی که دنباله اعداد یا حالتهای شمارش خود را با ورود هر پالس ساعت افزایش میدهند، در اصطلاح شمارنده بالا شمار (Up Counter) یا صعودی نام دارند. به طریق مشابه، شمارندههایی که با ورود پالس کلاک به آنها، دنباله اعداد یا حالتهای شمارش خود را کاهش میدهند، شمارنده پایین شمار (Down Counting) یا نزولی گفته میشوند. شمارندههایی که این قابلیت را دارند تا در هر دو مود بالا شمار و پایین شمار عمل کنند، شمارندههای دو جهته (Bidirectional Counters) نام دارند.
در حالت کلی میتوان گفت که شمارندهها، مدارات منطقی ترتیبی (Sequential Logic Circuit) هستند که توسط یک سیگنال خارجی به نام سیگنال کلاک، تریگر یا فعالسازی میشوند. یک شمارنده میتواند به نحوی ساخته شود تا به عنوان یک مدار سنکرون و یا یک مدار آسنکرون عمل کند. در شمارندههای سنکرون، تمام بیتهای شمارش به صورت همزمان و با اعمال سیگنال کلاک تغییر میکنند. در حالی که در یک شمارنده آسنکرون، مدار از سیگنال کلاک ورودی مستقل است و به همین دلیل بیتهای داده، حالت خود را در زمانهای مختلف یکی پس از دیگری تغییر میدهد.
پس شمارندهها مدرات ترتیبی هستند که دنباله از پیش تعیین شدهای از حالتهای شمارش را دنبال میکنند و با سیگنال کلاک خارجی تریگر میشوند. تعداد حالتها یا دنباله شمارشی که یک شمارنده، قبل از بازگشت به حالت اصلی خود، طی میکند را پیمانه (Modulus) آن شمارنده میگویند و با MOD نشان داده میشود. به عبارت دیگر میتوان گفت که پیمانه هر شمارنده، تعداد اعدادی است که یک شمارنده میشمارد و برابر با عدد مقسم شمارنده است.
شمارندههای پیمانهای یا منقطع یا MOD بر اساس تعداد حالاتی که شمارنده در هر تکرار طی میکند، تعریف میشوند. به عنوان مثال، یک شمارنده دو بیتی که از ۰۰ تا ۱۱ در مبنای باینری میشمارد، دارای مقدار پیمانهای یا MOD برابر با ۴ است. مقادیر شمارش این شمارنده در مبنای ده دهی از ۰ تا ۳ است و حالتهایی که در طول شمارش آنها را طی میکند، برابر با ۰۰، ۰۱، ۱۰ و ۱۱ هستند. بعد از طی کردن این ۴ حالت در دنباله شمارشی، شمارنده به حالت اصلی خود یعنی ۰۰ باز میگردد. بر اساس این توضیحات، چنین شمارندهای را شمارنده MOD-۴ میگویند. به این نکته مهم نیز توجه کنید که این شمارنده برای طی کردن یک دنباله از ۰۰ تا ۱۱ به چهار پالس کلاک در ورودی خود احتیاج دارد.
همان طور که در مثال ساده بالا دیدیم، این شمارنده فقط دو بیت (n=۲) دارد، بنابراین بیشینه تعداد حالتهای ممکن در خروجی برای این شمارنده برابر با ۲n=۲^۲=۴است. اما نکته مهمی که وجود دارد، این است که میتوان شمارندهها را به نحوی طراحی کرد که شمارش را نه به صورت کامل، بلکه تا هر عدد دلخواهی از ۲nحالت ممکن، انجام دهند. این کار را با اتصال آبشاری چندین طبقه شمارنده به یکدیگر و تولید یک شمارنده MOD-N امکانپذیر میشود؛ بنابراین یک شمارنده MOD-n، به n عدد فلیپ فلاپ که به یکدیگر متصل شده باشند، نیاز دارد تا یک بیت داده را بشمارد و ۲nحالت مختلف را در خروجی تولید کنند. n برابر با تعداد بیتها است. همچنین به این نکته باید توجه کرد که n همیشه یک عدد صحیح است.
دیدیم که یک شمارنده MOD دارای مقدار پیمانهای است که توان صحیحی از عدد ۲ مانند ۲، ۴، ۸ و … در نظر گرفته میشود؛ بنابراین در تولید یک شمارنده n بیتی، بسته به تعداد فلیپ فلاپهای مورد استفاده و نیز نحوه اتصال آنها، نوع شمارنده و مقدار MOD آن تعیین میشود.
وظیفه یک شمارنده این است که با هر پالس کلاک، در دنباله اعداد از پیش تعیین شده پیشروی کند، تا شمارش انجام گیرد. شمارندههایی که دنباله اعداد یا حالتهای شمارش خود را با ورود هر پالس ساعت افزایش میدهند، در اصطلاح شمارنده بالا شمار (Up Counter) یا صعودی نام دارند. به طریق مشابه، شمارندههایی که با ورود پالس کلاک به آنها، دنباله اعداد یا حالتهای شمارش خود را کاهش میدهند، شمارنده پایین شمار (Down Counting) یا نزولی گفته میشوند. شمارندههایی که این قابلیت را دارند تا در هر دو مود بالا شمار و پایین شمار عمل کنند، شمارندههای دو جهته (Bidirectional Counters) نام دارند.
در حالت کلی میتوان گفت که شمارندهها، مدارات منطقی ترتیبی (Sequential Logic Circuit) هستند که توسط یک سیگنال خارجی به نام سیگنال کلاک، تریگر یا فعالسازی میشوند. یک شمارنده میتواند به نحوی ساخته شود تا به عنوان یک مدار سنکرون و یا یک مدار آسنکرون عمل کند. در شمارندههای سنکرون، تمام بیتهای شمارش به صورت همزمان و با اعمال سیگنال کلاک تغییر میکنند. در حالی که در یک شمارنده آسنکرون، مدار از سیگنال کلاک ورودی مستقل است و به همین دلیل بیتهای داده، حالت خود را در زمانهای مختلف یکی پس از دیگری تغییر میدهد.
پس شمارندهها مدرات ترتیبی هستند که دنباله از پیش تعیین شدهای از حالتهای شمارش را دنبال میکنند و با سیگنال کلاک خارجی تریگر میشوند. تعداد حالتها یا دنباله شمارشی که یک شمارنده، قبل از بازگشت به حالت اصلی خود، طی میکند را پیمانه (Modulus) آن شمارنده میگویند و با MOD نشان داده میشود. به عبارت دیگر میتوان گفت که پیمانه هر شمارنده، تعداد اعدادی است که یک شمارنده میشمارد و برابر با عدد مقسم شمارنده است.
شمارندههای پیمانهای یا منقطع یا MOD بر اساس تعداد حالاتی که شمارنده در هر تکرار طی میکند، تعریف میشوند. به عنوان مثال، یک شمارنده دو بیتی که از ۰۰ تا ۱۱ در مبنای باینری میشمارد، دارای مقدار پیمانهای یا MOD برابر با ۴ است. مقادیر شمارش این شمارنده در مبنای ده دهی از ۰ تا ۳ است و حالتهایی که در طول شمارش آنها را طی میکند، برابر با ۰۰، ۰۱، ۱۰ و ۱۱ هستند. بعد از طی کردن این ۴ حالت در دنباله شمارشی، شمارنده به حالت اصلی خود یعنی ۰۰ باز میگردد. بر اساس این توضیحات، چنین شمارندهای را شمارنده MOD-۴ میگویند. به این نکته مهم نیز توجه کنید که این شمارنده برای طی کردن یک دنباله از ۰۰ تا ۱۱ به چهار پالس کلاک در ورودی خود احتیاج دارد.
همان طور که در مثال ساده بالا دیدیم، این شمارنده فقط دو بیت (n=۲) دارد، بنابراین بیشینه تعداد حالتهای ممکن در خروجی برای این شمارنده برابر با ۲n=۲^۲=۴است. اما نکته مهمی که وجود دارد، این است که میتوان شمارندهها را به نحوی طراحی کرد که شمارش را نه به صورت کامل، بلکه تا هر عدد دلخواهی از ۲nحالت ممکن، انجام دهند. این کار را با اتصال آبشاری چندین طبقه شمارنده به یکدیگر و تولید یک شمارنده MOD-N امکانپذیر میشود؛ بنابراین یک شمارنده MOD-n، به n عدد فلیپ فلاپ که به یکدیگر متصل شده باشند، نیاز دارد تا یک بیت داده را بشمارد و ۲nحالت مختلف را در خروجی تولید کنند. n برابر با تعداد بیتها است. همچنین به این نکته باید توجه کرد که n همیشه یک عدد صحیح است.
دیدیم که یک شمارنده MOD دارای مقدار پیمانهای است که توان صحیحی از عدد ۲ مانند ۲، ۴، ۸ و … در نظر گرفته میشود؛ بنابراین در تولید یک شمارنده n بیتی، بسته به تعداد فلیپ فلاپهای مورد استفاده و نیز نحوه اتصال آنها، نوع شمارنده و مقدار MOD آن تعیین میشود.
شمارنده MOD با فلیپ فلاپ نوع D
شمارندههای MOD با استفاده از فلیپ فلاپها ساخته میشوند. یک فلیپ فلاپ به تنهایی، میتواند دنباله شمارش متشکل از ۰ و ۱ را تولید کند و به عبارت دیگر دارای بیشینه شمارش برابر با ۲ است. انواع مختلفی از فلیپ فلاپها با طراحیهای متفاوتی وجود دارند که با استفاده از آنها میتوان یک شمارنده را ایجاد کرد. فلیپ فلاپهای SR، فلیپ فلاپهای JK، فلیپ فلاپهای JK Master-slave فلیپ فلاپهای نوع D و در نهایت فلیپ فلاپهای نوع T را میتوان به عنوان فلیپ فلاپهای مورد استفاده در ساخت شمارندهها نام برد. اما برای ساختار سادهتر میتوان این شمارندهها را با استفاده از فلیپ فلاپ نوع D ایجاد کرد. این فلیپ فلاپ را لچ داده نیز میگویند. فلیپ فلاپ نوع D، فقط یک داده ورودی تکی و سیگنال کلاک خارجی را مورد استفاده قرار میدهد و همچنین این فلیپ فلاپ، حساس به لبه مثبت یا بالا رونده است.
فلیپ فلاپهای نوع D، مانند آیسی TTL ۷۴LS۷۴ را میتوان با استفاده از فلیپ فلاپهای حساس به لبه نوع JK و یا فلیپ فلاپهای SR ایجاد کرد. انتخاب فلیپ فلاپها به این موضوع بستگی دارد که طراح بخواهد که فلیپ فلاپ در لبه مثبت یا بالا رونده (تغییر سطح از ۰ به ۱) پالس کلاک تغییر حالت بدهد یا این کار را در لبه پایین رونده یا منفی (تغییر سطح از ۱ به ۰) پالس کلاک انجام دهد. در این مقاله فرض میکنیم که طراح بخواهد در لبه پایین رونده یا منفی پالس کلاک تغییر حالت دهد.
نماد مداری و جدول درستی فلیپ فلاپ نوع D در شکل زیر نشان داده شده است.

نماد مداری و جدول درستی فلیپ فلاپ نوع D
عملکرد فلیپ فلاپ نوع D بسیار ساده است؛ زیرا این نوع فلیپ فلاپ فقط یک ورودی داده D و یک ورودی اضافی پالس کلاک CLK دارد. این ساختار اجازه میدهد که یک بیت داده تکی (۰ یا ۱) تحت کنترل سیگنال کلاک فلیپ فلاپ ذخیرهسازی شود. به همین دلیل میتوان گفت که فلیپ فلاپ نوع D یک وسیله سنکرون است؛ زیرا دادهای که در ورودی آن باشد، فقط در لبه تریگر کننده پالس کلاک به خروجی فلیپ فلاپ منتقل میشود.
با توجه به جدول درستی فلیپ فلاپ نوع D، اگر یک سطح منطقی ۱ یا HIGH در ورودی داده فلیپ فلاپ قرار داشته باشد، با اعمال پالس کلاک مثبت، فلیپ فلاپ ست (Set) میشود و سطح منطقی یک را در خروجی Q ذخیره میکند. همچنین در خروجی مکمل فلیپ فلاپ یعنی ¯¯¯¯Q، مقدار صفر منطقی ذخیره میشود. به طریق مشابه، اگر یک سطح ۰ منطقی در ورودی D فلیپ فلاپ قرار بگیرد، با اعمال پالس کلاک مثبت بعدی، فلیپ فلاپ ریست میشود و سطح صفر منطقی را در خروجی Q خود ذخیره میکند و مقدارQبه سطح یک منطقی تغییر مییابد؛ بنابراین هنگام HIGH بودن ورودی کلاک، خروجی Q فلیپ فلاپ نوع D، به مقدار ورودی D پاسخ میدهد. زمانی که ورودی کلاک در سطح LOW منطقی قرار داشته باشد، حالت در خروجی Q هر مقداری که باشد (۰ یا ۱ منطقی)، تا زمان ورود پالس کلاک سطح HIGH بعدی، در همان مقدار نگه داشته میشود؛ بنابراین خروجی Q فقط زمانی تغییر حالت میدهد که ورودی پالس کلاک از سطح LOW یا صفر منطقی به HIGH یا یک منطقی تغییر یابد. به همین دلیل این فلیپ فلاپ نوع D، یک فلیپ فلاپ حساس به لبه مثبت است. به یاد داشته باشید که فلیپ فلاپ حساس به لبه منفی بسیار شبیه به همین نوع از فلیپ فلاپها کار میکند و تفاوت آنها در این است که این بار فلیپ فلاپ در لبه منفی یا پایین رونده پالس کلاک تریگر میشود. حال که با اصول کاری یک فلیپ فلاپ نوع D آشنا شدیم، به نحوه اتصال این فلیپ فلاپها جهت تشکیل یک شمارنده MOD میپردازیم.
شمارنده مقسم بر دو
فلیپ فلاپ نوع D حساس به لبه، یک بلوک پایهای و تطبیق پذیر برای ایجاد شمارندههای MOD و یا هر نوع دیگر از مدارات منطقی ترتیبی است. اگر مطابق شکل زیر، خروجیQهر فلیپ فلاپ را به ورودی D آن متصل کنیم و یک حلقه فیدبک در مدار ایجاد کنیم، آنگاه میتوانیم فلیپ فلاپ را به یک شمارنده مقسم بر دو تبدیل کنیم. توجه کنید که خروجی Qفلیپ فلاپ دقیقا مکمل خروجی Q است. مدار و نیز دیاگرام زمانبندی یک شمارنده مقسم بر دو را در تصویر زیر میتوان مشاهده کرد.

مدار و دیاگرام زمانبندی یک شمارنده مقسم بر دو
بر اساس دیاگرام زمانبندی این شمارنده، که در تصویر بالا دیده میشود، شکل موج خروجی Q دارای فرکانسی دقیقا برابر با نصف فرکانس کلاک ورودی است؛ بنابراین میتوان گفت که مدار مانند یک مقسم فرکانسی عمل میکند. اگر یک فلیپ فلاپ D دیگر را به مدار اضافه کنیم، به نحوی که خروجی Q فلیپ فلاپ اول را به ورودی فلیپ فلاپ دوم متصل کنیم، آنگاه فرکانس سیگنال خروجی فلیپ فلاپ دوم، برابر با یک چهارم فرکانس پالس کلاک ورودی خواهد بود. این روال را میتوان با اضافه کردن تعداد بیشتری فلیپ فلاپ به زنجیره ادامه داد. پس برای n عدد از فلیپ فلاپها که با روش بالا به یکدیگر متصل شده باشند، فرکانس خروجی در اثر تقسیمات متوالی بر ۲، نهایتا بر ۲n تقسیم میشود.
به یاد داشته باشید که این روش تقسیم فرکانسی، برای استفاده در مدارات شمارنده بسیار مفید و ساده است. به عنوان مثال، اگر یک سیگنال ۶۰ هرتز به عنوان ورودی اصلی مدار در نظر گرفته شود، در نهایت با استفاده از مدار مقسم بر ۶۰ میتوانیم آن را به سیگنال زمانبندی با فرکانس ۱ هرتز تبدیل کنیم. ابتدا با استفاده از یک مقسم بر ۶ میتوانیم فرکانس ۶۰ هرتز ورودی را به ۱۰ هرتز کاهش دهیم و سپس از یک مقسم بر ۱۰ استفاده کنیم و خروجی را به فرکانس ۱ هرتز کاهش دهیم.
شمارنده MOD-۴
به لحاظ تکنیکی، میتوان یک فلیپ فلاپ تکی را علاوه بر المان حافظه یک بیتی، یک شمارنده MOD-۲ نیز در نظر گرفت. چون این المان فقط یک خروجی دارد، بنابراین با بهره گرفتن از پالس کلاک، منجر به شمارش دو حالت ۰ و ۱ میشود. یک فلیپ فلاپ تکی میتواند دنباله محدودی را شمارش کند، اما اگر تعداد بیشتری فلیپ فلاپ را به صورت زنجیری به هم متصل کنیم، میتوانیم ظرفیت شمارش را بالا ببریم و شمارندههای MOD با مقادیر مختلف را ایجاد کنیم.
اگر یک فلیپ فلاپ تکی را به عنوان شمارنده MOD-۲ در نظر بگیریم، آنگاه با اضافه کردن فلیپ فلاپ دوم، شمارنده MOD-۴ را خواهیم داشت که قادر است ۴ حالت گسسته را شمارش کند. عملکرد کلی این شمارنده این است که فرکانس سیگنال کلاک ورودی را بر ۴ تقسیم میکند؛ بنابراین دنباله شمارش برای این شمارنده دو بیتی MOD-۴، متشکل از اعداد ۰۰، ۰۱، ۱۰ و ۱۱ است. دیاگرام زمانبندی و مدار شمارنده MOD-۴ در شکل زیر نشان داده شده است.

دیاگرام زمانبندی و مدار شمارنده MOD-۴
به یاد داشته باشید که در دیاگرام زمانبندی بالا برای سادگی، گذارهای سوئیچینگ در QAو QB و CLK، به صورت همزمان نشان داده شدهاند. اگرچه این اتصالات نشاندهنده یک مدار شمارنده آسنکرون (Asynchronous) هستند، اما در عمل یک زمان تاخیر سوئیچینگ بسیار کوچک بین اعمال سیگنال کلاک با لبه مثبت یا بالا رونده و خروجیهای QA و QBوجود دارد. عملکرد این شمارنده آسنکرون دو بیتی را میتوان به کمک جدول درستی و دیاگرام حالت، به صورت تصویری نشان داد.

جدول درستی و دیاگرام حالت شمارنده آسنکرون دو بیتی
از جدول درستی بالا و با خواندن مقادیر QAو QB، میتوانیم به این نکته پی ببریم که زمانی که QA=۰ و QB=۰ باشند، شمارش برابر با ۰۰ خواهد بود. بعد از اعمال پالس کلاک، مقادیر برابر با QA=۱ و QB=۰خواهند شد و در نتیجه مقدار شمارش ۰۱ میشود. اعمال پالس کلاکهای سوم و چهارم نیز باعث میشود که خروجی شمارنده به ۱۰ و ۱۱ تغییر یابد. حال پالس کلاک پنجم، شمارش را به مقدار اصلی ۰۰ ریست میکند. شمارنده پس از این حالت، تا زمانی که پالس کلاک دریافت کند، به صورت صعودی دنباله ۰۰، ۰۱، ۱۰، ۱۱ را تکرار میکند؛ بنابراین دیدیم که یک شمارنده MOD-۲ از یک فلیپ فلاپ تشکیل شده است و برای ساخت شمارنده MOD-۴ به دو فلیپ فلاپ جهت شمارش ۴ حالت گسسته نیاز داریم. میتوانیم به سادگی فلیپ فلاپ دیگری را به انتهای زنجیره شمارنده MOD-۴ اضافه کنیم تا یک شمارنده MOD-۸ ایجاد شود. شمارنده MOD-۸ دنبالهای متشکل از ۲۳حالت باینری، از ۰۰۰ تا ۱۱۱ را در خروجی برای کاربر ایجاد میکند و سپس به مقدار ۰۰۰ ریست میشود. این روند میتواند همچنان ادامه داشته باشد. مثلا ۴ فلیپ فلاپ قادر هستند که یک شمارنده MOD-۱۶ را ایجاد کنند. مدار و دیاگرام حالت یک شمارنده MOD-۸ در تصویر زیر نشان داده شده است.

مدار و دیاگرام حالت یک شمارنده MOD-۸
بنابراین، میتوان شمارندههای MOD را برای ایجاد شمارشی طبیعی متشکل از ۲nحالت ایجاد کرد و سپس شمارنده به مقدار اولیه خود بازگشته و دنباله مجددا تکرار میشود. اما گاهی لازم است که یک شمارنده MOD ایجاد شود که در طول فرایند طبیعی شمارش، ریست شود و به حالت صفر اولیه بازگردد. به عبارت دیگر، عدد MOD شمارنده، توان کاملی از ۲ نباشد، بلکه اعدادی مانند ۳، ۵، ۶ یا ۱۰ باشد.
از ارسال دیدگاه های نا مرتبط با متن خبر، تکرار نظر دیگران، توهین به سایر کاربران و ارسال متن های طولانی خودداری نمایید.
لطفا نظرات بدون بی احترامی، افترا و توهین به مسئولان، اقلیت ها، قومیت ها و ... باشد و به طور کلی مغایرتی با اصول اخلاقی و قوانین کشور نداشته باشد.
در غیر این صورت، «برق نیوز» مطلب مورد نظر را رد یا بنا به تشخیص خود با ممیزی منتشر خواهد کرد.