أخيرًا ، تم إصدار
كتاب مدرسي عن SystemVerilog في روسيا
بمستوى أعلى من المبتدئين . يصف الكتاب المدرسي التقنيات والتقنيات التي تُطلب من المقابلات في NVidia و Intel و AMD و Apple وغيرها من الشركات الإلكترونية: استخدام التأكيدات المتزامنة والتغطية الوظيفية ، والتي لا تتطلب الآن مهندسي التحقق فحسب ، ولكن أيضًا مصممي الرقائق ؛ خوارزمية محاكاة مع دورات دلتا. شرح عاقل لتحليل توقيت ثابت. مخططات اتصال وحدات الأجهزة من خلال قوائم انتظار الأجهزة؛ تنفيذ هذه الاتصالات باستخدام أجهزة الحالة المحدودة مع مسارات البيانات ، إلخ.
في الفصل الأخير ، قد يحير القارئ الروسي من ذكر "النظام الصحيح سياسيا". ماذا يعني ذلك؟ ربما يكون هذا إشارة إلى
الحادث الذي وقع في مقاطعة لوس أنجلوس في عام 2003. طلب مسؤولو لوس أنجلوس من المصنعين والموردين والمقاولين التوقف عن استخدام مصطلحات "السيد / العبد" لمعدات الكمبيوتر ، حيث تم تذكير أحد موظفي المقاطعة بماضي العبيد.
الآن يتجنب مؤلفو الأدب التقني المصطلحات ماستر / عبد. يعمل المهندسون الأمريكيون من أصل أفريقي أيضًا في أمريكا الحديثة (على سبيل المثال ، صوفيا مفوكاني من الكاميرون - على الصورة على اليسار) ، ويبدو استخدام المصطلحات القديمة قديمًا ، مثل المصطلحات "عموم / عبق" في الأدبيات الفنية الأوكرانية بدلاً من "الرصاص / الرصاص" المقبولة ( الروسية "الزعيم / العبد").
ليست هذه هي المرة الأولى التي يظهر فيها موضوع كفاح الأمريكيين من أصل أفريقي من أجل الحقوق المدنية في التعليم الإلكتروني الروسي. على سبيل المثال ، ترتدي تاتيانا فولكوفا ، وهي أخصائية معروفة في التعليم في مجال الإلكترونيات ، قميصًا يحمل شعار "الفهود السود" ، وهي حركة كاليفورنيا ، التي كانت في وقت ما تعتبر الاحتجاج السلمي غير كافٍ ، وتشارك في الاحتجاج المسلح.

الصورة الكاملة للشعار تحت جلد تاتيانا أليكساندروفنا هي تحت القص ، لكنني سأتحدث أساسًا عن دورات الدلتا وآلات الحالة:
فيما يلي لقطة من مقالة حول السيد / العبد وشارة Black Panther الموعودة ، وبعد ذلك ننتقل إلى الكتاب على هذا النحو.

بادئ ذي بدء ، دونالد توماس ، مؤلف كتاب
"التصميم المنطقي والتحقق من النظم على SystemVerilog" (2019 باللغة الروسية من DMK-Press ، 2016 باللغة الإنجليزية) هو نفسه دونالد توماس ، الذي شارك في تأليفه مع فيليب Murbi كتب كتاب 1991 فيريلوج لغة وصف الأجهزة من قبل دونالد توماس وفيليب موربي. ثم ، في عام 1991 ، لا تزال العديد من الشركات الإلكترونية تصمم الرقائق على الطريقة القديمة ، مع رسمها بالماوس على الشاشة ؛ تركت تقنيات التوليف المنطقي المختبر للتو ؛ تم اعتبار لغات وصف الأجهزة مخصصة لكتابة النماذج والاختبارات ، وليس رموز المصدر لإنشاء دوائر نهائية ؛ بالإضافة إلى VHDL و Verilog مغلقة في ذلك الوقت ، كان هناك العديد من اللغات الصغيرة والمملوكة مثل Abel و CUPL و PALASM ؛ كان لدى Intel و MIPS لغات وصف للأجهزة الداخلية.
في مثل هذه البيئة ، صدر كتاب توماس وموربي ، والذي أصبح هو نفسه بالنسبة لمصممي الدوائر الرقمية في التسعينيات مثل كتاب Kernigan-Richie لمبرمجي C ، وكتب Bjarni Straustrup لمبرمجي C ++. لقد نجا الكتاب من خمس طبعات - من عام 1991 إلى عام 2002 ، ولكن من الواضح أن عصر iPhone كان غير كافٍ. وفي عام 2016 ، قرر دونالد توماس اللحاق بكتاب جديد وإصداره وصف فيه الابتكارات الرئيسية في اللغة والمنهجية على مدار 25 عامًا. خلال الـ 25 عامًا التي أصبحت خلالها Verilog قاعدة مشتركة للصناعة بأكملها ، تتم كتابة المخططات عليها لكل شيء بدءًا من أجهزة iPhone الشهيرة وسيارات التحكم في Tesla وحتى طائرات الهليكوبتر العسكرية الروسية.

بعد ذلك ، سأسلط الضوء على تعليقاتي بنص أزرق لفصلها عن الصور من الكتاب.
حتى قبل النص الرئيسي للكتاب ، يوجد ما قبل الفصل "السياق: التصميم على مستوى عمليات نقل التسجيلات" ، حتى يتسنى للمبرمج أو تلميذ المدرسة أو ، على سبيل المثال ، ممارسة التمرين مع لوحات النماذج ، وأخذ هذا الكتاب من الرف ، أن يفهم على الفور ما يقال وكيف يمكن استخدام الكتاب. تقول:يتم إنتاج الأنظمة الرقمية مع مليارات من الترانزستورات على رقاقة. يمكن للهواة ، بالطبع ، أن يرسم عدة بوابات منطقية وتوصيلها بالأسلاك كمواصفات (للتنفيذ على اللوح) ، لكن بالنسبة للمشروعات التجارية ، هذه قصة قديمة ... تم تحديد الأنظمة الحديثة بلغات وصف الأجهزة مثل SystemVerilog.
في الوقت نفسه ، إليك هذه الصورة المبسطة لتوضيح كيف يتحول النص الموجود في الحقيقة إلى مسارات وترانزستورات للدائرة الصغيرة في المصنع:

الكلمة الأولى في الكتاب بعد المقدمة هي "محاكاة". لفهم لغات وصف الأجهزة ، يجب أن تكون مدركًا بوضوح أن المجموعة الفرعية المركّبة من verilogue ليست لغة برمجة ، ولكنها لغة لوصف الدوائر الكهربائية. مثل دعنا نقول HTML ليست لغة برمجة ، ولكن لغة لوصف صفحات الويب. على الرغم من أن لغة البرمجة مخصصة لتجميعها في سلسلة من إرشادات المعالج ، فإن لغة وصف الأجهزة مخصصة لتحويلها (على وجه الخصوص) إلى مكواة للمعالج على هذا النحو. في هذه الحالة ، قبل الخوض في الحديد ، يجب التحقق من الشفرة في لغة وصف الأجهزة ، ولهذا الغرض يخدم مترجم متخصص ، يسمى المحاكاة.
في بداية الكتاب ، يُظهر دونالد توماس صورة مبسطة للمحاكاة ، وفي نهاية الكتاب يوضحها ويكملها:

يحتوي جهاز محاكاة على قوائم انتظار الحدث ووقت المحاكاة:

يمكن أن يؤدي الحدث إلى حدث جديد ، سواء في اللحظة الحالية للمحاكاة (في دورة دلتا الحالية) وفي زمن المستقبل. في دورة دلتا الحالية ، تتم معالجة جميع الأحداث التي تم إنشاؤها بواسطة تعيينات الحظر المزعومة أولاً ، ثم تتم معالجة الأحداث الناتجة عن تعيينات غير محظورة. هذا ضروري للمحاكاة الصحيحة للدلالات المتوازية لانتشار الإشارات الكهربائية في الحديد:

بالإضافة إلى المجموعة الفرعية المركّبة من verilogue ، هناك أيضًا مجموعة فرعية غير مركبة. الغرض منه هو وصف بيئة الاختبار والاختبارات ، والآن يمكن اعتباره نوعًا من لغة البرمجة. بالنسبة إلى أحداث وشاشات بيئة الاختبار ، يتم تقديم خطوات محاكي إضافية:

المعرفة الدقيقة لخوارزمية المحاكاة مفيدة للغاية لتجنب مجموعة متنوعة من الأخطاء المرتبطة بما يسمى السباق (حالة السباق). عندما أتدخل في المهندسين ، أطلب منهم دائمًا تقديم مثال على حالة السباق في فيريلوج. علاوة على ذلك ، إذا كان لدى مهندسي RTL للتصميم والتحقق من التصميم ، فهذه المعرفة مرغوبة للغاية ، ولكن ليس في جميع الجوانب 100٪ ضرورية ، أي المهن التي يتم فيها دفع الأموال مباشرة مقابل هذه المعرفة. أنا أتحدث عن المبرمجين الذين يعملون في فرق Synopsys VCS و Cadence IES و Mentor ModelSim.
سينوبسيس و Cadence هما شركتان تقعان في كاليفورنيا على بعد 15 دقيقة بالسيارة من بعضهما البعض. لا يستخدمون سوى بضعة آلاف من الأشخاص ، لكنهم يسيطرون على تطوير الدوائر الصغيرة في جميع أنحاء العالم - في Intel و Apple و Samsung و Huawei ، حتى في المعاهد الروسية السرية التي تصنع الرقائق للمعدات العسكرية.
إذا كان الرفاق بوتين وروجوزين وفكسلبرج يريدون حقًا إدخال بدائل الاستيراد في روسيا ، فيمكنهم عندئذٍ تمويل تطوير سينوبسيس VCS التماثلية الروسية (لمحاكاة verilogue) و Synopsys Design Compiler (للتوليف المنطقي لل verilogue) و Synopsys IC Compiler (للتركيب المادي لنتائج التوليف المنطقي) ). ربما يكون هناك عدة آلاف من المبرمجين الأذكياء في روسيا.
على الرغم من سهولة كسر تراخيص منتجات البرامج هذه ، إلا أن استخدامها بدون دعم أمر صعب. إذا تم فصل Huawei عن Synopsys و Cadence ، فستكون أسوأ حالًا مما لو كانت منفصلة عن Android وحتى نوى ARM.
نعم ، ها هي الخوارزمية المكررة في نهاية كتاب دونالد توماس. إذا لم تتعلمها عن ظهر قلب ، فليس من المجدي التدخل في مجموعات المحاكاة في سينوبسيس ، كادينس ، سيمنس / مينتور ، إكسيلينكس ، وسوف يطلبون منك رسمها على السبورة واقتراح كيفية تحسين حالة معينة:

بعد توضيح المحاكاة في بداية الكتاب ، يصف دونالد توماس لغة SystemVerilog على هذا النحو. ظهرت هذه اللغة باعتبارها مجموعة Verilog في عام 2002 ، نتيجة لدمج لغات Verilog-2001 و Vera و Superlog ، مع إضافة أفكار من لغة مواصفات العقار (PSL) ، والتي تم تحويلها إلى تأكيدات SystemVerilog (SVA).
يعتقد دونالد توماس أنك قد تعلمت بالفعل أساسيات التصميم الرقمي في مكان ما ، وبالتالي تنسج في النسيج السرد مختلف القطع المعروفة مثل بطاقات كارنو. تم استخدام خرائط Carnot للتصميم اليدوي للدوائر في الستينيات ، وبعد ذلك تم استبدال هذه الطريقة بالتحسين التلقائي للمنطق باستخدام خوارزمية Quine-McClusky ومحسن المنطق التلقائي Espresso. لذلك ، توجد بطاقات Carnot في جميع الكتب المدرسية للجامعات حول تصميم المنطق الرقمي ، لكن يبدو أنها معلقة في الهواء. وهنا يعلق دونالد توماس خرائط كارنو على حياة مصمم على القرن الحادي والعشرين:

علاوة على ذلك ، يكتب دونالد توماس عن آلات الحالة المحدودة ، وهو يعطي 1) تعريفًا رياضيًا صارمًا ؛ 2) المخططات ؛ 3) رمز ؛ 4) وبعد ذلك تبدأ في توسيعها لتشمل أجهزة الحالة المحدودة بمسار البيانات - تدفقات الأجهزة ؛ 5) وبعد ذلك تبدأ هذه التدفقات في التفاعل معه ، سواء وفقًا لبروتوكولات بسيطة "صحيحة سياسياً" (انظر أعلاه) ، واستخدام قوائم انتظار الأجهزة.


في ما يلي رمز التشغيل التلقائي البسيط الذي يحتوي على مسار بيانات يستشهد به توماس كمثال أول:


بعد ذلك ، لدى توماس فصل عن تحليل التوقيت الثابت. لا يوجد شيء مميز ، ولكنه أكثر نظافة من المواقع الهندية الشهيرة ، "كيفية الوصول إلى مقابلة VLSI". وأيضًا بشكل أكمل مما كانت عليه في بعض الكتب المنشورة على veril ، والتي تمضغ بشكل مضجّل بناء جملة اللغة ، لكنها لا تُظهر حقًا كيفية استخدامها.
لماذا نحتاج إلى تحليل توقيت ثابت؟ في الأجهزة الحقيقية ، على عكس الوهم الذي يظهره المعالج للمبرمج ، تمر كل عملية حسابية بفاصل زمني عندما تكون كل القمامة على الأسلاك - ليس فقط الأصفار والأخرى المحسوبة بشكل واضح ، ولكن أيضًا أي خلل عشوائي ، أي خلل ، وعمومًا القيم غير الرقمية في المنطقة المحرمة. على سبيل المثال ، إذا كان لديك جميع الفولتية أعلى من 0.7 فولت تعتبر وحدة رقمية ، وجميع الفولتية أقل من 0.3 فولت كصفر رقمي ، فقد يظهر 0.4 فولت على السلك.
في النهاية ، تسير جميع الإشارات في الدائرة بطريقتها الخاصة ويستقر الموقف ، ولكن هذا "في النهاية" يجب أن يكون أقل من دورة إشارة الساعة (الساعة). هذه الدورة تتناسب عكسيا مع التردد الذي تعمل به الدائرة (جيجاهيرتز ، ميغاهيرتز).
إذا لم تقع النتيجة المستقرة للحسابات أو العمليات المنطقية في المشغل D (الحد الأدنى لعنصر الذاكرة) في لحظة الفتحة (الفاصل الزمني حول تغيير مثل هذه الإشارة) ، ستصبح حالة الدائرة عبارة عن قمامات - سوف ينفجر القمر الصناعي أو المفاعل ، وسيتوقف iPhone عن الرد على المكالمات. يحتاج مصمم المعدات بالكامل إلى معرفة ما لا يقل سخرية عن المنطق.
لماذا التحليل ثابت؟ في الثمانينات ، كانت ديناميكية - تم توضيح التأخير من خلال المحاكاة. تبين أن هذا لا يمكن الاعتماد عليه بالنسبة للدوائر ذات مئات الآلاف والملايين والمليارات من الترانزستورات ، والآن يتم حساب جميع التأخيرات بشكل ثابت ، بناءً على تحليل مسارات الإشارات بعد التوليف.

يمكن أن تصل إشارة الساعة أيضًا إلى أجزاء مختلفة من الدائرة الدقيقة مع بعض التأخير ، مما يضيف عدم يقين آخر إلى هذا المطبخ الذي يجب إزالته (لحسن الحظ ليس يدويًا ، ولكن بمساعدة برامج شجرة التوليف على مدار الساعة وطرق أخرى):

في الفصل الخاص بالتدفقات ، يناقش توماس العديد من الخيارات الأساسية لكيفية قيام أجهزة حالة التشغيل المتوازية مع مسارات البيانات بتبادل المعلومات ، بما في ذلك استخدام المخازن المؤقتة وقوائم الانتظار. كما هو الحال في التصميم / الدائرة نفسها ، على مستوى عمليات نقل السجل ، وذلك في النموذج السلوكي أو بيئة الاختبار للدائرة. عند قراءة توماس ، من الجيد أن تكتب وتصحح أمثلة نفسك لجميع حالات البروتوكولات التي وصفها. والحقيقة هي أنهم يرغبون في كتابة التعليمات البرمجية حول مثل هذه المواضيع (جهاز صغير للتحكم في الحالة ، أو تدفق بيانات بين وحدتين ، أو مسارات بيانات موصولة بخط أنابيب أو مجرد رمز لقائمة انتظار الأجهزة) أثناء مقابلة المستوى الثاني في الشركات الإلكترونية. إذا كان يمكنك كتابة مثال لأي من المجموعات التي وصفها توماس في 20 دقيقة مع رمز من 30 إلى 50 سطرًا ، فستكون انطباعًا جيدًا. صعب التعلم - سهل في المعركة.
تعد بيئة اختبار أجهزة التوجيه (الشكل 8.3) مع قوائم الانتظار لعدة منافذ مثالًا شائعًا يُستخدم لشرح منهجيات التحقق. ربما لأن بعض هذه المنهجيات اخترعتها شركة سيسكو وشركات أخرى تصمم رقائق لأجهزة الشبكة.

في الفصل 6.2.2. يصف توماس أحد خيارات تفاعل الخيوط - التزامن خطوة بخطوة (قفل خطوة). أحد تطبيقات القفل هو أنظمة الموثوقية العالية ، على سبيل المثال في إلكترونيات السيارات. حالة خاصة: يمكن للمعالجين تنفيذ البرنامج نفسه مع تأخير لعدة دورات ، وخلال هذا التنفيذ يمكن لدائرة خاصة التحقق من أن لديهم نفس النتائج.


كان توماس مهتمًا بشكل واضح بالموثوقية ، لأنه بالإضافة إلى خطوة القفل ، أشار إلى استخدام CRC ، وهو رمز متكرر دوريًا لاكتشاف الأخطاء في نقل البيانات. في الوقت نفسه ، يخبر توماس كيفية حساب اتفاقية حقوق الطفل باستخدام LFSR ، وهو سجل التحول الخطي للتعليقات. كل من هذا وآخر بحاجة إلى أن تكون قادرة على مهندس شاب. هذه هي ميزة كتاب توماس - على الرغم من أنه لا يتعمق دائمًا ، إلا أنه يمس العديد من الموضوعات ويظهر من أين يحفر:


في وصفه لاتفاقية حقوق الطفل ، يشير توماس إلى كتاب مثير للاهتمام ومسيء فهمه في روسيا بقلم Hacker's Delight :

يتناول دونالد توماس في كتابه الجديد ثلاث تقنيات لم تكن موجودة في الكتاب القديم على الإطلاق:
- التوليد التلقائي للمعاملات العشوائية الزائفة مع القواعد المقيدة (المعاملات العشوائية المقيدة / محللو القيود).
- حساب لتغطية سيناريوهات مثيرة للاهتمام الناشئة خلال تفجير التصميم من خلال المعاملات المحدودة العشوائية ، والتغطية الوظيفية.
- لغة عبارات المنطق الزمني (التأكيدات المتزامنة) واستخدامها في كل من المحاكاة والإثبات التلقائي لخصائص التصميم باستخدام برامج التحقق الرسمية.
دخلت هذه التقنيات الثلاثة الصناعة بطريقة جيدة فقط في القرن الحادي والعشرين ، لكنها دخلت بقوة. في البداية ، تم استخدامها جميعًا لإنشاء بيئات اختبار بواسطة مهندسي التحقق ، ولكن الآن تتطلب معرفة التغطية الوظيفية ولغة البيان الزمني (SystemVerilog Assertions - SVA) أيضًا مصممين. توماس لديه حد أدنى معين من شأنه أن يساعدك على عدم الوقوع في مقابلة هاتفية ، ولكن للعمل الحقيقي تحتاج إلى معرفة المزيد. علاوة على ذلك ، ليس فقط لغة العبارات الزمنية على هذا النحو ، ولكن أيضًا ممارسة تصحيح الأخطاء مع مساعدتها آلات الحالة المحدودة الموازية التي تم إنشاؤها بواسطة جهاز محاكاة لكل عبارة ، وكذلك استخدام برامج التحقق الرسمية. لقد تم تطبيق التحقق الرسمي المستند إلى التأكيد في السنوات الأخيرة بشكل كبير داخل Apple و AMD وشركات أخرى من هذا القبيل.
لديّ صديق قام بتنزيل
هذا الكتاب بلغة البيانات الزمنية ودرسه طوال عطلة رأس السنة بدلاً من رحلة إلى هاواي مع الفتيات. من هنا يمكنك أن تفهم مدى أهمية SystemVerilog Assertions (SVA) في الحياة المهنية والصناعة. صحيح ، من أجل الاكتمال ، يجب أن أذكر أنه ابن مهاجرين من تايوان ، ولديهم موقف أشد من مثل هذه الأشياء من الروس.
إليك طريقة تعامل Thomas مع إنشاء معاملات عشوائية عشوائية (معاملة مع حقول rand وتقييدها باستخدام بنية القيد):

وفيما يلي كيفية ارتباط توماس بالتغطية الوظيفية - covergroup / coverpoint / bins ، مع مراعاة توليفات العديد من الأغطية المتغيرة (cross) ، باستخدام صناديق البدل ، ونطاقات القيمة ، وكذلك تغطية الانتقال في أجهزة الحالة:

فيما يلي مثال على أبسط بيان زمني "إذا كان q صحيحًا على الحافة الموجبة لإشارة الساعة ، فيجب تنفيذ التسلسل s2 خلال الدورة ، حيث يكون r صحيحًا أولاً ، ويكون s في ثلاث دورات أخرى":

ماذا تقرأ قبل وبعد كتاب "التصميم المنطقي والتحقق من الأنظمة على SystemVerilog" دونالد توماس؟
إذا كنت لا تفهم شيئًا على الإطلاق في مشاركتي ، فيمكنك محاولة قراءة كتاب
" الدائرة
الرقمية وهندسة الكمبيوتر" لديفيد هاريس وسارة هاريس . يمكن فهم كتاب هاريس وهاريس من قِبل كل من يستطيع القراءة والعد ، بشرط أن يكون للقارئ دوافع. يبدأ الكتاب على مستوى المدرسة الثانوية - الفولتية والأرقام الثنائية - وينتهي بتصميم المعالج الخاص به في veril.
المفسد: ديفيد هاريس وسارة هاريس ليسا زوجًا ولا زوجة ولا أخ وأخت. إنهم مجرد أسماء تحمل نفس الاسم وبدأوا عن غير قصد العمل كمدرسين في الجامعة نفسها ، وخلالها كتبوا كتابًا.
هنا على اليسار في الصورة هي الفتاة إيرينا من نوفوسيبيرسك أكاديميجورودوك التي تحمل النسخة الإنجليزية من هاريس وهاريس ، وعلى اليمين هي نسختها الروسية.

بعد كتاب دونالد توماس ، أوصي بتنزيل المقالات من قبل كليف كامينغز. إنه المدرب الحقيقي الأكثر شهرة لكل من التوليف والتحقق. أثناء قراءة كتاب دونالد توماس ، كانت لدي فكرة "عدة مرات سيكون من الجيد إدراج مثل هذه القطعة وكليف من كليف كامينغز" لاستكمالها.
يأخذ كليف 1000 - 3000 دولار لكل طالب في الندوات ، وهذا يتوقف على مدة الندوة (من يوم لآخر) ، وتدفع الشركات الإلكترونية لتحسين نوعية مهندسيهم الذين ليسوا مدربين تدريباً جيداً في الجامعات. حتى في ستانفورد ، للأسف ، لا يتعلم الجميع هذا - كان لدي متدرب من ستانفورد ، أعرف ذلك منه. إذا قمت بتنزيل جميع المقالات المجانية لكليف كامينغز بعد قراءة دونالد توماس ، فإنك ستوفر كل هذه الأموال.هاتان المادتان مطلوبتان - يرغبون في طرح الأسئلة في كل مكان في المقابلة:تقنيات تصميم وتحقق من عبور المجال على مدار الساعة (CDC) باستخدام تقنيات المحاكاة والتوليف فيريلوج للنظاملتصميم FIFO غير المتزامن مع مقارنات مؤشر غير متزامن, , FSM c FSM «case (1'b1) // synopsys parallel_case… state[STATE_N]: ...», , Sun Microsystems, :
Asynchronous & Synchronous Reset Design Techniques — Part DeuxCoding And Scripting Techniques For FSM Designs With Synthesis-Optimized, Glitch-Free OutputsSynthesizable Finite State Machine Design Techniques Using the New SystemVerilog 3.0 Enhancements, , 1980- . , static timing analysis, , inertial transport delays , , :
Correct Methods For Adding Delays To Verilog Behavioral Models:
