معرفی کتاب طراحی مدارهای دیجیتال با System Verilog
طراحی مدارهای دیجیتال با System Verilog
بعد از این که “کتاب طراحی سیستم دیجیتال با VHDL” منتشر شد، ایده نوشتن یک کتاب طراحی مدارهای دیجیتال با system verilog بوسیله یک زبان توصیف سخت افزار به نظر جدید میآمد.
اکنون کتاب طراحی سیستم دیجیتال با VHDL توسط چندین دانشگاه به عنوان مرجع اصلی پذیرفته شده و به زبانهای لهستانی، چینی، ژاپنی و ایتالیایی ترجمه شدهاست. طولی نکشید که بعد از انتشار ویرایش دوم طراحی سیستم دیجیتال با VHDL، System Verilog به عنوان یک زبان جدید توصیف سخت افزار پدیدار شد.
این کتاب مناسب چه کسانی است؟
کتاب طراحی مدارهای دیجیتال با system verilog به عنوان کتاب درسی مختص دانشجویان دوره لیسانس و هم فوق لیسانس میباشد. اکثر کتابهای وریلاگ و سیستم وریلاگ، بر اساس طرحهای عملی برای مهندسین بنا نهادهشدهاند. بنابراین بعضی از ویژگیهای سیستم وریلاگ به هیچ عنوان در این کتب بیان نشدهاند. در مقابل، جنبههایی از طراحی دیجیتال در این کتاب پوشش دادهشده که در کتابهای نمونه سیستم وریلاگ دیگر نخواهدبود.
سرفصلها برای مهندسی برق، الکترونیک و کامپیوتر در میان کشورها، دانشگاهها یا کالجها متفاوت میباشد. مطالب مطرح در کتاب طراحی مدارهای دیجیتال با system verilog برای دانشجویان سال دوم و سوم کارشناسی و همچنین دانشجویان کارشناسی ارشد در نظر گرفته شدهاست. این طور فرض میشود که دانشجویان با قواعد جبر بولی، مدار منطقی و طراحی منطق ترکیبی آشنا هستند.
در دانشگاه ساوتمپتون انگلستان سر فصلهای دانشجوی سال اول دوره لیسانس، شامل طراحی ترتیبی آسنکرون و منطق قابل برنامهریزی نیز میباشد. بنابراین، این کتاب بر این اساس به وجود آمده است. اغلب این گونه تصور میشده که مباحثی مانند سیستم وریلاگ برای تدریس در سال دوم بسیار اختصاصی بوده و بهتر است به سال آخر یا دوره فوق لیسانس موکول شود.
چرا باید سیستم وریلاگ در برنامه درسی وجود داشته باشد ؟
دلایل محکم و خوبی وجود دارد برای اینکه چرا باید سیستم وریلاگ هرچه زودتر در برنامه درسی گنجانده شود. با افزایش پیچیدگی مدارهای مجتمع، کسب دانش علم سیستم وریلاگ و ابزارهای طراحی مربوطه یک نیاز برای دانش آموختگان به شمار میآید. اگر این مباحث را به سال آخر موکول کنیم، زمان کمی و شاید هیچ زمانی برای اینکه دانشجویان این علم را در کار پروژهای به کار ببندند وجود نداشته باشد.
ثانیاً گفت و گو با همکاران در بسیاری از کشورها نشان داد که دانشجویان امروزی برگزیدن علوم کامپیوتر یا مهندسی کامپیوتر را به مهندسی برق یا الکترونیک ترجیح میدهند. سیستم وریلاگ مفاهیم جذابی را برای دانشجویان کامپیوتر در طراحی سخت افزار عرضه کرده است. سرانجام ابزارهای شبیهسازی و سنتز و بسته طراحی FPGA ساخته شده و به طور نسبتاَ ارزان در موسسههای آموزشی و روی سیستم عامل کامپیوترهای شخصی در دسترس میباشند.
ساختار این کتاب
فصل ۱
ایدههای را که در بطن این کتاب است، معرفی میکند، به طور مثال استفاده از ابزارهای خودکارسازی طراحی الکترونیک و CMOS و تکنولوژی منطق قابل برنامهریزی. ما همچنین بعضی از مشکلات مهندسین مثل محدوده نویز و گنجایش خروجی را در نظر گرفتیم.
فصل ۲
قواعد جبر بولی و طراحی منطق ترکیبی مرور میشوند. مسئله مهم زمانبندی و مشکلات مربوط به هزارد مورد بررسی قرار میگیرند. برخی تکنیکهای مقدماتی برای نشان دادن دادهها مطرح میشود.
فصل ۳
سیستم وریلاگ به واسطه مدلهای اولیه گیت منطقی معرفی میشود. در این فصل بر اهمیت کد مستند شده تاکید میشود. ما نشان میدهیم که چطور نت لیستهای گیتهای اولیه ساخته میشوند و چگونه تاخیرها به واسطه گیتها مدلسازی میشوند. ما همچنین مدلهای پارامتری را مطرح خواهیم کرد. ایده استفاده از سیستم وریلاگ برای تصدیق مدلها، با استفاده از testbench تعریف میگردد.
فصل ۴
تکنیکهای متنوع مدلسازی شرح داده میشود. بلوکهای ساختاری ترکیبی، دیکدرها، انکدرها، مالتی پلکسرها، جمع کنندهها و چک کنندههای پریتی مدلسازی شده، با استفاده از یک رشته ساختار کد همزمان و ترتیبی سیستم وریلاگ، مدلسازی میشوند. مدلهای سخت افزاری سیستم وریلاگ در این فصل معرفی میشوند و در فصول ۵، ۶ و ۷ عملا مدلهای سخت افزاری سنتزپذیر بیان میشوند. گرچه بحث اینکه چه چیزهایی دقیقا پشتیبانی میشوند تا فصل ۱۰ به عقب افتاده است. روش طراحی testbench دوباره در فصل ۴ مطرح میشود. به علاوه نماد وابستگی IEEE معرفی میشود.
فصل ۵
بلوکهای ساختاری ترتیبی گوناگونی را نشان میدهد: لچها، فلیپ فلاپها، ثباتها، شمارندهها، حافظه و یک مالتی پلکسر ترتیبی. به همان سبکی که در فصل ۴ استفاده شد با نماد وابستگی IEEE، طراحی testbench و معرفی ساختار کدبندی سیستم وریلاگ.
فصل ۶
شاید مهمترین فصل این کتاب باشد و در مورد این بحث میکند که در اصول طراحی دیجیتال چه چیزهایی ممکن است مطرح شود: طراحی ماشینهای حالت متناهی. علائم چارت ASM بیان میشود. فرایند طراحی از چارت ASM به فلیپ فلاپهای نوع D و منطق حالت بعدی و خروجی شرح داده میشود. مدلهای سیستموریلاگ ماشینهای حالت معرفی میشوند.
فصل ۷
مفاهیم سه فصل قبل ترکیب میشوند. علائم چارت ASM برای بیان ماشینهای حالت کوپله شده و خروجیهای رجیستر شده، توسعه مییابند و بنابراین مسیرداده-کنترلکننده، قسمتبندی میشود. از این رو ما ایده دستورالعمل در قالب سخت افزار را توضیح میدهیم و مدلسازی یک ریزپردازنده بسیار مقدماتی را در سیستم وریلاگ ادامه میدهیم. این وسیلهای را برای معرفی واسطها و پکیجها تأمین میکند.
فصل ۸
طراحی testbench در فصل ۸ با جزئیات بیشتر مورد بحث قرار میگیرد. پس از پوششدهی تکنیکهای فصلهای قبل، ما بحث درباره معماری testbench، تولید آزمون تحمیلی تصادفی و تائید مبتنی بر اثبات را ادامه میدهیم. سیستم وریلاگ اصولا یک زبان مدلسازی باقی میماند.
فصل ۹
عملیات یک شبیه ساز سیستم وریلاگ را توصیف میکند. ابتدا ایده شبیهسازی رویدادگرا توضیح داده میشود و سپس ویژگیهای مخصوص سیستم وریلاگ مورد بحث قرار میگیرد.
فصل ۱۰
مسئله دیگری که به طور فزاینده مهم شمرده میشود نقش سیستم وریلاگ به عنوان یک زبان برای توصیف مدلهای سنتز به همان صورت که در فصل ۱۰ توصیف شد، میباشد. امروزه نوع عمده ابزارهای سنتز که در دسترس است، برای سنتز RTL میباشد.
این ابزارها میتوانند به وجود فلیپ فلاپها و لچها در یک مدل سیستموریلاگ پی ببرند. این ساختارها توصیف شدهاند. متقابلاً فلیپ فلاپها میتوانند به غلط ایجاد شوند اگر توصیف ضعیف نوشته شده باشد و یا توصیف شامل خطاهای معمول باشد. فرایند سنتز میتواند توسط محدودیتهایی کنترل شود. به دلیل اینکه این محدودیتها خارج از خود زبان هستند آنها در شرایط کلی مورد بحث قرار میگیرند.
ساختارهای مناسب برای FPGA بیان شده است. و در نهایت سنتز رفتاری که انتظار میرود که یک تکنولوژی طراحی مهم شود، به طور خلاصه بررسی میشود.
فصل ۱۱ و ۱۲
به مباحث آزمون و طراحی برای آزمون اختصاص داده شدهاند. اغلب این سطح از مطلب مورد اهمال قرار میگرفت. اما امروزه به عنوان یک بخش مهم از فرایند طراحی شناخته میشود. در فصل ۱۱ ایده مدلسازی خطا معرفی شده است. سپس شیوههای تولید آزمون بیان میشود. اثرات یک آزمون توسط شبیهسازی خطا تعیین میشود.
فصل ۱۲
سه اصل مهم در طراحی برای آزمون شرح داده میشود: مسیر اسکن، آزمون خودساخته و اسکن مرزی. این همیشه یک موضوع بینتیجه بوده است. اما یک شبیه ساز سیستم وریلاگ به طور مثال میتواند به منظور اینکه نشان دهد چگونه یک ساختار آزمون خودساخته میتواند اثرات متفاوتی برای مدارهای عاری از خطا و خطادار تولید کند، استفاده شود.
فصل ۱۳
از سیستم وریلاگ به عنوان ابزاری برای کشف رفتارهای متناقض در مدارهای ترتیبی آسنکرون استفاده میکنیم. اگرچه روش غالب طراحی به طور رایج سنکرون است. محتملاً سیستمهای دیجیتال به طور فزاینده شامل ارتباط آسنکرون مدارهای سنکرون با یکدیگر خواهند بود. ما مفاهیم مد اساسی را معرفی میکنیم و نشان میدهیم چگونه مدارهای آسنکرون تجزیه و تحلیل و طراحی میشوند. همچنین از شبیهسازی سیستم وریلاگ به منظور توضیح مشکلات هزاردها، رقابتها و نقض زمان راه اندازی و نگهداری استفاده میکنیم. و مشکل شبه پایداری را مورد بررسی قرار میدهیم.
فصل آخر
کتاب طراحی مدارهای دیجیتال با system verilog Verilog-AMS و مدلسازی سیگنال ترکیبی را معرفی میکند. توضیح خلاصهای از مبدلهای دیجیتال به آنالوگ و آنالوگ به دیجیتال آورده شده است. ساختارهای Verilog-AMS که به عنوان مبدلها مدل شدهاند بیان شده است. ما اینجا همچنین ایده حلقه قفل شده فاز را معرفی میکنیم و یک مدل ساده سیگنال ترکیبی را ارائه دادیم. پیوست به طور خلاصه تشریح میکند که چگونه سیستم وریلاگ با ورژنهای قبلی وریلاگ متفاوت است.
انتهای هر فصل شامل تعدادی تمرین میباشد. این تمرینها همچنین بصورت کمکی هستند تا دستورات هر فصل را شبیهسازی و یا در صورت لزوم سنتز کنید. برای اجرای این اعمال شبیهسازی و سنتز ممکن است خواننده خودش مجبور به نوشتن testbenchها و فایلهای محدودیت (قید) شود.
فهرست مطالب کتاب طراحی مدارهای دیجیتال با system verilog:
پیشگفتار
فصل ۱ / مقدمه
۱-۱ طراحی دیجیتال امروزی(نوین)
۱-۲ طراحی با زبانهای توصیف سخت افزار
۱-۲-۱ طراحی خودکار
۱-۲-۲ SystemVerilog چیست؟
۱-۲-۳ VHDL چیست؟
۱-۲-۴ شبیه سازی
۱-۲-۵ سنتز
۱-۲-۶ استفاده مجدد
۱-۲-۷ تأیید
۱-۲-۸ روند طراحی
۱-۳ تکنولوژی CMOS
۱-۳-۱ گیتهای منطقی
۱-۳-۲ ASICها و FPGA
۱-۴ منطق قابل برنامهریزی
۱-۵ مشخصات الکتریکی
۱-۵-۱ محدوده نویز
۱-۵-۲ گنجایش خروجی
فصل ۲ / طراحی منطق ترکیبی
۲-۱ جبر بولی
۲-۱-۱ مقادیر
۲-۱-۲ عملگرها
۲-۱-۳ جداول درستی
۲-۱-۴ قوانین جبر بولی
۲-۱-۵ قانون دمورگان
۲-۱-۶ قضیه بسط شانن
۲-۲ گیتهای منطقی
۲-۳ طراحی منطق ترکیبی
۲-۳-۱ حداقلسازی منطق
۲-۳-۲ جدولهای کارنو
۲-۴ زمانبندی
۲-۵ کدهای عددی
۲-۵-۱ اعداد صحیح
۲-۵-۲ اعداد با ممیز ثابت
۲-۵-۳ اعداد با ممیز شناور
۲-۵-۴ کاراکترهای الفبایی – عددی
۲-۵-۵ کدهای گری
۲-۵-۶ بیتهای توازن
فصل ۳ / منطق تركیبی با استفاده از مدلهای گیت سیستموریلاگ
۳-۱- فایلها و ماژولها
۳-۲ شناسهها، فضاها و توضیحات
۳-۳ مدلهای گیتپایه
۳-۴ یك نت لیست ساده
۳-۵ مقادیر منطقی
۳-۶ انتسابهای پیوسته
۳-۶-۱ عملگرهای سیستموریلاگ
۳-۷ تأخیرها
۳-۸ پارامترها
۳-۹ )Testbenchبستر آزمون)
فصل ۴ / بلاكهای ساختار تركیبی
۴-۱ مالتی پلكسر (تسهیمكننده)
۴-۱-۱ مالتی پلكسر ۲ به ۱
۴-۱-۲ مالتی پلكسر ۴ به ۱
۴-۲ دیكدر (رمزگشا)
۴-۲-۱ دیكدر ۲ به ۴
۴-۲-۲ دیكدر پارامتری
۴-۲-۳ دیكدر سِوِن سگمنت (۷-seg)
۴-۳ رمزگذار اولویت
۴-۳-۱ مقادیر یكتا و بیاهمیت
۴-۴ جمعكنندهها
۴-۴-۱ مدل تابعی
۴-۴-۲ جمعكننده موجی
۴-۴-۳ Tasks (كارها)
۴-۵ چككننده توازن
۴-۶ بافرهای سه حالته
۴-۶-۱ منطق چند مقداری
۴-۷ Testbench بلاكهای تركیبی
فصل ۵ / مدلهای سیستموریلاگ بلاکهای منطقی ترتیبی
۵-۱ نگهدارندهها(لچها)
۵-۱-۱ نگهدارنده SR
۵-۱-۲ نگهدارنده D
۵-۲ فلیپ فلاپها
۵-۲-۱ فلیپ فلاپ D تغییرکننده با لبه
۵-۲-۲ SET وRESET آسنکرون (نشاندن و بازنشاندن آسنکرون)
۵-۲-۳ Set و Reset سنکرون و فعالساز کلاک
۵-۳ فلیپ فلاپهای JK و T
۵-۴ ثباتها و ثباتهای انتقالی
۵-۴-۱ ثبات چندبیتی
۵-۴-۲ ثباتهای انتقالی (شیفت رجیسترها)
۵-۵ شمارندهها
۵-۵-۱ شمارنده باینری
۵-۵-۲ شمارنده جانسون
۵-۵-۳ ثبات انتقال با فیدبک خطی
۵-۶ حافظه
۵-۶-۱ ROM
۵-۶-۲ SRAM
۵-۶-۳ RAM سنکرون
۵-۷ ضربکننده ترتیبی
۵-۸ Testbench برای بلاکهای ساختار ترتیبی
۵-۸-۱ تولید کلاک
۵-۸-۲ Resetها و سایر سیگنالهای قطعی
۵-۸-۳ پاسخهای بررسی
فصل ۶ / طراحی ترتیبی سنکرون
۶-۱ سیستمهای ترتیبی سنکرون
۶-۲ مدلهای سیستمهای ترتیبی سنکرون
۶-۲-۱ ماشینهای مور و میلی
۶-۲-۲ ثباتهای حالت
۶-۲-۳ طراحی یک شمارنده سه بیتی
۶-۳ ماشینهای حالت الگوریتمی
۶-۴ سنتز از روی چارتهای ASM
۶-۴-۱ پیادهسازی سخت افزار
۶-۴-۲ تخصیص حالت
۶-۴-۳ حداقلسازی حالت
۶-۵ ماشینهای حالت در سیستموریلاگ
۶-۵-۱ اولین مثال
۶-۵-۲ تشخیصدهنده بیت توازن متوالی
۶-۵-۳ ماشین Vending
۶-۵-۴ ذخیرهسازی داده
۶-۶ test benchها برای ماشین حالت
فصل ۷ /سیستمهای ترتیبی پیچیده
۷-۱ ماشینهای حالت به هم پیوسته
۷-۲ تقسیمبندی مسیر داده- کنترل کننده
۷-۳ دستورالعملها
۷-۴ یک میکروپروسسور ساده
۷-۵ مدل سیستموریلاگ یک میکروپروسسور ساده
فصل ۸ / نوشتن Testbench
۸-۱ Testbenchهای پایه
۸-۱-۱ تولید کلاک
۸-۱-۲ Reset و سایر سیگنالهای قطعی
۸-۱-۳ نمایش پاسخها
۸-۱-۴ پاسخهای موقت
۸-۱-۵ بردارهای تست از یک فایل
۸-۲ ساختار Testbench
۸-۲-۱ برنامهها
۸-۳ تولید محرکهای تصادفی ساختگی
۸-۳-۱ برنامهنویسی شی گرا
۸-۳-۲ تولید عدد تصادفی (Randomization)
۸-۴ تأیید مبتنی بر بازبینی
فصل ۹ / شبیهسازی سیستموریلاگ
۹-۱ شبیهسازی فعال شده با رخداد
۹-۲ شبیهسازی سیستموریلاگ
۹-۳ رقابتها
۹-۳-۱ اجتناب از رقابت
۹-۴ مدلهای تأخیر
۹-۵ ابزارهای شبیهسازی
فصل ۱۰ / سنتز سیستموریلاگ
۱۰-۱ سنتز RTL
۱۰-۱-۱ سیستموریلاگ سنتزناپذیر
۱۰-۱-۲ فلیپ فلاپها و نگهدارندههای استنتاج شده
۱۰-۱-۲-۱ نگهدارنده حساس به سطح
۱۰-۱-۲-۲ فلیپ فلاپ حساس به لبه
۱۰-۱-۳ منطق ترکیبی
۱۰-۱-۴ خلاصهای از قوانین سنتز RTL
۱۰-۲ قیود
۱۰-۲-۱ صفات
۱۰-۲-۲ قیدهای مساحتی و ساختاری
۱۰-۲-۲-۱ کدگذاری حالت
۱۰-۲-۲-۲ قیدهای منبع
۱۰-۲-۲-۳- قیدهای زمانی
۱۰-۲-۳ صفات full_case و Parallel_case
۱۰-۳ سنتز FPGAها
۱۰-۴ سنتز رفتاری
۱۰-۵ بازبینی نتایج سنتز
۱۰-۵-۱- شبیهسازی زمانبندی
فصل ۱۱ / آزمون سیستمهای دیجیتالی
۱۱-۱ ضرورت وجود آزمون
۱۱-۲ نمونههای خطا
۱۱-۲-۱ مدل خطای گیرکرده تکی
۱۱-۲-۲ خطاهای PLA
۱۱-۳ تولید الگوی آزمون مبتنی خطا
۱۱-۳-۱ الگوریتم مسیر حساس
۱۱-۳-۲ خطاهای غیرقابل تشخیص
۱۱-۳-۳ الگوریتم D
۱۱-۳-۴ PODEM
۱۱-۳-۵ از بین رفتن خطا
۱۱-۴ شبیهسازی خطا
۱۱-۴-۱ شبیهسازی موازی خطا
۱۱-۴-۲ شبیهسازی همزمان خطا
فصل ۱۲ / طراحی برای قابلیت آزمونپذیر بودن
۱۲-۱ بهبود قابلیت آزمون پذیری تک منظوره
۱۲-۲ طراحی ساخت یافته برای آزمون
۱۲-۳ خودآزمایی درون ساخته شده
۱۲-۳-۱ مثال
۱۲-۳-۲ بررسی بلوک منطقی ساخته شده در داخل (BILBO)
۱۲-۴ اسکن مرزی (۱/۱۱۴۹ IEEE)
فصل ۱۳ / طراحی ترتیبی آسنکرون
۱۳-۱ مدارهای آسنکرون
۱۳-۲ تجزیه و تحلیل مدارهای آسنکرون
۱۳-۲-۱ تجزیه و تحلیل غیر رسمی
۱۳-۲-۲ تجزیه و تحلیل رسمی
۱۳-۳ طراحی مدارهای آسنکرون
۱۳-۴ ماشینهای حالت آسنکرون
۱۳-۵ زمانهای راه اندازی و نگهداری و ناپایداری
۱۳-۵-۱ محدودیتهای مد اساسی و مدارهای سنکرون
۱۳-۵-۲ مدلسازی سیستموریلاگ نقض زمان برپایی و نگهداری
۱۳-۵-۳ ناپایداری
فصل ۱۴ / مواجهه با دنیای آنالوگ
۱۴-۱ مبدلهای دیجیتال به آنالوگ
۴-۲ مبدلهای آنالوگ به دیجیتال
۱۴-۳ Verilog-AMS
۱۴-۳-۱ اصول وریلاگ_AMS
۱۴-۳-۲ دستورات كمكی
۱۴-۳-۳ مدلسازی سیگنال مختلط
۱۴-۴ حلقههای قفل فاز
۱۴-۵ شبیهسازهای AMS_وریلاگ
پیوست الف) پاسخ به سوالات انتخابی
منابع و مآخذ کتاب طراحی مدارهای دیجیتال با system verilog