
ما زلنا ننظر UDB بناء على وثائق السرو. وهذه المرة سوف ندرس بالتفصيل Datapath ، التشغيل الآلي.
المحتوى العام للدورة "UDB. ما هذا؟ "
الجزء 1. مقدمة. Pld.الجزء 2. Datapath. (المادة الحالية)
الجزء 3. Datapath FIFO.الجزء 4. Datapath ALU.الجزء 5. Datapath. أشياء صغيرة مفيدة.الجزء 6. وحدة الإدارة والحالة.الجزء 7. توقيت وإعادة ضبط وحدة التحكمالجزء 8. معالجة UDB21.3.2 الجهاز التشغيلي (Datapath)
يحتوي datapath الموضح في الشكل 21-6 على وحدة واحدة أحادية الدورة ذات 8 بتات والمقارنة المرتبطة بها وتوليد أعلام الحالة. يمكن ربط كتل Datapath من UDBs المجاورة معًا لزيادة عمق البت. يتضمن Datapath RAM تكوين ديناميكي صغير يمكنه تحديد العملية المراد تنفيذها في دورة معينة ديناميكيًا.
تم تحسين Datapath لتنفيذ الوظائف المضمنة النموذجية مثل أجهزة ضبط الوقت ، عدادات ، PWMs ، PRS ، CRC ، سجلات التحول ، ومولدات النطاق الترددي. إضافة وظائف الجمع والطرح توفر الدعم لعمليات دلتا سيغما الرقمية.

الشكل 21-6. أعلى مستوى Datapath.
21.3.2.1 نظرة عامة
توفر الفصول التالية نظرة عامة على الميزات الرئيسية لـ Datapath.
التكوين الديناميكيالتكوين الديناميكي - القدرة على تغيير عمل Datapath والاتصالات الداخلية في كل دورة تحت سيطرة جهاز التسلسل. يتم تطبيق ذلك باستخدام ذاكرة التكوين (ذاكرة الوصول العشوائي للتكوين) ، والتي تخزن ثمانية تكوينات فريدة من نوعها. يمكن إعادة توجيه عنوان الإدخال لهذه الذاكرة من أي كتلة متصلة بمصادر التتبع ، عادةً من منطق PLD أو دبابيس I / O أو من Datapaths الأخرى.
ألويمكن أن تقوم ALU بثمانية وظائف للأغراض العامة: الزيادة ، والتقليل ، والإضافة ، والطرح ، وأيضًا تنفيذ العمليات المنطقية AND ، و OR ، و XOR و PASS. يتم تحديد اختيار الوظائف حسب ذاكرة التهيئة لكل دورة. تتوفر عمليات الإزاحة المستقلة (التقليب إلى اليسار واليمين و nibble) ، بالإضافة إلى عمليات الإخفاء عند إخراج ALU.
البناء الشرطييحتوي كل Datapath على مقارنين مقنّعين في اتجاهات البت يمكن تهيئتهما لتحديد مدخلات سجل Datapath متعددة كوسائط. قد تكون الشروط الأخرى القابلة للتحديد هي كل الأصفار وجميعها وتجاوز السعة. تشكل هذه الشروط المخرجات الرئيسية لـ Datapath ويمكن إعادة توجيهها إلى خطوط التتبع الرقمية أو مدخلات الوظائف الأخرى.
جزءا لا يتجزأ من CRC / PRSلدى Datapath دعمًا مدمجًا لحسابات CRC أحادية الدورة وتوليد تسلسلات عشوائية زائفة (تسلسل عشوائي Pseudo عشوائي ، PRS) مع عمق بت معين وتوليد متعدد الحدود. لتحقيق عمق أكثر قليلاً من 8 بت ، يمكن ربط الإشارات بين Datapath. يتم التحكم في هذه الميزة ديناميكيًا ، مما يعني أنها يمكن أن تتناوب مع وظائف أخرى.
عدد بت عالية مخصصةيمكن تعيين عدد البت الأكثر أهمية (اللغة الإنجليزية الأكثر أهمية ، MSB) للدالة الحسابية ووظيفة التحول برمجيًا. يوفر هذا الدعم لوظائف CRC / PRS متغيرة الطول ، ويتيح ، جنبًا إلى جنب مع إخراج ALU اخفاء ، تنفيذ مؤقتات للأطوال التعسفية والعدادات وكتل التحويل.
مخازن الإدخال / الإخراج FIFOيحتوي كل Datapath على اثنين من المخازن المؤقتة FIFO 4 بايت ، كل منها يمكن تكوينه للعمل كمخزن مؤقت للمدخلات (وحدة المعالجة المركزية أو DMA يكتب البيانات إلى FIFO ، Datapath يقرأ FIFO) ، أو كمخزن مؤقت للإخراج (يكتب Datapath إلى FIFO ، ووحدة المعالجة المركزية أو DMA يقرأ منه). تنشئ هذه المخازن المؤقتة FIFO حالة يمكن إعادة توجيهها للتفاعل مع أجهزة التسلسل أو المقاطعات أو طلبات DMA.
تسلسليمكن تكوين Datapath لظروف السلسلة وإشارات في سلسلة إلى Datapaths المجاورة. يمكن الجمع بين الإزاحة ، النقل ، الالتقاط ، والإشارات الشرطية الأخرى في سلاسل لإنشاء وظائف حسابية ذات عمق بت أعلى ، بالإضافة إلى وظائف الإزاحة ووظائف CRC / PRS.
مضاعفة الوقتفي تطبيقات الاختزال أو عندما لا تكون هناك حاجة لسرعات عالية على مدار الساعة ، يمكن تقسيم وحدة ALU واحدة في Datapath بشكل فعال بين مجموعتين من السجلات ومولدات الحالة. يتم إغلاق مخرجات ALU وسجل الإزاحة ويمكن استخدامها كمدخلات في الدورات اللاحقة. تتضمن أمثلة الاستخدام دعمًا لوظائف 16 بت في Datapath (8 بت) واحد ، أو عمليات إنشاء CRC بالتناوب مع عمليات نقل البيانات.
مدخلات Datapathيحتوي Datapath على أربعة أنواع من المدخلات: التكوين والتحكم وكذلك مدخلات البيانات (التسلسلية والمتوازية). حدد مدخلات التكوين عنوان ذاكرة الوصول العشوائي للتكوين الحيوي. تقوم مدخلات التحكم بتحميل سجلات البيانات من FIFO وتنزيل إخراج البطارية إلى FIFO. مدخلات البيانات التسلسلية تشمل مدخلات التحول والحمل. يسمح لك منفذ إدخال البيانات الموازي باستلام ما يصل إلى 8 وحدات بت بيانات من موارد التتبع.
مخرجات Datapathفي المجموع هناك 16 إشارة تم إنشاؤها في Datapath. بعضها إشارات شرطية (على سبيل المثال ، مقارنات) ، والبعض الآخر عبارة عن إشارات حالة (على سبيل المثال ، حالة FIFO) ، والباقي إشارات بيانات (على سبيل المثال ، تحويل سجل الإخراج). يتم مضاعفة هذه الإشارات 16 في 6 مخرجات Datapath وتوجيهها إلى مصفوفة التتبع. بشكل افتراضي ، تتم مزامنة المخرجات مع تردد ساعة ، مما يخلق خطوط أنابيب مع تأخير دورة واحدة على مدار الساعة. أيضًا ، يمكن تحويل (المخرجات) إلى الوضع غير المتزامن (التوافقي) (انظر ملاحظات المترجم).
ملاحظة المترجملقد بحثت لفترة طويلة عن توقيت مخرجات Datapath. لقد ذكرت تجربتي أن كل شيء موجود بشكل غير متزامن. اتضح أن هذه ليست حالة المخرجات ، بل إعداد المحرر للمتغيرات القائمة عليها.
هذا سيجبر المحرر على إنشاء كود Verilog التالي:/* ==================== Assignment of Registered Variables ==================== */ always @ (posedge clock) begin : register_assignments var1 <= (decr_finished); end
إذا قمت بالتبديل إلى وضع اندماجي
سيصبح الرمز هكذا: assign var1 = (decr_finished);
ولكن كل هذا ينطبق على المتغيرات التي تم إنشاؤها من مخرجات Datapath. والنواتج نفسها هي دائما غير متزامن. ويمكن استخدام أسمائهم (في هذا المثال decr_finished ) دون إدخال متغيرات إضافية.سجلات العمل Datapathكل وحدة Datapath لديها ستة سجلات العمل 8 بت. وحدة المعالجة المركزية أو DMA لديه قراءة وكتابة الوصول إلى جميع السجلات.
الجدول 21-1في المقالة التالية ، سنبدأ في التعامل مع FIFO.