× المانهاي استاندارد فيزيكي نمايش داده شده مانند جمع كننده ها، واحد حافظه ضرب كننده ها
(Denyer & Renshaw,1985; Pope,1985; Ulbrich , 1985) امروزه ،كامپايلرهاي سيليكوني كه به داشتن يك وسيلة فوق مدرن نزديك شده است ، براي طراحي ASIC كه فرمي از نمايش سطح بالاست (معمولاً بصورت يك توصيف رفتاري عنوان مي شود) بكار گرفته شده است
× المانهاي استاندارد فيزيكي نمايش داده شده مانند جمع كننده ها، واحد حافظه ضرب كننده ها …
(Denyer & Renshaw,1985; Pope,1985; Ulbrich , 1985) امروزه ،كامپايلرهاي سيليكوني كه به داشتن يك وسيلة فوق مدرن نزديك شده است ، براي طراحي ASIC كه فرمي از نمايش سطح بالاست (معمولاً بصورت يك توصيف رفتاري عنوان مي شود) بكار گرفته شده است.
(Kuny,1988; west & Eshraghian,1993; Bayoumi & Swartzlande,1994; Wanhammer,1999; Parhi,1999).
· استفاده از يك پردازشگر سيگنال ديجيتال تجاري در دسترس (DSP) براي نمايش يك سيستم طراحي شده:
يك سيستم سخت افزاري كامل بايد شامل حافظة خارجي ،اينترفيهاي دادة ورودي و خروجي و گاهي اوقات مبدلهاي آنالوگ به ديجيتال و ديجيتال به آنالوگ باشد. امروزه چندين نوع تجاري DSP در دسترس است كه شامل قسمتهايي از قبيل نطقة عمل ثابت يا شناور،چندين رنج از سرعت پالس ساعت (CLK) و قيمت،حافظةداخلي و ضرب كننده هاي بسيار سريع هستند.
Texas Instruments Inc.1990,1991; Motorola Inc.1990) ارائة مطالب خود را در اين فصل، با معرفي المانهاي اساسي مورد نياز براي نمايش سيستم هايي براي پردازش سيگنال ديجيتال، شروع ميكنيم. در واقع فيلترهاي ديجيتال، حجم وسيعي از اين كتاب را در برگرفته است (حجم وسيعي از كتاب به فيلترهاي ديجيتال اختصاص يافته است). رياضيات گسترده ،به عنوان راهي براي طراحي فيلترهاي ديجيتال كه حذف كننده ها مورد نياز براي المانهاي ضرب كننده هستند، ارائه شده است.با توجه به آنچه در فوق مطرح شد،استفاده از PLDهايي مانند FPGA براي ارائه تكنيكهاي پردازش سيگنال ديجيتال ، مطرح شده است. سپس با ارائه يك وسيله كلي براي بدست آوردن يك طرح عملي مؤثر، وسيلة VLSI بكار رفته است.
(Kuny,1988; west & Eshraghian,1993; Bayoumi & Swartzlande,1994; Wanhammer,1999; Parhi,1999).
ما براي نمايش سيستم هاي مشخص،تعدادي تكنيك را براساس ابزار CAD مانند كامپايلرهاي سيليكون يا كامپايلرهاي رفتاري بكار مي گيريم. سپس گروه تراشه هاي تجاري DSP را مقايسه كرده و تفاوتها و تواناييهاي آنها را ذكر مي كنيم.
اين فصل را با ارائه يك مثال از نمايش فيلترهاي ديجيتال با استفاده از DSP تجاري به پايان مي رسانيم. طبيعتاً ارائه اين فصل تنها يك برداشت كلي مي دهد.بطوريكه تلاش براي گرفتن اطلاعات كاملاً به روز و جديد، در عمق ارائه ممكن است به سرعت از رده خارج شود ( با توجه به سرعت تغييرات در منطقه).
2-12 المانهاي اساسي :
1-2-12 خواص نمايش مكمل 2:
نظر به اينكه نمايش مكمل 2 براي فهم عمليات رياضي توصيف شده در بخش فوق ضرري است در اينجا مقدمة داده شده در فصل 7 را با ارائة برخي ديگر از خواص مكمل 2 كامل مي كنيم.
يك عدد x مثبت داده شده است. نمايش مكمل 2 آن ،با نمايش مقدار علامت آن معادل است. همچنين (-x_ را با معكوس كردن همة بيتهاي آن و اضافه كردن 1 به پايين ترين مكان با ارزش آن نشان مي دهيم. در مجموع ، بيت علامت عدد مثبت Sx=0 و بيت علامت عدد منفي Sx=1 است. در اين نمايش اگر نمايش مكمل 2 x بصورت زير داده شود:
[x]2c=Sx.x1x2….xn (12-1)
مقدار x بصورت زير بدست مي آيد:
(12-2)
يكي از فوايد نمايش اعداد بصورت مكمل 2 اين است كه اگر A,B بصورت مكمل 2 ارائه شوند، C=A-B ، بصورت مكمل 2 مي تواند با جمع A و مكمل 2، B بدست آيد. همچنين با دادن x بصورت داده شده در رابطة (2-12) داريم:
(12-3)
و از آنجائيكه پس رابطة (3-12) مي تواند بصورت زير نوشته شود.
(12-4)
كه نمايش مكمل 2، x/2 با قرار دادن رابطة زير بدست مي آيد:
(12-5)
اين خاصيت بيان مي كند كه عمل تقسيم بر 2 يك عدد نمايش داده شده به صورت مكمل 2 با شيفت همة بيتهاي آن از مكان اوليه به سمت راست معادل است،(بعلاوه بيت علامت تكراري،يعني بيت علامت تغيير نمي كند). اين خاصيت در بهبود الگوريتم ضرب در را پيچيده ميكند،بسيار مهم است.
2-2-12 جمع كننده هاي سري :
يك نمايش بسيار اقتصادي از فيلترهاي ديجيتال، با استفاده از حساب سري حاصل مي شود. چنين وسيله اي يك عمل داده شده را بوسيلة پردازش سري تك تك بيتهاي يك عدد نمايش داده شده در حالت باينري،انجام مي دهد. روي هم رفته، نتيجه منجر مي شود به ترمهاي مؤثر سخت افزاري،توان مصرفي، مدولاريته و سهولت برقراري اتصالات داخلي بين بيتهاي سري. يك مانع اصلي سرعت پردازش پيوسته است كه منجر به كند شدن پردازش مي شود. يك المان اساسي براي نمايش همة سيستم هاي پردازش سيگنال fulladder ( تمام جمع كننده ) است كه نماد و مدار منطقي آن در شكل (1-12) آمده. چنين سيستمي دو پورت خروجي دارد كه يكي مساوي است با حاصل جمع دو بيت ورودي A,B و ديگري معمولاً اشاره دارد به بيت carry كه با امكان توليد شدن بيت اضافي در عمل جمع مطابقت مي كند. يك پورت سوم ci استفاده مي شود تا به بيت carry (نقلي) اجازه دهد تا از جمع قبلي به مكان جمع جاري حمل شود. يك مثال از جمع سري براي مكمل 2 حسابي، براساس تمام جمع كننده در شكل (12-2a) نمايش داده شده است. در يك چنين سيستمي دو كلمة ورودي A,B بايد بطور سري به جمع كننده متصل باشند، با شروع از كوچكترين بيت با ارزش يك فليپ فلاپ نوع D ( با برچسب D) براي ذخيره تا بيت carry بدست آمده از جمع تك بيتي استفاده مي شود كه آنرا ذخيره كند تا در جمع براي تطبيق با بيت با ارزش بعدي استفاده شود. سيگنال Reset براي پاك كردن اين D فليپ فلاپ قبل از شروع جمع دو عدد ديگر استفاده مي شود و در شروع جمع،بيت carry (نقلي) ورودي را وادار به صفر شدن مي كند. شكل (12-2b) يك تفريق گر مكمل 2 حسابي را نشان مي دهد. اين ساختار براساس اين واقعيت است كه A-B مي تواند با جمع A با مكمل 2B انجام شود، كه مي تواند با معكوس كردن B و جمع 1 با كوچكترين بيت با ارزش آن تعريف شود.نمايش B در مكمل 2 معمولاً با يك معكوسگر در ورودي B و يك گيت NAND و جانشين كردن يك گيت AND در بيت نقلي ورودي انجام مي شود.سپس در شروع جمع يك سيگنال Reset اعمال شده و نقلي ورودي 1 مي شود. يك معكوس گر اضافي بايد در نقلي خروجي قرار گيرد. زيرا با استفاده از گيت NAND نقلي خروجي برگشته به D فليپ فلاپ بايد معكوس گردد.
3-2-12 ضرب كننده سري :
المان اساسي پيچيده اي كه اغلب براي پردازش سيگنال ديجيتال استفاده مي شود ضرب كننده است. در حالت كلي ،حاصلضرب دو عدد به صورت جمع حاصلضربهاي جزئي كه معمولاً در الگوريتم ضرب انجام مي شود بدست مي آيد. بطور طبيعي حاصلضربهاي جزئي 1 بيت برابر صفر را بصورت بي اهميت و بي نياز از ضرب كردن در مي آورد.
به همين دليل چندين فيلتر طراحي شده كه كوشش دارند تا همة ضرايب فيلترها را بصورت جمع يك عدد كوچك از بيتهاي غير صفر نشان دهند. فرض كنيد A,B به ترتيب دو عدد از بيتهاي n,m باشند كه مي توانند بصورت زير با استفاده از مكمل 2 حسابي نمايش داده شوند :
(12-6)[A]2c= SA.a1a2 … am
(12-7)[B]2c=SB.b1b2 …. bn
به اين ترتيب از رابطةB,A (12-2) بصورت زير بدست مي آيند:
(12-8)
(12-9)
با استفاده از نمايش مكمل 2 حاصل ضرب P=AB برابر مي شود با :
(12-10)ما مي توانيم اين ضرب را پله پله، يعني ابتدا با جمع جمله هاي ضرب شدة bn و bn-1 و گرفتن نتيجه و سپس جمع آن با جملة ضرب شدة bn-1=انجام دهيم. اجازه دهيد اين استدلال را به بيش از يك بيت گسترش دهيم. مجموع دو جملة اول مي تواند بصورت زير نوشته شود:
(12-11)
از رابطة (12-4) ،رابطه فوق به صورت زير نوشته مي شود:
(12-12)
كه مي تواند در الگوريتم ضرب بصورت زير نمايش داده شود :
Sc c1 c2 c3 …. Cm+1 Cm+2
بطوريكه :
(12-13)
توجه داشته باشيد كه مجموع دو عدد مثبت هميشه مثبت و مجموع دو عدد منفي هميشه منفي است. بنابراين SC=SA است. در واقع در مكمل 2 حسابي علامت همان علامت قبلي است و مجدداً تكرار مي شود. براي نمايش مجموع فوق مي توان نوشت:
…SA SA c1 c2 c3 …. Cm+1 Cm+2
در مرحلة بعد بايد با حاصل ضرب جمع شود.
(12-14)
كه مي تواند بصورت خلاصه اي از الگوريتم ضرب به شكل زير بيايد:
dm+3…SA d1 d2 d3 …. dm+1 dm+2
كه برابر مي شود با :
(12-15) اين عمل تا بدست آمدن y يعني آخرين مجموع جزئي ادامه مي يابد. اگر B مثبت باشد SB صفر است و حاصل ضرب نهايي Z با y برابر است :
به بيان ديگر اگر B منفي باشد، SB=1 است y هنوز نياز دارد كه از SBA كم شود. اين مي توانند به صورت زير باشد:
Zm+n…SZ Z1 Z2 …. Zm Zm+1
ضرب دقيق A با (m+1) بيت با مكمل 2 و B با (n+1) بيت مي تواند با (m+n+1) بيت ارائه شود. اگر بخواهيم نتيجة نهايي را تنها با تعداد بيتهاي مشابه A نمايش دهيم كه (m+1) بيت است ، مي توانيم از گرد كردن يا نقصاني كردن استفاده كنيم. براي نقصاني كردن، كافي است كه بيتهاي Zm+1 … Zm+nبي اهميت شوند. براي گرد كردن ما بايد قبل از نقصاني كردن ،يك مقداري برابر بصورت زير با نتيجه جمع كنيم.
(12-18)
با نگاه كردن به الگوريتم نشان داده شده در آخرين جمع جزئي فوق،ابتدا به نظ مي رسد كه با جمع و نتيجه معادل است با جمع بيت 1 در مكان (m+1) كه در مكان بيت سمت راست Zm+1 قرار دارد. هرچند اين كه در جمع اين بيت در ابتدا و يا انتهاي مكان جمع قرار بگيرد،مهم نيست. تنها كافي است كه اين بيت 1 و اين جمع جزئي را گرد كند. سپس گرد كردن مي تواند با جمع عدد زير با اولين جمع جزئي انجام گيرد.
(12-19)
در ابتداي جمع جزئي در مجموع، از آنجائيكه تنها (m+1) بيت حاضل ضرب نگهداشته مي شود ما نياز داريم كه از هر جمع جزئي (m+1) بيت با ارزش تر آن را نگهداريم. دليل اصلي بكار گرفتن ضرب كنندة سري انجام هر جمع جزئي با استفاده از يك جمع كننده سري است كه بطوريكه در شكل (12-1) آمده براي اينكه هر جمع جزئي با A,B بطور صحيح مرتب شود به تأخيرهايي كه بين بلوكهاي (SA) جمع كننده سري وارد مي شود. توجه كرده است. اين نمايش در شكل (12-3) آمده كه در آن سيگنال Q گرد شده در ابتداي جمع جزئي قرار گرفته و در آن كوچكترين بيتهاي با ارزش Q,A در ابتدا وارد مي شوند.
در شكل (12-3) بسته به ميزان تأخير المانها، يكي از جمع كننده هاي سري مي تواند به محض اينكه اولين بيت از جمع جزئي قبلها در دسترس قرار گيرد، يك جمع جزئي ديگر را انجام دهد. وقتي اين اتفاق افتاد حاصل چيزي است كه آنرا معماري pipeline مي ناميم. دليل اصلي استفاده از pipeline گذشته از تصور عمومي استفاده از المانهاي تأخيري در مكانهاي استراتژيك يك سيستم است كه اجازه مي دهد تا يك عمليات قبل از اتمام عمليات قبلي شروع شود.شكل 12-4 يك ضرب كنندة سري pipeline را نشان مي دهد. در اين ضرب كننده، ورودي A به شكل مكمل 2 مي باشد و ورودي B مثبت فرض مي شود. در اين شكل پايه هايي كه برچسب D زده شده، D فليپ فلاپ هستند كه همگي يك خط CLK مشابه دارند كه براي راحتي كار حذف شده اند. و بلوكهايي كه برحسب SA دارند جمع كنندة سري كه در شكل (12-2a) آمده بود را نشان ميدهند. الماني Latch بكار رفته نيز در شكل (12-5) توضيح داده خواهد شد.
در اين مورد اگر سيگنال تواناساز بعد از clk خوردن فعال گردد ،خروجي y با ورودي x برابر مي شود،درغير اينصورت مقدار قبلي خود را نگه مي دارد. در شكل (12-4) چون B مثبت فرض شده ، در نتيجه SB=0 است. همچنين استفاده از سيگنال Q نيز به ترتيب زير است كه :
براي نقصان كردن 00 …. 00[Q]2c=
براي گرد كردن 010….0
(12-20)
در مورد گرد كردن توجه به اين نكته مهم است كه [Q]2c بيش از 2 صفر در سمت راست دارد كه در رابطة (12-19) توضيح داده شد. اين همچنين براي اين است كه سيگنال بايد بتواند با ورودي bnA كه از ابتداي كار با دو بيت تأخير يافته در جمع كنندة سري وارد شده است،همزمان شود. و بالاخره سيگنال كنترل CT برابر است با :
(12-21)CT= 001 … 10
بايد توجه شود كه همة سيگنالهاي ورودي بايد از راست به چپ وارد شوند كه شروع از كوچكترين بيت با ارزش آنهاست. بطور طبيعي خروجي سيگنال بصورت سري توليد شده و از كوچكترين بيت با ارزش آنها شروع مي شود. اولين بيت بعد از (2n+3) كلاك پاس بيرون مي آيد و بقيه بعد از (2n+m+3) سيكل ساعت توليد مي شوند.