 السلام علیکم ڈیوڈنٹس، ہم وصیمی کرام، this is the 43rd لیکٹر in the series of 45 لیکٹرزان ڈیزٹل ڈیزٹل ڈیزائن کیسے آپ شلح اچھیں ہوں گے؟ last few لیکٹر سے ہم ممریز پہ بات کر رہے ہیں ممریز کی ایمپلیمینٹیشن کیسے کام کرتی ہیں، سٹرٹر کیا ہے، ریٹ ڈائیڈ ڈیسائکلز کیسے چلتے ہیں اس میں اس قسم کے اشوز پہ بات ہوتی رہے ہیں آج انشاال ل CMپ بات کریں گے کہ ان کا ۈⓃaufen کی ہ questionnaire اس میں بلی جل有沒有 ڈائیڈ ڈیزٹل ڈیزیڈل ڈیزیٹل ڈیزائن کی like بات کرنا ہے ا precious when they are used so that aspect ہیں Allison toap week can't get the اہم Bailey's how can't ڈاش name ڈیسپ شروع کریں گے سبر ہے my last lecture میں ہم دسکشن اپنے شروع کی تھی flash memory جو ہے اس کا structure کیسے organize کی ہوئی بسکلی ہم یہ کہہ رہے تھے کہ flash memory میں بھی ایک transistor ہے جو 0 یا 1 کو store کرا logic 0 یا logic 1 کو store کر رہا ہے information store کیسے ہو رہی basically charge ہم store کر رہے ہیں gate پر transistor کے اگر charge ہے تو ہم یہ کہہ رہے ہیں کہ logic 0 store ہوگا اگر charge نہیں ہے gate پر so that means logic 1 store ہوگا ہے architecture جو تھا straight forward جس طرح ہم پہلے دسکلس کر رہے تھے جو transistors ہیں وہ 2 dimensional array کی صورت میں ان کو organize کیا ہے rows ہیں and columns ہیں ہر row کے ساتھ transistor کے gates connected ہیں transistor کا ایک drain terminal ہوتا ایک source terminal ہوتا columns میں جتنے transistors ہیں ان ساروں کا drain ایک common line کے ساتھ connected ہے اور اس کا دوسرہ end ایک active load کے ساتھ connected ہے ہر drain line کے ساتھ ایک comparator connected ہے جس کا ایک end reference voltage کے ساتھ connected ہے جب کی ایک row select ہوتا ایک column select ہوتا اس کی وجہ سے ایک transistor جو ہے وہ select ہو جاتا ہے اگر اس transistor کے gate پر a charge ہے gate پر positive voltage apply ہو رہا ہے کیونکہ road selected ہے so charge کی وجہ سے source اور drain کے درمیان کوئی current flow نہیں ہوگا اگر current نہیں flow ہوگا جو comparator کا ایک input drain line کے ساتھ connected ہے وہ 0 volt پہ ہوگا دوسی input اس کی reference voltage میں so output وہ high ہوگا so basically یہ رپزن کر رہا ہے logic zero store ہوگا اسی طرح میں بات کی تھی کیا کہ transistor میں charge store نہیں ہوا جو ہی row select ہوگی ایک current flow ہوگا drain and source کے درمیان جب current flow ہوگا active load ہے اس پہ drop ہوگا we reference voltage comparator کے ایک input کے ساتھ لگائی وہ براپر ہوگی جو drop ہو رہا ہے so output comparator کا وہ 0 ہوگا so یہ basically رپزنٹ کر رہا ہے کہ logic one store کیا ہوا اس حارکی ٹیکچور کے بعد ہم نے دو special memories دیکھی نہیں جو first in first out memory and last in first out memory ہم نے یہ گیا تھا کہ special purpose memories ہیں ایک تو ان کا use special purpose ہے اور دوسرہ جو ان کی implementation وہ بھی special ہے different ہے باقی memories جو ہم نے Discuss کیا ہوں first in first out جو memory ہے basically ہم کہہ رہے ہیں کہ ایک buffer کے طور پر جب دو devices جو ہیں اپس میں communicate کر رہی ہیں اور وہ جو information ہے وہ ایک rate پے send or receive نہیں کر رہی ہیں that means ایک device fast ہے دوسرہ slow ہے یا پہلی والی slow ہے دوسرہ fast ہے تو وہ ایک rate سے data communicate نہیں کر پاہیں گے ایک ہم نے example لیتی کیبوٹ کی اور computer کی computer کے ساتھ جو کیبوٹ ہوتا ہے تو کیبوٹ کا جو data rate ہے جو send کر رہا ہے وہ depends کرتا ہے آپ کے user پر this rate سے وہ type کر رہا ہے تو اسی rate سے information جو ہے computer کے تک جاری ہے جو microprocessor چیپ ہے وہ کافی fast ہے بہت تیزی سے information کو process کر رہا ہوتا ہے so basically ان دونوں کے درمیان ایک کیبوٹ buffer ہم استعمال کرتے ہیں جس میں یہ information جو کیبوٹ now key is pressed کرتے ہیں this information کیبوٹ buffer میں کیا store ہوری ہوتی ہیں microprocessor جب اس کو جو ہوتے information کی وہ buffer سے information اٹھا رہا ہوتا ہے so in this میں ہم نے بات کی تھی کہ جو device data produce کر رہی ہے جس sequence میں produce کر رہی ہے اسی sequence میں information buffer میں لکھنی ہوگی اور اسی طرح جو device information کو consume کر رہی ہے اسی sequence میں وہ information پڑھنی ہوگی so basically جو buffer ہے اس کی limited locations ہیں that means limited memory has storage space ہے so جو ہی information اس میں ڈالیں گے اس کو update بھی کرنا ہے جو information اسے نکال لی باقی information وہ buffer میں update ہوگی so the vacant spaces ہیں ان میں مزید information ڈالی جائے تو ایک طریقہ تو یہ تھا کہ ہم shift registers کی مدد سے یہ first in first out memory بنا لیں اس میں an example لی تھی کہ اگر 4 bit information store کرنی ہے اور art اس کسم کی informations nables ہیں so basically 4 8 bit shift registers جانی ہوگے وہ اپس میں parallel میں اپنے connect کر لینا ہے input پہ ایک latch ہوگی output پہ ایک latch ہوگی so جو بھی consumption device ہے جو information produce کر رہیے وہ اس input latch میں information ڈالے گی those input latch input latch سے information وہ shift register میں جاگے store ہو جائے گی buffer کے output پہ اس طرح جو output پہ دوسری latch لگی ہوئی ہے basically جو بھی consumer device ہے وہ جو buffer سے information پڑے گی shift register سے that information latch میں آجائے گی and latch سے پڑے ہوگی so basically control circuit which آئے join buffers کو control کرے گی and shift register میں shift کر رہے اس کو بھی control کیا جائے گا shift register سے جو ہم first in first out memory implement کر رہے ہیں یہ بیسیکلی specialized uses کے لی استعمال ہوگی آپ نے کوئی digital system design کیا a specific application کے لیے جہاں memory آپ نہیں use کر رہے ہیں بہت come use کر رہے ہیں اوڑر آپ کو a fixed amount of buffers بیس چاہئے اوڑر بیسیکلی اس قسم کے first in first out memory use ہوگی computer میں جس ہم نے بات کی تھی کہ جو کیبورڈ ہے اس کا ایک بافر ہوتا ہے تو وہ بافر کیسے implement ہوگا وہ of course shift register سے implement نہیں ہوگا computer میں جو ram ہوتی ہے اس میں a space جو ہے وہ ہم reserve کر لیتے ہیں اس بافر کو implement کرنے کے لیے کیونکہ یہ first in first out memory میں ram میں implement ہوئی ہے تو بیسیکلی آپ کو دو register چاہئے جو دو end جو بافر کے دو end ہیں جو آپ data add کرتے ہیں that is buffer in دو register جو ہے ان میں addresses store ہوتے buffer in and buffer out کی location پر اب جون جو آپ data پڑھے ہیں buffer سے اور جس طرح آپ data ڈالنے ہیں buffer میں تو ان addresses کی locations change ہو رہی ہوتی جو registers جو ان کو point کرے ہوتے ہیں ان کے contents update ہوتے رہتے ہیں ہم نے discussion کی تھی last in first out memory پے بھی last in first out memory جو ہے بیسیکلی last information ہم store کر رہے جو پہلے information گئی وہ last میں پڑھیں گے basically آپ نے different subject میں پڑھا ہوگا programming میں stack ہم use کرنے stack جو use کرتے ہیں اس میں basically کیا کرنے جب ایک program کسی سب routine کو call کرتا ہے تو کچھ parameters pass کرنے ہوتے ہیں کچھ parameters receive کرنے ہوتے ہیں یہ parameters کیسے pass ہوں گے basically stack میں store کیا جاتے ہیں جب بھی routine call ہوتی وہ routine parameters کو stack سے نکالے گی اور ان کو use کرے گی stack organize کیسے ہوتا ہے let's say 3 values آپ نے store کرنے ہیں تو پہلے ایک value store ہوئی اس کے پت دوسری اس کے پت تیسری سب سے پہلے کونسی value آپ routine کرنے گے جو تیسری والی end میں گئی تو اس کو ہم نے کہتے ہیں جیسے ایک plates کا stack ہے اس طرح آپ ازیم کرسکتے ہیں تو پہلے ایک plate رکھی پھر دوسری رکھی پھر تیسری رکھی تو سب سے پہلے جو plate اٹھائیں گے وہ سب سے اوبر والی ہم نے last lecture میں بھی Discuss کیا تھا shift registers کو آپ use کر سکتے ہیں یا memory میں بھی اس کو use کر سکتے ہیں تو پہلے ہم بات کرتے ہیں shift registers کو use کرتے ہوئے اس قسم کا stack کیسے بنائیں گے basically let us suppose کہ ہم 5 bite values جو ہیں وہ store کرنا چاہ رہے اسی last in first out form میں so basically جو stack ہے اس کی 5 locations ہوں گے اب کیوں کہ shift registers use کر رہے تو 5 8 bit parallel in parallel out shift registers use کریں گے so ہر shift register کے جو output ہیں next shift register کے input کے ساتھ connect it ہے so پہلے والا shift register اس کو ہم کہہ دیں گے stack top تو کوئی بھی information جو store کرنی parallel input پہلے ہم apply کریں گے پہلے shift register میں store ہو جائے گی اب جو ہی ہم دوسری value store کرنی وہ بھی پہلے والے shift register کے input پہلے ہم apply کریں گے جو ہی clock signal آئے گا پہلے shift register میں store ہے وہ parallel out shift ہو جائے گی اور جو دوسرہ shift register جس کا ساتھ یہ دونوں connect it ہے دوسرہ register میں information store ہو جائے گی اور جو نئی information ہے وہ پہلے والا shift register میں store ہو جائے گی اسی طرح تیسری byte اگر آپ نے store کرنی ہے وہ again جو پہلے والا register ہے اس کے input پہ apply کریں گے clock signal apply کریں گے جس کی وجہ سے جو دوسرے shift register میں value ہے جو نئی value ہم نے store کرنی ہے وہ پہلے shift register میں آجائے گی اسی طرح کیونکہ 5 values کا stack ہے اس کی جو depth ہے 5 byte کی ہے یا 5 locations کی ہے تو 5 ہی values اس میں آئیں گے اس کے بعد آپ اگر retrieve کرنا جائیں تو سب سے آخر میں جو value store کی تھی اور of course پہلے والا shift register میں ہوگی وہ آپ پڑ سکتے ہیں اسی طرح سیکنڈ اگر پڑنی ہے تو وہ سیکنڈ والا shift register میں جب آپ پہلی وہ سیکنڈ والا shift register میں value ہے وہ وہ پہلے والے میں آجائے گی اس طرح تھی وہ دوسرے میں آجائے گی تو that means پوری values جو وہ shift ہو رہی ہیں ایک register سے دوسرے register میں جیساگی دیگرہ میں دکھایا گیا 5 shift register جو اس کیے گئے 5 shift register جو انہیں سارے 8 bit کے ہیں سو پہلے والا shift register اس کو ہم stack top کیا رہے ہیں وہ of course سیکنڈ والے کے ساتھ connect it ہے سیکنڈ third کے ساتھ left side پہ ایک control stack control block دکھایا گیا جو کہ this stack کو control کر رہا ہے clock signals میں دکھایا گے exact detail اس میں نہیں دکھائے گی کہ جو output ہے وہ input کے ساتھ کیسے connected ہے اور اگر دوسرہ جو register اس کے contents واپس 1 میں shift کرنے تو اس کے output of course input کے ساتھ connected ہوں گے وہ detail نہیں دکھائے گی یہ سمplی بلک diagram دکھایا گیا جو پہلے والی value store کرنی وہ پہلے input output shift register اس کے input میں apply ہوگا clock signal apply کریں گے یہ information store ہو جائے گی دوسری value جب store کرنی ہے وہ بھی اس کے input میں apply کریں گے جو ہی clock signal apply کریں گے پہلے والے shift register کے contents دوسرے میں shift ہو جائیں گے اور پہلے والی value پہلے والے shift register میں store ہو جائے گی اسی طرح جب ہم نے ایک value پرنی ہے تو پہلے والے shift register کے contents پرنے گے جو stack control وہ second والے shift register شفٹ کر دے گا پہلے والے shift register میں ابھی ہم نے last in first out memory کو دیکھا اس کا diagram block diagram دیکھا جو ہم shift register کی مدد سے implement کر رہے دوسرے جو طریقہ جو computer میں use ہو رہا ہے وہ بیسکلی ہم memory کو ram کو use کرتے وہ stack کو implement کرتے ہیں again ایک ram کا portion ہم reserve کر لیتے ہیں stack کو implement کرنے کے لیے ایک register ہے جس کو stack pointer کہتے ہیں اس میں جو contents وہ بسکلی special area کا memory کا جہاں stack ہم نے reserve کیا ہوا جس area کو ہم نے stack کے لیے reserve کیا ہوا یہ جو stack pointer register ہے یہ بیسکلی ہمیشہ stack top پے point کر رہا ہوتا that means اس جگہ میں information آپ لکھ سکتے ہیں یا ایدر سے ہم پڑھ سکتے ہیں جو ہی آپ information ڈالیں گے store کریں گے stack میں اس کے contents میں update ہو جائیں گے وہ next location میں point کرے کا جہاں مزید information ڈال سکتے ہیں جب آپ information پڑھتے ہیں تو stack pointer کی contents یہاں تو پہلے update ہوں گے increment ہوں گے and decrement ہوں گے now value پڑھیں گے so that means stack pointer stack register ہمیشہ ایک اسی location پہ point کرا stack کی جو کہ stack top ہے جانس آپ information ڈال سکتے ہیں جو آئی دیکھتے ہیں اس کا diagram memory میں stack کیسے implement ہو رہا diagram میں ایک ram based stack دکھائے گے جس کے 7 locations location 0 1,2,3,4,5 and 6 اسٹاکت میں 4 locations پہ کچھ contents پڑے ہوئے so stack top جو ہے اس پہ value 3 پڑے ہوئے اس کے بعد 9 ہے اور اس کے بعد 4 اور last میں 7 پڑا ہوئا so 7 جو value ہے وہ stack کی bottom پہ پڑے ہوئے stack pointer جو register ہے اس کے contents جو وہ basically address ہے stack top کا so currently stack top جو ہے اس کا address 3 ہے جہاں value 3 store کی ہوئے اگر ہم نے یہ information پڑھنی ہے تو جہاں بھی stack pointer پہنٹ کر رہا ہے that means address 3 وہ اسے میں information پڑھ لیں گے اگر ہم نے value store کرنی ہے تو stack pointer کے contents update ہوئے that means 3 سے 4 ہو جائیں گے اور اس جگہ میں ہم information لکھتے ہیں آئی اب ہم ایک نئی top کی بات کرتے ہیں memory expansion basically جب آپ ایک digital system design کرتے ہیں تو اس کی اپنے ایک memory requirements ہوتی ہیں کوئی بھی digital system ہوگا اس کو ram چاہے اس کو perhaps buffers چاہے اس کو stack چاہے memory کتنی چاہے ram کتنی چاہے basically دپنٹ کرتا ہے کہ کتنا لنبا program ہیں یا کتنی instructions ہیں جو آپ کے digital system نے execute کرنے یا کتنا data ہے information کے ساب سے وہ کتنا پڑا ہوا so ram کا size ان چیزوں پر دپنٹ کرے گا اسی طرح ram جو ہے basically دپنٹ کرتا ہے کہ جب آپ system کو boot کرتے ہیں تو آپ نے کیا instructions دینی ہے so of course ram چھوٹا ہوگا اگر زیادہ instructions ہیں ram بڑا ہوگا اسی طرح آپ نے کوئی table implement کرنا ہے بہت سارے tables implement کرنا ہے تو آپ کو بہت سارے ram space چاہی ہوگی اگر ایک دو tables ہیں تو ایک چھوٹی ram سے آپ کا کام ہو جائے گا اسی طرح آپ نے buffers implement کرنے دپنٹ کرتا ہے آپ کی system کی requirements کیا ہیں کتنی devices ہیں جو data communicate کر رہے ہیں so if you have a lot of devices تو آپ کو بہت سارے buffers چاہے ہیں اگر data کا سائیز زیادہ ہے that means اس کا rate زیادہ ہے زیادہ data transfer ہو رہا ہے تو آپ کو buffer کی ڈپت بھی زیادہ چاہے تاکہ بہت سارہ data temporarily اس میں store کیا جا سکے اس دن اگر stack implement کرنا ہے تو اس کے لیے آپ نے last and first out memory جو ہے وہ بھی implement کرنی ہوگی دو طریقے ہم نے پڑے تھے یاں تو shift register implement کر سکتے ہیں یاں ram کے طور پہ implement کر سکتے ہیں basically یہ ساری جو ram ہے یہ آپ کس فوم میں implement کریں گے کس فوم سے مراد یہ ہے کہ جب آپ market سے مدب کو ایک ram پرچیز کرتے ہیں تو اس کا تو fix size ہے آپ کی requirement وہ different ہے تو آپ ضروری نہیں کہ جو market سے آپ کو memory ملتی وہ اسی requirement پہ پورا ہوتریں جس اگر ہم نے بتا ہے کہ آپ کے system کی requirement وہ different ہے اور جو memory جس فوم میں available ہے وہ of course different ہے memory جو اب تک ہم نے discuss کیا ہے وہ basically اس کے ایک تو characteristics ہیں کہ بھی وہ ہم نے read write ہونی چاہئے دینسٹیوز کی زیادہ ہونی چاہئے non-volatile ہونی چاہئے اس کے علاوہ جو ہم نے parameters show میں discuss کیا تھے کہ کتنا دیتا وہ store کر سکتی that means capacity capacity basically دپن کرتی ہے data unit size پر let's say ایک bit پر location store کرتے یا nable store کرتی ہے یا byte store کرتی ہے اور locations کتنی ہے memory کی let's suppose کہ آپ کی system کی requirement جو ہے وہ ہے 4 kilo words that means 4 kilo locations ہاں اور ہر location میں ایک word store کرنے that means 16 bit store کرنے اب memories روی نہیں ہے کہ مطلب ہر کسم کی requirement کو full fill کرے جو memory let's say available ہے وہ 4 kilo byte کی memory ہے آپ نے اس 4 kilo byte کی memory کو کیسے use کرنے تاکہ آپ کی system کے جو requirement ہے 4 kilo words کی وہ full fill ہو basically یہ کرنا ہوگا کہ 2 آپ کو 4 kilo byte کی memories چاہئے ایک ہی location پہ 2 byte store ہوں اس طرح آپ کی جو system کی requirement ہے وہ full fill ہو جائے گی 4 kilo word کی اس طرح اگر let's say آپ کا ایک اور digital system ہے جس کا program جو instructions وہ 8 kilo byte پے آرہیں اب memory جو available ہے وہ 4 kilo byte کی ہے تو اب کیا کریں گے basically again 2 4 kilo byte memory chips کنک کریں گے اور وہ اس طرح کنک کریں گے کہ وہ total memory 4 kilo byte بھنے نہ کہ 4 kilo word بھنے تو وہی 2 chip ہیں ان کو آپ data unit جو size ہے وہ bytes اگر word کرنا چاہئے تب بھی آپ کنک کر سکتے ہیں اور اگر total number of locations increase کرنا چاہئے وہ بھی آپ کر سکتے ہیں تیسر ہے ایک important جو issue ہے وہ basically بیس address دیکھیں اب کوئی بھی memory جو ہم implement کیا ہم کا structure ہم نے دیکھیں ہم کہیں گے پہلی location ہے اس کو address 0 ایک address 1 last location اس کا address n ہو گیا تو let us suppose دو identical memories ہیں وہی 4k کی example 4 kilo byte کا 1 chip ہے 4 kilo byte کا 2 chip ہے دونوں کی پہلی locations ان کا address 0 ہے next کا دونوں chips میں address 1 اسی طرح last address وہ 4k والا address ہو گا اب basically جب آپ system میں یہ memories کنک کر رہے ہیں تو پھر actually ان کا address کیا ہونا چاہئے جس ہم نے دوسری example کنسر کی تھی کہ let us suppose جو program instructions ہیں وہ 8 kilo bytes میں آ رہے ہیں تو that means دو 4 kilo byte کے memory chips وہ آپ اس طرح کنک کریں گے تاکہ total space آپ کے بس memory space وہ 8 kilo byte ہو جائے تو that means پہلی 4 kilo byte chip اس کا base address 0 سے start ہو گا اور وہ 4k تک جائے گا اسی طرح جو 2nd 4k chip اس کا 4k کے next location ہے اس سے 4k plus 1 اب کیلے 4k plus 1 address شروع ہو گا اور 8k پہ ختم ہو گا تو انشلی جس ہم نے دیکھا implementation میں بھی ہم دیسکس کرتے رہے ہیں کہ کوئی ہم address allocate نہیں کیا ہوا ہم سمplی یہ کہہ رہے ہیں کہ پہلے جو address ہے وہ 0 ہے تو یہ base address کیسے ہم assign کریں گے یہ بسیکلی assign ایسے ہوتا ہے کہ ہم ایک وقت میں بسیکلی ایک location کو access کر رہے ہیں that means 8 kilo byte جو memory ہم نے implement کیے using those 2 4 kilo byte chips let's say ایک ایسا address ہم سلک کریں جو 4 kilo byte chip میں ہے that means 2nd 4 kilo byte chip ہم نے select نہیں کیا اس کو access نہیں کر رہے جسے کہ آپ کو معلوم ہے ہر memory کا ایک chip select line ہوتی ہے جسے آپ ایک memory کو select کر رہے ہیں اگر location جو ہے پہلی memory میں تو آپ اس memory کو select کرنا that means اس کا chip select جو signal ہے وہ active ہوگا اور دوسری جو 4 kilo byte memory ہے جو کہ specify کر رہے ہیں address کر رہے ہیں وہ selected نہیں ہے اسی طرح کوئی اور address ہے جو 6 kilo byte location میں آہ جو address ہے 6k کا ہے اب یہ جو address 2nd والے chip میں ہے پہلے والے chip میں یہ address نہیں ہے so that means پہلے والا chip وہ deselect کر دی اس کی chip select line inactive ہے اور دوسر والا chip اس کی chip select line activate ہوگے اسے پہلے ان پہیں پہلے ان پہلے بہت بات کرتے ہیں memory map کی memory map بیسکل ہم کہتے ہیں کہ جو بھی system ہے digital system ہو جائے یہ computer system ہے اس کی total memory requirement کتنی ہے جس اگر ہم نے شروع میں بتایا تھا کسی digital system میں آپ کو ram بھی چاہے rom بھی چاہے buffers بھی آپ نے implement کرنے ہیں آپ کو stack بھی implement کرنے ہے so different type کی چیزیں آپ نے implement کرنے ہیں اب یہ جتنی بھی ram ہے جتنی بھی rom connect کیا یا stack connect کیا یا buffers connect کیا ان ساروں کے ہر ایک unique address پر یا تو ایک ram سلکت ہو جائے گی ram location سلکت ہوگی ram location سلکت ہوگی ram location سلکت ہوگی ram location سلکت ہوگی یا buffer کی one location سلکت ہوگی so basically یہ ram rom buffers جو ہیں کین addresses کیلی سلکت ہو رہے ہیں یہ کیسے ڈیٹرمین کریں گے یہ ایک memory maps ہے ڈیٹرمین ہوگے جب بھی آپ digital system ڈیٹرمین design کرتے ہیں تو آپ نے ان کی location بتانی ہوتی ہے so let us suppose جس کی total memory one megabyte ہے that means one meg locations ہیں جو digital system اس میں جو بھی controller chip لگا ہوا ہے جس کو a microprocessor کہیں گے basically اس نے سارے addresses generate کرنے ہیں so microprocessor کی capability ہے ایک خاص digital system میں کہ وہ one mega locations کے addresses generate کر سکتا ہے آپ کے computer system میں بھی ایک microprocessor لگا ہوا ہے وہ different addresses generate کرتا ہے تو جتنے بھی اس کے addresses ہیں درس رینج ہے وہ determine کرتا ہے کہ کتنی memory اس کے ساتھ آپ کنک کر سکتے ہیں so basically memory map میں rom کی ram کی buffers کی جو بھی devices memory devices یا storage devices آپ نے اس system کے ساتھ جوز کرنی ہیں ان کا map ہوگا کہ کہاں سے شروع ہو رہی کہاں پہ یہ ختم ہو رہی and of course اس کا size کتنا ہے آئی دیکھیں memory map ایک computer system کا یا ایک digital system کا جس کی total addressable space وہ one megabyte ہے دیگرام میں ایک digital system کا memory map دکھایا گیا جس کا size ہے one megabyte اب اس one megabyte memory space کو ہم نے divide کر دیا ہوئے into 16 64 kilobytes spaces یا blocks جس اگر دیگرام میں نظر آئے پہلا جو 64 kilobytes کا block ہے وہ ہم نے reserve کر لیے rom کے لیے ابزری نہیں کہ 64 kilobytes کی rom لگائی جائے کم بھی لگائی جا سکتی ہے یہ سمplی ہم نے one megabyte space کو blocks میں divide کیا ایک block 64K جو ہم reserve کر لیے rom کے لیے next block دکھایا گے وہ again 64 kilobytes کا ہے اور یہ ہم نے data کے لیے reserve کیا ہے so data اگر store کرنا ہے یا change کرنا ہے تو ادھر ram لگ جائے گی اگر permanently data store کرنا ہے so ایک ادھر rom لگائے جا سکتی ہے اس دن جو third block 64K اس میں ہم نے بتایا ہوا کہ یہ program block ہے that means instructions ہیں program ہم store کر رہے ہیں so that means ہم نے another 64K block دکھایا گے اور جس پہ ہم نے لکھا ہوا ہے stack basically 64 kilobyte کا stack ہم نے implement کیا ہے تو جو بھی information store کریں گے or retrieve کریں گے وہ اس location پہ ہوگی stack top جو ہے وہ اسی location کو point کر رہا ہوگا beach میں بہت سارے blocks وہ vacant ہیں ان میں ہم نے basically نہ کوئی ram کو نک کی ہے نہ کوئی rom کو نک کی ہے either ram add کر سکھنے that means ram ہم increase کر رہے ہیں right-hand side پے ہم نے کچھ numbers لکھے ہیں جو کہ represent کر رہے ہیں in different blocks کے base addresses so سب سے پہلے 64K کا جو rom کے لیے ہم نے reserve کیا ہوا اس کا start address ہے وہ hex میں 00000 دیا ہوا so ساری 20 bits جو ہیں کیونکہ 1 megabyte ہے 1 megabyte کو address کرنے کے لیے 20 address lines چاہیے so ساری کی ساری اگر 0 ہوں گی that means ہم اس پہلے والے block کو access کر رہے ہیں دوسر جو block ہے اس کا start address جو ہے hex میں 10000 دیا ہوا so that means 10000 جو ہے اس کا start address ہوگا اس سے اوپر جو addresses ہیں 20000 تک یہ سارے اس block میں ہوں گے جس کے دیگرم میں دکھائے گے ہے تیسا جو block ہے جہاں program store ہوگا یا ram لگے گی اس کا start address جو ہے وہ hex میں 20000 سے start ہوتا ہے اس block جو end address ہے وہ 30000 minus 1 سے ہو رہا ہے کیونکہ 30000 جو ہے وہ next block کا start address ہے اسی طرح جو last block 64 kilobyte کا جس میں stack ہم نے implement کیا ہوا اس کا start address جو ہے f0000 جو کے hex میں دیا ہوا ابھی ہم نے ایک memory map دیکھا جو کے a digital system کی total memory requirement ہے computer میں بھی اسی طرح ہوگا microprocessor ہم نے بتایا ہے کہ وہ addresses جنویٹ کرتا ہے اس کے address range کے ہے وہ total memory requirement specify کرے گا اس کے اس میں microprocessor or digital system کا جو controller ہے وہ 1MB 1MB کہ addresses جنویٹ کر رہا ہے ہر address پر ایک byte ہم basically store کر رہے ہیں اب ہم دیکھتے ہیں کہ different ROM ram stack ہم نے دکھائے تھا ہے ان کو implement کیسے کریں گے ہم اسی طرح دیکھتے ہیں ایک پہلے ایک چھوٹی سے ایک سامپل لیتے ہیں let us suppose کہ ہمارے پس دو memory chip ہے اور دونوں memory chips وہ 4 location کے ہیں ہر location 4 bit store کر رہے ہیں so basically پہلے جو chip ہے 4 location 4 bit 4 nable store کر رہا ہے دوسا بھی chip یہی کام کر رہا ہے 4 location ہر location پر 1 nable store کر رہا ہے اگر ہماری requirement ہے سسٹم کی کہ 4 location پر 8 bit store کر نہیں یا byte store کر نہیں ہے so basically کیا کریں گے اگر آپ memory کو visualize کریں اس کے address signals تھے اس کے data signals تھے read write line تھے اگر ram ہے اور chip select line تھے so اگر ہم نے ان دو chips کو ایسے connect کرنا ہے کہ ہر address پہ بجائے کہ ایک byte ہم access کریں read write کر سکیں ایک rather nable کر سکیں ہم byte کرنا چاہے so basically connection کیا ہوگا چارو جو address دونوں chips کے وہ simultaneously access ہونے چاہیں so that means address lines now address lines کتنی ہوگی کیونکہ ہر چپ میں 4 locations ہے تو 2 bit addresses کے ہیں so a0 a1 ہم دو address lines کہیں گے اگر دونوں 00 پہلے location select ہوری ہے 01 ہے دوسی location 10 ہے 3rd location 11 جو ہے 4th location so دونوں chips کے دو address lines وہ اپس میں connect کر دیں گے so that means 00 ہے تو دونوں chips کی پہلے locations ہے وہ simultaneously select ہو جائیں گی اگر دونوں address lines پہ 11 ہے تو آخری والے جو locations ہے دونوں chips کی وہ simultaneously select ہو جائیں گے data lines جویں وہ کتنی ہوگی پہلے جو چپ ہے اس کی 4 data lines ہونگی کیونکہ ہر location میں ہم 4 bits store کر رہے ہیں so پہلے location کو select کیا اوڑا information ہم نے اگر پرنی ہے read کرنی ہے so 4 data lines کیتروں ہم read کریں گے so again کیونکہ ہم نے implement کرنی ہے 8 bit memory that means ہر location میں 8 bits ہم read write کرسکیں تو data lines کو کیا کریں گے ان کو آپس میں connect نہیں کریں گے ان کو separate رہنے دیں گے so ایک جو چپ ہے وہ low nible کو specify کرے گا یہاں access کرے گا اور دوسا جو چپ ہے وہ upper nible کو upper 4 bits کو access کرے گا so address lines آپس میں ملادی data lines کو ہم separate independent read write لائنکہ کیا کرنا ہے basically ہم جو ہے دونوں memories کو اس طرح use کرنا چاہے ہیں جب ہم read کریں تو دونوں location سے دونوں memory کی پہلی location let سے simultaneously information read کرسکیں اس طرح اگر ہم write signal کو activate کرتے ہیں that means جو بھی selected address ہے دونوں memories کے او در ہم simultaneously 8 bit value وہ licks again so basically read write جو signal ہے دونوں memories کا تو دونوں memories یہاں تو read کر رہی ہوں گی یہاں write کر رہی ہوں گی اب رہ گیا chip select دونوں جو chips ان کے chip select signal وہ آپس میں کیسے connect کرنا ہے جس طرح ہم نے بتایا ہے کہ دونوں memories کی location simultaneously access ہونی ہے that means دونوں کو simultaneously select کرنا پڑے گا that means chip select signal بھی دونوں کا آپس میں connected ہے so summary کیا ہوگی دو chips ہیں 4 locations each 4 bit per location ہم نے memory کیا implement کرنی ہے 4 location and 8 bit per location so that means دونوں کے address lines آپس میں connect کر دیے data lines وہ separate رکھی read write line جو ہے آپس میں connect کر دیے آئی دیکھتے ہیں کہ ہم 4k memories کے ساتھ یہ کیسے connect کر رہے ہیں diagram میں ہم دیکھتے ہیں different addresses address lines data lines آپس میں کیسے connected ہیں diagram میں آپس میں connected ہیں ان دو 4 kilobyte rams کو اس طرح کنک کیا تاکہ یہ 4 kilolocation میں ایک word کو store کریں so 4 kilow word ram basically ہم implement کرنے ہیں 4 kilobyte ram جو ہے اس کی 12 address lines ہے a0 سے لیکے a11 تک 4k locations کو access کرنے کے لیے basically آپ کو 12 address lines چاہیں so کیونکہ دونوں 4 kilobyte 12 address lines ہے a0 سے a11 اب ہر location پہ 8 bit store ہو رہی ہیں اب کیونکہ ہم 16 bit store کرنا چاہے ہیں that means پہلی ram جو ہے left hand side پے جس کو ہم upper byte کرنے ہیں اور دوسی جو ram ہے right hand side پے جس میں ہم نے lower byte store کرنے ہیں دونوں کی ایک جسی word store کرنے ہیں word کو access کرنے ہیں that means upper جو byte ہے او در سے ہم 8 bit information کو access کر سکیں گے اور اسی تان lower byte ہے او در بھی ہم 8 bit information کو access کر سکیں گے دونوں کی جو data lines ہیں وہ اپس میں connect نہیں کی گیں so lower جو byte ہے وہ ہمیں provide کرنے ہیں information d0 سے d7 lower byte اور جو upper byte ہے وہ ہمیں information provide کرنے ہیں d8 سے d15 یا upper byte information ہمارے پاس available ہے read write line کیونکہ دونوں chips میں جو upper byte ہے lower byte chip ہے دونوں میں information simultaneously ہم نے read کرنے ہیں ہم نے write کرنے ہیں therefore read write lines دونوں chips کی اپس میں connected ہیں اگر read کرنے گے دونوں سے read کرنے گے اگر write کرنے گے دونوں میں write کرنے گے chip select جو signal ہے active low دکھائے گے وہ بھی دونوں chips کے ساتھ connected ہے جسکے میں ابھی بتایا ہے ایک chip میں select ہوگی وہی memory location دوسرے میں select ہوگی اور دونوں کو simultaneously ہم نے access کرنے ہیں دونوں جو ram سے وہ اسی صورت میں simultaneously access ہوں گی جب آپ دونوں کو اکٹھہ select کریں گے selection کیسے ہوگی chip select signal کے through اب ہم بات کرتے ہیں کہ ہم دو memory chips کو اپس میں کیسے connect کریں گے تاکہ total number of locations وہ بھڑ جائیں وہی memory map کو اگر آپ دیکھیں اس میں 64 kilobyte ہم نے block reserve کیا program memory کے لئے let us suppose کہ ہمیں اپس 232 kilobyte chips ہیں ہم نے implement کرنے 64 kilobyte memory space جہاں ہم نے program store کرنا تو یہ 232 kilobyte chips کو کیسے اپس میں جوڑن گے تاکہ ہمیں اپس 64 kilobyte ram space آجا بسکلی اس کو سمجھنے کے لئے again وہی example ہم دسکتے ہیں let us suppose کہ آپ کے پاس وہی دو chips ہیں 4 locations ہر جو chip ہے وہ 4 bits کو store کر رہا ہے بسکلی ہمارے پاس جو ہم نے کرنا ہم نے 2 4 location chips کو اسے جونا تاکہ ہمیں پاس 8 locations آجا ہر location میں 4 bits store ہوں again واپس وہی address lines کے بارے میں دھرہ lines کے بارے میں سوچنے greet right line and chip select line دونوں جو 4 location chips جو 4 bit data store کریں ہر location میں 2 address lines اور 4 data lines ہیں اب کیونکہ ہم نے memory کی locations کو بھانے expand کرنا so address lines جو ہیں وہ بھڑ جائیں گی 4 سے 8 ہو رہیں کتنی address lines چاہیے basically 4 سے 8 locations کو access کرنے کے لی آپ کو basically 3 address lines چاہیں so پہلے memory کی جو 2 address lines ہیں اور دوسی memory کی 2 address lines ان کو اپس میں connect کر دانا so let's say 00 جو ہم بھیجیں گے تو 00 پہلی memory کا پہلے location بھی سلک کرے گا اور دوسی memory کا پہلے location بھی now we know کہ at any given time ایک ہی address سلکت ہونا so ان دونوں میں differentiate کیسے کریں گے کہ جو 00 addresses پہلی والے کا ہیں دوسے والے کا basically ہم chip select signal کو use کر رہے ہیں chip select signal جو ہے وہ basically جو تیسری address line جساکہ ہم نے بتایا تھا کہ memory addresses دبل ہو رہے ہیں 4 سے 8 ہو رہے ہیں تو ہمیں 3 address lines چاہیے a0, a1 and a2 جو a2 address line ہے یہ کہاں سے آئے گی basically جو آپ کا micro processor ہے اس کی address اس کی address output pins ہیں او در سے آ رہی ہیں تو یہ جو chip select ہے پہلی memory chip کا دوسے memory chip کا وہ اس a2 line کے ساتھ connect it ہو گا so پہلے والا جو chip ہے وہ let's say chip select جو ہے active low ہے so a2 line اس chip select کے ساتھ دیریکلی connect ہو جائے گی دوسرا جو chip ہے اس کا chip select signal a2 line کے ساتھ connect ہوگا through a0 اب آپ دو بارا اس پر اگر a0 0 ہے a1 0 ہے اور a2 0 ہے so basically a0 اور a1 دونوں 0 ہیں تو پہلی location پہلے چپ میں اور پہلی location دوسے چپ میں دونوں select ہو رہیں اب کیونکہ a2 بھی 0 ہے اور a2 chip select lines کے ساتھ connect it ہے تو پہلے والا activate ہو جائے گا that means اس کی پہلی location ہم access کر رہیں دوسرا چپ ہے کیونکہ اس کی chip select line وہ a2 address line کے ساتھ connect it ہے a2 line پہ 0 ہے تو یہ invert کر کے 1 کر دے گا اب chip select کیونکہ active low ہے that means second chip وہ select نہیں ہو رہا so that means 0 0 0 address پہلے چپ کی 4 جس کی location اس کے پہلے address select ہو رہا اس دنہا اگر ہم 0 0 1 apply کرتے ہیں 0 0 that means a0 address line وہ 0 اور a1 دونہو 0 ہے that means theoretically دونہو چپ کے پہلے address select ہونے چاہیں اب a2 کیونکہ 1 ہے تو پہلہ چپ جو ہے اس کا چپ select ان active ہوگا وہ select نہیں ہوگا دوسرا چپ جو ہے اس کے a2 line through a not gate لگی ہوئے so not gate کے output پہ 0 آجائے گا دوسرا چپ select ہو جائے گا so that means 1 0 0 وہ چوتھی location جو ہے select کرا چوتھی location جو ہوگی location جو ہے وہ next چپ میں آ رہی ہیں so basically location مہانے کے لی address lines آپس میں کنک کر دی اور دونوں کے چپ select جو ہے وہ ایک next address line کے ساتھ کنک کریں گے through a not gate data lines کے ساتھ کیا کرنا ہے basically ہم یہ کہہ رہے ہیں کہ ایک location کو at a time select کر رہے ہیں so ایک location کو جب آپ select کریں گے اُدر کتنی information store ہی ہے 4 bits store ہوا ہے so پہلے چپ کی کوئی بھی location select کر لہیں دوسی چپ کی آپ کو 4 bits access ہوں گی read کر سکتے ہیں or write کر سکتے ہیں so دونوں چپ کی 4 bit data lines وہ آپس میں connected ہوں گی so output جو ہے d0 سے لیکے d3 ہوگا now read write کھو کیا کرنا ہے basically ہم یہاں تو read کرتے ہیں write کرتے ہیں دونوں چپ میں ہم read write کر سکتے ہیں so that means دونوں چپ کے read write signals وہ آپس میں connected ہوں گے آئے اس کو دیکھتے ہیں diagram کی شکل میں example جو لے رہیں 4k memories کو ان کو آپس میں connect کرتے ہیں تاکہ ہمار پس total addressable space وہ 8k کی آجائے 8k میں basically 8 bit store کریں location پہ 8 bit store کریں diagram میں 2,4 kilobyte chips دکھایا گے جو کے آپس میں connect کیا گئے تاکہ ہمار پس total memory وہ 8 kilobyte ہو دونوں 4k chips کی address lines وہ a0 سے a11 ہیں وہ آپس میں connected ہیں address line a12 connected ہے chip select signals کے ساتھ پہلے جو چپ ہے اس کے ساتھ درکھلے connected ہے chip select جو signal نے active low ہے so that means a12 line جب 0 ہوگی تو پہلے والا chip select ہو جائے گا اور دوسرے والا جو چپ ہے اس کا chip select signal connect ہوا a12 line کے ساتھ through a not gate so that means a12 line جب 1 ہوگی تو 2nd والا chip select ہو جائے گا so پہلے جو 4k وہ پہلے چپ ایکسس کرے گا اور جو next 4k addresses ہیں وہ 2nd chip ایکسس کرے گا دونوں جو 4k chips ہیں وہ ہر location پہ 8 bit information store کر رہے ہیں so ان کی 8 bit data lines ہوگی جو کے آپس میں connected ہیں کسی ایک instant میں یان تو جو location ہے وہ پہلے چپ میں ہوگی جو access ہم کرنا چاہے جو location جس پے ہم read and write کرنا چاہے یا دوسی چپ میں ہوگی therefore دون کی data lines are connected ہیں کسی ایک interval پہ پہلے چپ سے information ہم access کر سکتے ہیں یا دوسی چپ سے read write جو signal ہے ہم دونوں memory چپ میں یہاں information read کر سکتے ہیں یا write کر سکتے ہیں therefore جو read write signal ہے دونوں کے read write signals کے ساتھ connected ہے ہم نے دو examples دیکھیں اور دونوں examples کیا through ہم basically memory کو expand کر رہے ہیں پہلے case میں data unit size جو ہے اس کو expand کر رہے ہیں دو memory chips کو connect کیا ہے تاکہ ہر location پہ information store ہوری ہے وہ پہلے سے double ہو گئی ہے پہلے اگر 4 bit 8 bit ہوگی اگر 8 bit تو 16 bit کر رہے ہیں دوسی example میں ہم نے دیکھا کہ total number of locations ہم double کر رہے ہیں so basically memory کا size location wise وہ double ہو رہا ہے تیسی یہ location ہوسکتی یہ option ہوسکتی ہے کہ data unit size اس کو بھی increase کرے اور the locations number of locations ان کو بھی increase کیا جائے so basically اگین اسی جو memory chip ہم show میں use کرتے آرے 4 location ہے and each location 4 bits کو store کر رہے ہیں so basically ہم نے جو memory کو expand کرنا ہے تاکہ ہر location پہ 8 bit store ہم بجائے 4 bit کے اور total number of locations وہ بھی 4 کی بجائے 8 ہو جائے and double ہو جائے so basically capacity کو ہم 4 x 4 x 4 chips جائے ان کو connect کیسے کرنا ہے پہلے دو chips جو ہم basically ان کو اس طرح connect کریں گے تاکہ ایک location پہ 4 bits کی جگہ 8 bits access ہو پائیں so ان کی دونوں کی address lines اپس میں connect کر دیں گے data lines 4 4 دونوں کی ان کو separate رکھیں گے chip select دونوں کے اکٹھے جوڑ دیں گے connect کر دیں گے اس طرح read write lines وہ بھی اپس میں connect کر دیں گے next to جو chips ان کی بھی جو address lines ان کی data lines separate ہو گی ان کی chip select اپس میں connected ہو گے read write lines بھی اپس میں connected ہو گے پہلے دو جو chips اور جو next to chips ان کو اپس میں کیسے connect کرنا ہے basically address lines تو common ہے وہ پہلے دو chips کی جو common address lines اپس میں connect کر دیا ہے اوپر دو chips ان کی 8 data lines آریں وہ نیچے جو address data lines وہ مر پس 8 ہے read write line دو نو کی دو جو اوپر ان کی اپس میں connected تھی نیچے جو دو ان کی اپس میں connect تھی ان ساروں جو اپس میں جوڑ دیا ہے جب بھی read کریں گے چارو کی چارو جو memory chips وہ read کے لیے access ہوں گے اور اگر write کرنا چاہیں تو چارو کے لیے access ہوں گے چار سے بھڑکے 8 ہوگی ہیں 8 locations کو access کرنے کے لیے ہمار پس 3 address lines ہونی چاہیں a0 a1 and a2 جو third address bit ہے a2 جس کو ہم کہہ رہے ہیں basically وہ یا تو پہلی دو memory chips کو select کرے گا یا جو دوسری دو ان کو select کرے گا so again دو نو کی chips like commons line وہ جن کی اپس میں chips like lines اپس میں connect کرے گے آئی اس سارے information کو دیکھتے ہیں using 4k byte chips دیگرام میں 8k word ram man کی گئی ہے 4k byte ram chips کے ساتھ so چارو 4k byte ram chips ان کی address lines a0 a1 چاروں کی اپس میں connected ہیں ان چاروں میں ایک ہی location simultaneously access ہو رہے اب کیوں کہ ہمیں data lines پر information صرف ایک ہی unique address سے چاہئے therefore ان میں سے کچھ جو chips وہ ایک دفعہ سلکت ہوں گے اور باقی جو وہ سلکت نہیں ہوں گے 812 جو address line وہ پہلے جو اوپر والے دو دکھائے گے ان کی chips ان کے ساتھ connected ہے ایک ہومی 812 جو 0و ہугا اوپر والے دو بھی سلکت ہوں گے 812 جو 1 ہوجہ نیچے والے دو چپز سلکت ہوں گے data lines کو دیکھا جائے ہم بیسکل ہم اپس میں ایک ہوں گے اوپر والے دو memory chips لوہر بیٹ اور اپس بیٹ دو ہوں گے votes وپر blade ان کی دیتر لائنز آپپس میں جوڑی ہوئی ہیں اور اسی طرح اوپر والا نیچے والا لور بائٹ چپ جوہاں ان کی بھی دیتر لائنز آپپس میں جوڑی ہوئی ہیں کیونکہ ای ٹوالب ایڈرس لائنج جیان تو اوپر والے کو سلک کرے گا یا نیچے والے کو سلک کرے گا that means یہاں تو اوپر والی لکیشن سے انفارمیشن ہمارے پس اویلبل ہوگی ایکسس ہوگی ایک پترکلر لوکیشن سے انفارمیشن ایکسس ہوگی ریٹ رائٹ لائن جیسا کہ دکھائے گے چارو چپس کے ساتھ کنکٹرٹ ہے اب ہم بات کرتے ہیں ایڈرس ڈیکوڑنگ کی ایڈرس ڈیکوڑنگ بیسکلی ہم جو ایڈرس جو کے میکرو بزیسر جنریٹ کر رہے اس کو ایسی طریقے سے ڈیکوٹ کریں گے جس کی مدد سے ہم ایک پترکلر میمری چپ کو سلک کر پائیں آپ ایک ڈیمبل کو سمجھیں ہمیں ایک پاس 12 کیلو بائٹ ریم ہم نے امیمپلیمنت کیوئی ہے with the help of 3 4 کیلو بائٹ چپس 3 چپس 4 کیلو بائٹ کے وہ اپس میں اس طرح کنکٹرٹ ہے کہ ڈیمبل ہمیں اپس 12 کیلو بائٹ آرہے جسکہ آپ کو معلوم ہے کسی ایک وقت میں ایک ہی لوکیشن سے یا ڈیمبل پر سکتے ہیں یا اس پر رائٹ کر سکتے ہیں یا تو وہ لوکیشن پلے والے چپ میں ہوگی جو سیکنوالہ چپ ہے وہ بسکلی 4 کیلو بائٹ پلس 1 لکیشن سے لیکے 8 کیلو بائٹ جو بھی ایڈرس اگر جنویٹ ہوتا ہے تو اس کے لیے اس کو سلکت ہونا چاہئے اسی طرح جو تیسہ چپ ہے وہ سلکت ہونا چاہئے اگر ایڈرس باس پر آیا 8 کیلو بائٹ پلس 1 لکیشن سے لیکے 12 کیلو بائٹ لکیشن تک سو بسکلی یہ لوکیشن ہم کیسے ڈیرمین کریں گے لیکن ڈیرس لائنس پر ڈیرسیز آ رہے ہیں وہ ڈیرسیز جو ہم اس کے آگے کچھ ڈیکوٹر لگا سکتے ہیں 328 224 یا n2m اگر جنوالیس کریں تو n2m ڈیکوٹر کی مدد سے ہم ڈیرس کو دیکھ کے کچھ ڈیکوٹر لائنس کو سلک کر سکتے ہیں اب یہ جو ڈیکوٹر لائنس سلکت ہوں گی n2m ڈیکوٹر کی وہ بسکلی ڈینو چپس کے چپ سلک کے ساتھ ڈیکوٹر ہوں گی اگر ہم ڈیکوٹر ڈیوس دا کرنا جائیں تو ہم ڈیسکیٹ ڈیویٹ ڈلک سے ڈیویٹی ڈیویٹی ڈیویٹ سے ہم ا註س ڈیویٹ ڈیویٹ ڈیویٹ کنات سکتے ہیں ایک ایک ڈیویٹ کیا مدد سے دیکھ رہی ہیں 3 4 ڈیویٹ میں چپس کے مدد سے سلکت ہیں کیسے بھنے گا وہ دیکھ لیں. دیگرم میں 3-4 کلو بائٹ ریم چپز دکھائے گے جوکے اپس میں کونکٹرد ہیں سکتی ہے کہ ہم 12 کلو بائٹ of ریم. تینوں ریمز کے جو ایڈرس لینز ہیں وہ اپس میں کونکٹرد ہے آی 0 سے لے کے آی 11 تک تینوں کی جو ڈیٹا لینز ہیں 8 بیٹ ڈیٹا لینز ہیں ڈی 0 ڈی 7 وہ کومن ڈیٹا بس وہ 1 ہے آی 13 0 ہے. تو یہ چپسلکت 1 لین ایکٹیویٹ ہو جائے گی. چپسلکت 1 لین جو ہے درمیان والا جو 4 کلو بائٹ ریم چپ ہے اس کے چپسلک کے ساتھ کونکٹرد ہے تو آی 12 1 ہوگا آی 13 0 ہوگا. سیکن والا 4 کلو بائٹ ریم چپ سلکت ہو جائے گا اسی طرح اگر آی 12 0 ہے آی 13 1 ہے چپسلکت 2 لین ایکٹیویٹ ہو جائے گی چپسلکت 2 لین جو ہے ڈیٹا لین کلو بائٹ دیکھوڑر کی وہ کنکٹرد ہے لین 4 کلو رایم چپ کی جو کے ایک سٹریم برائٹ پہ ہے. لہذا مجھے آئی ٹھرٹین ٹھون ہو آئی ٹوال ٹزیرہ ہو اس ادرس پہ تیسہ چپ ہم سلک کر رہے ہیں اگر ایک چوتھا 4 کلو بائٹ چپ ہوتا اس کا چپ سلک جو ہے ہم چوتھی جو ڈیکوڈرگی لین ہے تیسہ رہا ہے جو چوتھا 5 ٹھو بائٹ کا چپے ان کے دونوں کے چپ سلک رینڈز جو ہے ڈیکوڈرگی سلک کلو رایم چپے Hills & Clues 3و 8 ڈیکوڈرگی اینپوٹ پہ ہم نے کیوں کہ درس لینز آئی ٹھرٹین آئی ٹھون ڈیکوڈرگی این ڈیکوڈرگی لینز ہے. ڈیکوڈرگی لینزیں آئی ٹھو ڈیکوڈرگی لینز ہے . c s 0 Active Low سے لیکے c s 7 Active Low بیسکلی ہمارے پاس اگر 8 4 کیلو بائٹ کے چپس ہوں اے 13 اے 14 اور اے 15 ایڈرس لائنس کی مدد سے اس 3 to 8 ایڈرس ڈیکوڈر کی مدد سے ہم اے 8 4 کے چپس میں سے ایک پتکلو چپ کو سلک کر سکتے ہیں اگر اے 13 بھی 0 ہو اے 14 بھی 0 ہو اے 15 بھی 0 ہو تو پہلہ والا 4 کے چپس سلکت ہوگا اگر تینو ایڈرس لائنس 1 1 1 ہو تو آخری والا 4 کیلو بائٹ چپ سلکت ہوگا ابھی ہم نے دفنٹ ٹیکنیکس دیکھیں ممبری کو اکسپینٹ کرنے کے لیے سو بیسکلی ہم نے بتایا تھا کہ جب بھی کوئی دیجوٹل سسٹن بھنائیں گے اس کا ایک ممبری میپ ہوگا جس میں ساری جو ریکوائیمنٹ ہے دفنٹ ڈیپ آف ممبرس کی وہ بتائی جائے گی اب اس ریکوائیمنٹ کو اپلیمنٹ کرنے کے لیے بیسکلی جو بھی چپس اویلے بل ہیں ان کو ہم جوس کریں گے اور ان کو دفنٹ ڈیپوں سے کنیک کریں گے یا تو اس کی دیتا یونٹ کی اس دیتا یونٹ کا سائیز ہے اس کو بھڑھائیں گے یا نمبر of locations ہے ان کو بھڑھائیں گے یا دونوں کو بھڑھا سکتے ہیں تو تینو تریکیں ہم نے دیکھے دے دوسرے جو ہم نے بات کی تھی کہ ہر چپ کا ایک بیس ایڈرس ہوتا ہے جس بیس ایڈرس پہ وہ چپس سلکت ہوگا ان کو ہم ایک ایڈرس ڈیکوڑر سرکٹ کے انپوٹ پہ کنک کرتے ہیں اور ایڈرس ڈیکوڑر کا جو ڈیکوڈپوٹ ہے اس کی مدد سے اس پرکلوٹ چپ کو سلک کر دیتے ہیں آئیے اب ایک نیکسٹ طوپک پہ بات کرتے ہیں FPGAs FPGA بیسکلی field programmable gate array ہم نے PLD ڈیوائیسز ڈیسکلس کی تھی PLD ڈیوائیسز کی مدد سے ہم یہاں تو کوئی کامبنیشن سرکٹ کو ہمیں دیکھو courses campنیشن سرکٹ کو م'tین گی، payal device ڈیوائیسز، plah پی روم کشتے تیلہ ہم نےELL mood PLD ڈیوائیسز بیسکلکت ڈیوائیسز ڈیوائیسزو بیسکلکت ہم ٹہیلس راتی ک مدند کر第 Which is wifi output logic module ہے جس کی مدد سے ہم کچھ pins کو output کے طور پر configure کر سکتے ہیں یا input کے طور پر configure کر سکتے ہیں یا and اور gate array پر feedback کر سکتے ہیں یا ہم اس کو اس پورے device کو as a sequential circuit کے طور پر configure کر سکتے ہیں یا as a combinational part جو FPGA ہے یہ اس سے بھی زیادہ ایک versatile device ہے. FPGA میں بسکلی logic units ہوتے ہیں different logics unit وہ ایک 2 dimensional grid کی form میں arranged ہیں اپس میں different column اور row interconnects ہیں. That means ایک logic unit جو ہے کسی دوسرے logic unit کے ساتھ آپ کنک کر سکتے ہیں using these data paths جو کے column اور row کی form میں یہ programmable ہیں آپ کنک کر سکتے ہیں کسی logic unit کے ساتھ جو FPGA کا package ہے اس کی output پہ ہمارے پاس input output modules ہیں جن کو again program کر سکتے ہیں تو آپ نے اگر input signal بھیشنا ہے تو آپ ان میں سے کوئی بھی آپ جوس کر سکتے ہیں اسی طرح اگر output آپ نے signal رسیف کرنا ہے again in input output جو modules ہیں ان کو آپ جوس کر سکتے ہیں so basically FPGA بھی ایک programmable device ہے پر اس میں and or gate arrays نہیں ہیں اس میں logic cells بنے میں جن کو آپ program کر سکتے ہیں logic cells کیسے program کر سکتے ہیں basically وہ look up table کی form میں ہے ایک memory ہے جس کو آپ program کریں گے to implement any functional unit so آئی دیکھتے اس کا block diagram اور اس کے بعد مزید discussion کر پے diagram میں ایک FPGA کا block diagram دکھایا ہے بہت سرے logic blocks ہیں column interconnects اور row interconnects ہیں جن کی مدد سے different logic blocks کو اپس میں کنک کیا جا سکتا ہے package کے border پے آپ کو input output modules دکھا ہے جو کہ program کر سکتے ہیں so کوئی بھی logic block جو ہے اس کو آپ configure کر سکتے ہیں program کر سکتے ہیں کوئی بھی function implement کرنے کے لیے اس کے inputs outputs کسی دوسر logic block کے ساتھ connect کر سکتے ہیں یا چپ کے input output block کے ساتھ connect کیا جا سکتا ہے FPGA کے ہر logical unit میں logical elements ہوتے ہیں جن کو multiple logic elements ہوتے ہیں جن کو ہم independently program کر سکتے ہیں that means different functions ہم implement کر سکتے ہیں اس میں ان functions کو ہم next lecture میں بیسکل دیکھیں گے کہ structure کیا ہے ہر logical element کا اور کیسے program کر سکتے ہیں جس طرح ہم نے pld devices میں دیکھا تھا جو all make circuit تھا اس میں ہمارے پاس ایک flip flop تھا کچھ combinational input تھا ہم ان کو configure کر سکتے تھے تاکہ ہمارے پاس یہاں تو combinational output آجا یا sequential output آجا اسی طرح یہ جو logical elements ہیں اس میں بھی ایک flip flop ہے کچھ combinational part ہے اس میں کچھ اس کسم کا بھی logic ہے تاکہ ہم جو neighboring cells ہیں these logic units ہیں ان سے ہم کچھ input لے سکے یا output ادھر بھی سکیں سو بہرل یہ ساری جو information ہے اور یہ جو ساری circuit رہی ہے ہم next lecture میں detail میں دیکھیں گے next lecture میں ہم اپنی discussion FPGA سے دوبارہ شروع کریں گے next lecture تاکہ اپنے خیال رکھے گا ڈدا حافظ اسلام علیکم