مسجل إزاحة LFSR
أدخل صفًّا أوليًا من البتات ومواضع التغذية وعدد الخطوات، واحصل على تسلسل بتات مسجّل LFSR من نوع فيبوناتشي: البذرة 1000 مع موضعي التغذية 4 و1 خلال 8 خطوات تُخرج 00011110 وتنتهي عند 1101. مفيد لتمارين CRC. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الحالة
- 1000
- النقرات
- 4, 1
- الطول
- 4
- التسلسل
- 00011110
- الحالة النهائية
- 1101
مسجّل الإزاحة ذو التغذية الخطية الراجعة، أو LFSR، آلة رقمية مدمجة تخزّن صفًّا من البتات، وفي كل نبضة ساعة تُجري XOR على بضعة مواضع تغذية لتحسب بت إدخال جديدًا بينما تُزيح الباقي. يستعمل المصمّمون مسجّلات LFSR لتوليد تيارات بتات شبه عشوائية، وبواقي التحقق الدوري، ومتتاليات التشويش، وأنماط الاختبار الذاتي المدمج دون حفظ جدول بحث. تقبل هذه الحاسبة الحالة الابتدائية للمسجّل سلسلةً من الأصفار والآحاد، وقائمة مواضع تغذية مرقَّمة من 1 وتُعدّ من اليسار، وعدد خطوات الساعة المراد تنفيذها. تنفّذ LFSR على صورة Fibonacci: كل خطوة تُخرج البت الأيمن، وتزيح المسجّل موضعًا إلى اليمين، وتُدخل يسارًا ناتج XOR للبتات المأخوذة.
ما LFSR على صورة Fibonacci وكيف تنتج كل ساعة بتًّا
مسجّل الإزاحة ذو التغذية الخطية الراجعة آلة حالات منتهية يكون بت الإدخال التالي دالة خطية لمحتواها الحالي، مأخوذة على الحقل ذي العنصرين GF(2). وفي العتاد ليست تلك الدالة الخطية سوى XOR. الصورة Fibonacci التي تنفّذها هذه النقطة الطرفية تحتفظ بصف من n بت وقائمة مواضع تغذية.
تُرقَّم المواضع من 1 عند يسار سلسلة الحالة إلى n عند اليمين. في كل ساعة يقرأ المحرّك البتات عند تلك المواضع، ويجمعها بـ XOR ليحصل على بت تغذية واحد، ويُخرج البت الأيمن بوصفه العينة التالية للخرج، ويُزيح كل بت موضعًا نحو اليمين، ويكتب بت التغذية في الخلية اليسرى التي خلت. تكرار هذه الخطوة ينتج متتالية بتات حتمية دورتها على الأكثر 2^n ناقص واحد: حالة الأصفار نقطة ثابتة، وأي حالة أخرى لكثير حدود ذي دورة عظمى (أولي) تمرّ على الـ 2^n ناقص واحد من المتجهات غير الصفرية المتبقية قبل أن تتكرر.
كثيرات الحدود الصفّية الكلاسيكية مثل x^4 زائد x زائد واحد، وهي توافق الموضعين 4 و1 على مسجّل بأربعة بتات، تبلغ تلك الدورة العظمى عند البدء من بذرة غير صفرية. مسجّلات Galois تُجري XOR في خلايا عدّة أثناء الإزاحة وتنتج تيارًا قريبًا لكنه غير مطابق لنفس كثير الحدود؛ وهذه الحاسبة لا تحاكي توصيل Galois.
أين تُثبت واجهة متتالية بتات LFSR جدواها
تطلب مقررات التصميم الرقمي ومختبرات HDL من الطلاب تقديم LFSR على صورة Fibonacci يدويًّا لخطوات قليلة ومطابقة كثير حدود من ورقة بيانات مع تفريغ بتات؛ ومرجع حتمي يستخدم الترقيم نفسه من اليسار إلى اليمين واتفاق الإزاحة إلى اليمين يُنهي الجدل حول أي طرف هو البت صفر. مولّدات الاختبار الذاتي المدمج وPRBS في السيليكون وأنسجة FPGA هي LFSR في جوهرها: يمكن لسكربتات التحقق استدعاء هذه النقطة الطرفية لإنتاج بادئة معلومة لمتتالية دورة عظمى ثم التأكد من أن الجهاز قيد الاختبار يُخرج البادئة نفسها بعد إعادة الضبط.
وتستفيد المواقع التي تتصدّر نتائج مسجّل الإزاحة ذي التغذية الخطية الراجعة من أداة حية يطابق مسارها المجاني في المتصفح مسار الأتمتة المدفوع بايتًا ببايت على الوحدة النقية ذاتها. ولا يستهلك فشل التحقق أي رصيد. أبقِ المسجّل عند أربعة وستين بتًّا أو أقل، وثبّت سلسلة sequence في الاختبارات، فتحصل على ساعات LFSR قابلة للتكرار للواجبات وتجهيزات CI وعمال الحافة دون إقامة محاكي منطق رقمي خاص بك.
حالات الاستخدام
تمارين الصف على LFSR وCRC
قدّم مسجّل Fibonacci من بذرة وقائمة مواضع تغذية، ثم قارن متتالية البتات المُخرَجة والحالة النهائية بالواجب المحلول يدويًّا أو بكثير الحدود في الكتاب.
بوادئ PRBS والاختبار الذاتي المدمج
ولّد بادئة معلومة لتيار LFSR ذي دورة عظمى للتحقق من أن FPGA أو ASIC أو مشوّشًا برمجيًّا يطابق المواضع المحددة بعد إعادة الضبط.
مراجع لبنوك اختبار HDL
غذِّ الاختبارات الوحدوية بتفريغ بتات حتمي حتى لا يتبنّى نموذج LFSR في Verilog أو VHDL اتجاه إزاحة معاكسًا أو مواضع مرقَّمة من 0 في صمت.
الأسئلة الشائعة
كيف يتقدم مسجّل الإزاحة ذو التغذية الخطية الراجعة في كل خطوة؟
ينفّذ LFSR على صورة Fibonacci. XOR البتات عند مواضع التغذية المرقَّمة من 1 هو التغذية الراجعة. يُخرج البت الأيمن، ويُزاح المسجّل موضعًا إلى اليمين، ويُكتب بت التغذية في الخلية اليسرى.
كيف تُرقَّم مواضع التغذية؟
كثير الحدود x^4+x+1 على أربعة بتات يوافق الموضعين 4 و1.
ماذا يحدث إذا تجاوز موضع التغذية طول المسجّل؟
موضع أكبر من n يصف كثير حدود مختلفًا؛ يرفض المعالج الالتفاف ليبقى العقد صادقًا.
ماذا تنتج بذرة من الأصفار فقط؟
تبقى كل بتات الخرج 0 ويبقى المسجّل أصفارًا، لأن XOR الأصفار صفر. تلك النقطة الثابتة سلوك LFSR حقيقي وليست خطأ. استخدم بذرة غير صفرية لتيار غير تافه.
هل هذا مسجّل فيبوناتشي أم غالوا؟
إنه مسجّل فيبوناتشي: في كل خطوة يخرج البت الأيمن، وتنزاح البتات نحو اليمين، ويدخل من اليسار ناتج XOR لمواضع التغذية. أما توصيل غالوا فيعطي تسلسلًا قريبًا لكنه مختلف، ولا تحاكيه هذه الحاسبة.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/math/linear-feedback-shift-register \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"state":"1000","taps":[4,1],"steps":8}'const res = await fetch("https://api.kit.forhosting.com/math/linear-feedback-shift-register", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"state": "1000",
"taps": [
4,
1
],
"steps": 8
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/linear-feedback-shift-register",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"state": "1000",
"taps": [
4,
1
],
"steps": 8
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/linear-feedback-shift-register", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"state":"1000","taps":[4,1],"steps":8}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"state":"1000","taps":[4,1],"steps":8}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/linear-feedback-shift-register", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"state": "1000",
"taps": [
4,
1
],
"steps": 8
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.linear_feedback_shift_register",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_length | 64 |
max_steps | 4096 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
إذا جاوز أي موضع تغذية طول المسجّل فشلت المهمة بالخطأ invalid_input بدل اختراع التفاف. تشغّل الوحدة النقية ذاتها أداة المتصفح المجانية ومسار API، فلا يختلف تصحيح الواجبات عن منصات اختبار العتاد حول دورة ساعة واحدة.
عقد الإدخال وترقيم مواضع التغذية وشكل الاستجابة والأخطاء
أرسل جسم JSON يحوي ثلاثة حقول إلزامية. state هو المسجّل الابتدائي سلسلةً من المحارف 0 و1؛ المحرف الأيسر هو الموضع 1 وطول السلسلة هو عرض المسجّل، من بت واحد إلى أربعة وستين بتًّا. تُتجاهل المسافات داخل state فيُقبل نِبل مفصول مثل 1 0 0 0. taps مصفوفة غير فارغة من مواضع صحيحة مرقَّمة من 1 تُجمع بتاتها بـ XOR لتكوين تغذية Fibonacci؛ ويجب أن يقع كل موضع بين 1 وطول المسجّل شمولًا. steps هو عدد الساعات المراد تنفيذها، عدد صحيح من 1 إلى 4096؛ وكل ساعة تُخرج بتًّا واحدًا. تُقبل الأسماء البديلة seed أو register للحقل state، وtap_positions للحقل taps، وn أو count للحقل steps. الحقول الناقصة وغير البتات في state وغير الأعداد الصحيحة وقوائم المواضع الفارغة والقيم خارج الحدود المنشورة تفشل بالخطأ invalid_input مع تسمية الحقل ولا تُفوتر. الخطأ المميّز لهذه القدرة هو موضع يتجاوز المسجّل: إذا كان لـ state أربعة بتات وتضمّنت taps القيمة 5 رفض المعالج الطلب برسالة أن موضع التغذية يتجاوز طول المسجّل، بدل الالتفاف بباقي القسمة على n، الأمر الذي كان سينفّذ كثير حدود مختلفًا في صمت. عند النجاح يعيد الجسم length وسلسلة state القانونية وtaps وsteps صدىً؛ ويعيد bits مصفوفة أعداد صحيحة 0 و1 بترتيب الساعة؛ ويعيد sequence البتات نفسها موصولة للنسخ؛ ويعيد final_state محتوى المسجّل بعد آخر إزاحة حتى يستأنف المستدعي الآلة. مثال: state 1000 وtaps 4 و1 وsteps 8 يعطي bits 0,0,0,1,1,1,1,0 وsequence 00011110 وfinal_state 1101.
أين تُثبت واجهة متتالية بتات LFSR جدواها
وواجبات الاتصالات والترميز تستعمل LFSR قصيرة محرّكًا خطيًّا خلف فحوص باقي CRC ورموز Gold والتشويش الجمعي؛ وتوليد التيار المرجعي هنا يتيح للمصحّح مقارنة تنفيذ الطالب بعقد JSON مستقر بدل لقطة شاشة. ولأن التنفيذ تحليل parse نقي من الفئة A، يكلّف كل استدعاء ناجح سعر الأساس المنشور $0.002 دون رموز نموذج ودون شبكة صادرة.
أسئلة تقنية
كم تبلغ تكلفة حاسبة مسجّل الإزاحة ذي التغذية الخطية الراجعة؟
أداة المتصفح مجانية. طلبات API تستخدم رصيد KIT المدفوع مقدمًا بسعر $0.002 لكل استدعاء ناجح؛ والإدخال غير الصالح لا يُفوتر.