هر زمان که بخواهید چندین تکلیف ثبت نام را در یک مرحله زمانی یکسان انجام دهید، بدون توجه به نظم یا وابستگی به یکدیگر، می توانید از عبارت رویه ای غیر مسدودکننده استفاده کنید. این بدان معناست که عبارات غیر مسدود کننده بیشتر شبیه سخت افزار واقعی هستند تا تخصیص های مسدود کننده.
چرا از غیر مسدود کردن در بلوک استفاده می کنیم؟
تخصیص
Blocking (=) و non-blocking (<=) برای کنترل دستور اجرا در اجرای دستور همیشه block ارائه شده است. تکالیف غیر مسدود کننده به معنای واقعی کلمه اجرای دستورات بعدی را مسدود نمی کند. ابتدا سمت راست تمام عبارات مشخص می شود، سپس سمت چپ با هم تخصیص می یابد.
چه زمانی هنگام کدنویسی منطق متوالی از تخصیص مسدود کننده در مقابل غیر مسدود کردن استفاده می کنید؟
دستورالعمل 1: هنگام مدلسازی منطق متوالی، از تکالیف غیر مسدودکننده استفاده کنید دستورالعمل شماره ۲: هنگام مدلسازی چفتها، از تکالیف غیر مسدودکننده استفاده کنید. راههای زیادی برای کدنویسی منطق ترکیبی با استفاده از Verilog وجود دارد، اما زمانی که منطق ترکیبی با استفاده از یک بلوک همیشه کدگذاری میشود، باید از تخصیصهای مسدودکننده استفاده شود.
تکالیف مسدود و غیرمسدود چیست؟
بلاک، با رفتارهای ظریف متفاوت. • مسدود کردن تکلیف: ارزیابی و تکلیف فوری هستند. • تکلیف غیرانسدادی: همه تکالیف تا همه به تعویق افتاد. سمت راست ارزیابی شده است (پایان شبیهسازی.
مسدود کننده و غیرانسداد Verilog کجا استفاده می شود؟
در اینجا یک قانون سرانگشتی خوب برای Verilog وجود دارد: در Verilog، اگر میخواهید برای ایجاد منطق متوالی استفاده کنید، از یک بلوک همیشه ساعتی با تکالیف Nonblocking استفاده کنید اگر میخواهید منطق ترکیبی ایجاد کنید، از آن استفاده کنید. یک بلوک همیشه با تکالیف مسدود کردن.سعی کنید این دو را در یک بلوک همیشه مخلوط نکنید.