विवाडो खुलने में लगा दिया है या नहीं लगाया कलेंडर कहीं से खोलते हैं मैंने I'll have to see के यहीं पे For some reason विवाडो खुलने में मेरे बास काफ़ी टाइम लेता है Anyway, okay So हमने एक छोटा सा design मनाया विवाडो में जिसमें हमने zinc processor इंस्टेंशिएट किया जो कि ऑलरेडी एक हाड आईपी के तौर पर FPGA पर मुझूद है तो हम यूज़ करना चाहें तो हमें ब्लॉक डिजाइन के अंदर Zynk का प्रोसेसर लगाना बढ़ता है फिर हमने ब्लॉक आटोमेशन यूज़ की जिससे उसने आटोमेटिकली उसको DDR से भी कनेक्ट कर दिया उसने उसको जो भी बोर्ड प्रीसेट्स थे जिनके साथ उसने कनेक्ट कर दिया जो उनसी आया उसने कनेक्ट करनी और उसके बाद हमने ये किया कि हमने LEDs और स्विच्चिस को कनेक्ट किया यूजिंग एक साइज इपियो ठीक है तो कुछ चीजें मैं आपको भी बेगा रहा था कि अभी फिकर ना करें बाद में इसको डिस्कॉप कर लेंगे फॉर एग्स आई क्या चीज है और वह कैसे होता है जिसका में सिंसिस के दौरान ब्रिफिली डिस्कॉप जाता है आज हम उसकी थोड़ी सी डिटेल में फर्दर जाते हैं ठीक है तो एक साइज इपियो के थ्रू अपने एलडीज को कनेक्ट किया अब में स्विचिज को कनेक्ट किया और फिर हमने जायलिंग्स की सॉफ्ट डेवालमेंट किट के अंदर एक कि इस वक्त स्विच पे क्या इनपोट आ रही है और अगर वो किसी स्विच वाली इनपोट वान हुई है तो उससे कॉरेस्पॉर्णिंग एलडी को ओन कर देता था और इसी तरह UART के साथ हमने कनेक्ट किया अपने इसको बोर्ड को यानि जो हमारी USB केबल है वो UART के तोर पे भी यूज़ होती है UART बेसिकली एक सीरियल इंटरफेस है एसिंग्रोनस सीरियल इंटरफेस है जिस पे आप बिट्स को इधर उधर ट्रांसफर कर सकते हैं तो वो भी बना बनाया उसके अंदर मुझूद था जिसके जरिये हमने जो सौफ़वेर था जो आर्म के उपर चल रहा है उसने प्रिंट किया और वो प्रिंट हम देख सकते थे कि अगर मैं पुष बटन प्रेस करूँ वन तो ब अपने फ्री टाइम में करें तो जेनरली टेक्स 15-20 मिनिट्स के जिसमें आपकी एक रनिंग एक्जांपल रेडी हो जाए जिसमें एक सौफ्वेयर पार्ट भी है हर्डवेयर पार्ट भी है और ये आपका एक अच्छा स्टार्टिंग कॉइंट हो जाता है कि अच्छा आप तो आपने अक्सर बीच में हमने AXI का लफस अक्सर यूज़ होते हुए दिखा है तो ये इसके उपर आज हम कुछ डिस्कस करना चाहेंगे लेकिन हम जो लास्ट डिस्कस्शन थी उधर से कॉंटिन्यू करना चाहेंगे जिसमें हमने कहा था कि इंटरफेसिस काम कैसे करते हैं तीके तो इंटरफेसिस होते हैं कि कोई भी multiple devices हैं तो हमने कहा था कि we may start with this कि मेरे पास एक device A है और एक device B है ठीक है A ने B के साथ कोई बात करनी है ठीक है यह पंखा जो आना इसको ऐसा कर दे जवान बन्दा है गरम फोन ओके तो A ने B से बात करनी है किसी तरह तो आपके ज़ेन में क्या आता है अगर A ने B को कोई डाटा बेजना है आप दर्मियाल में तारे अपनी मर्जी से लेट से लगा सकते होते होते हैं, तो क्या करते हैं? एक तार लगा जाते हैं इदर से इदर, ठीक है, इस तार के उपर मैं क्या करता हूँ? मैंने लेट से इदर मैंने कोई बिट्स बेजनी है, 101, 100, 0101, करता करता कोई बिट्स स्ट्रीम है जो मैं इसको बेजना जाता हूँ, ठीक है, multiple bits हैं जो मैं बेजना जाता हूँ, तो मैं एक तार लगा जाता हूँ, और उस पर जब मैंने वन बेजना हो तो मैं उसको हाई कर दो और जीरो करना है तो लो कर दो सबसे पहला तरीका ज़िन में आता था अच्छा वन को हाई कर दो जीरो को लो कर दो मैंने लेकिन आप कितनी दर के लिए है करें ये एक question आजेगा वन को थोड़ी दर के लिए करूँ वो थोड़ी दर कितनी होगी वो micro second होगी nano second होगी pico second होगी या वो कहते है एक second होगी तो ये एक question आजेता है तो एक तरीका यह हो सकता है कि मैं data की जो bit है उसके साथ clock भी बेच दूँ ठीक है तो उस मैं तो मैं यह गरंटी करूँ कि यार जब भी क्लॉक का राइजिंग आ जाएगा, कि मैं उसको क्लॉक तो इस तरह चल रहा है न, तो मैं उसको वालिंग एज पर डाटा लिखवा दिया करूँगा, तो जब तक तुम्हारा राइजिंग आ जाएगा, उस सब तक वो डाटा कुछ तो इसका मतलब है कि मैं आपको एक clock का signal भी साथ भेज रहा हूँ और साथ मैं एक bit भेज रहा हूँ और वो bit जब 1 हुआ करेगी rising edge of clock पर तो इसका मतलब है मैंने आपको 1 भेजा और अगर वो 0 हो गई तो 0 भेजा हूँ तो पहला तो आपको ये जेन में जो खुद common sense से आया हुआ था what if कि मैं data नहीं भेजना चाहता ये भी तो हो सकता है ना कि म ठीक है मेरे बास पीछे से कहीं और से data आ रहा था वो खतम हो गया मैं थोड़ी देर इंजार करूँगा फिर जब वो आ जाएगा तो मैं भेज़ दूँगा तो इफ आई वांट टो कंट्रोल के यार नहीं नहीं नहीं हर क्लॉक एच पर तुम ना उठाओ मैं तो यह भेजूंगा तो मैं बता दूंगा जब मैं नहीं भेजूंगा तो अब मुझे कैसे बताना चाहिए मुझे एक और सिगनल साथ आट कर normally हम इसको कहते हैं valid कि वही data valid भी है यह नहीं है अगर valid है तो इसका मनाई उठा लो अगर valid का signal भी 1 हो और clock का age आ जाए तो इसका मनाई मैंने bit बेजी है और अगर valid का signal 0 हो और clock age आ जाए इसका मनाई मैंने कोई नहीं bit बेजी थी तो बी को समझ आ जाए ��ि उस valid से कि वही bit आई भी है या नहीं है तो इसके ओर नाम भी बात सारे लोग इसको strobe कहा देते हैं, बात सारे enable ही कहा देते हैं, लेकिन अक्सर valid का लफ़स यूज़ हो रहा होता है ऐसे signals के लिए अच्छे हो सित्ता है के बी जो वो निस्पतिन दरा slow device हो और ये दरा fast device हो ठीक है, ये data को पकड़ ही हो लेकिन इसने उसको आगे जिस तरह में इस्तेमाल करना था वो दरा slow इस्तेमाल कह रहा हो, तो ये इसको बताना जाता हो ओ पाई बस कर, ठीक है, बहुत data आ गया है थोड प्राणे नेटा को फिर देने तो यह कैसे बता सकेगी क्या कर सकते हैं अंदर कैसे भी करें इसको बताने का क्या तरीका हो इसको बताने के लिए यहां से हम एक सिग्नल इसको दे सकते हैं कि मैं रेडी हूँ भी नहीं कि हम इसको कह सकते हैं कि मैं रेडी का सिग्नल बता दें क तो इसका मनला है कि मेरे पास जो भी जिदर भी मैंने डाड़ा रखना था वो जगा फुल होगी है ठीक है तो अब जब तक मैं उसको इस्तिमाल न कर लूँ थोड़ी देर इंतजार करूँगा ठीक है तो जा रहे हैं कहीं पर जा बसला आ रहा है वास का क्या चलो ठीक फुल विदर पड़ा हुआ लेव यहां तक चीज क्लियर हो रही ह कि भाई जिस तरह इसने कहा था कि भाई डेटा मैं नहीं भेज रहा, तो ये भी कह सके कि यार मेरे पास जगा खतम हो गया, थोड़ी दिर बाद भेज देना मैं रेडी को दुबारा वन कर दूँगा, ठीक है, तो हो सकता है शुरू में ये रेडी को वन रखे, जैसे ही कुछ और वैलिड भी वान था वैलिड वान था तो इसका मनला है ये डेटा भेज रहा था रेडी वान था तो इसका मनला है कि ये डेटा रिसीफ कर रहा था ठीक है और आविस्टी हम और भी कुछ काम कर सकते हैं मिसाल का तोर पर हम ये कर सकते हैं कि हम एक बिट के बजाएं मल्टि हमारे लोजस्टिक के इश्यूस कुछ हवास क्या बो ज़दा शिर्षिर आ रही है हो गय कि अजय को नोट यह मेरी दाड़ी रस्ते में रिकावर्ड बन रही है कि क्या हो रहा है तो कितनी देर बाद होता है वह एक सेकेंड नहीं कितनी देर के बाद ऐसा होता है झाल अच्छा चलो फिर मेरा गहला चलते रहते हैं इसके साथ ही विजारा करें कि जो भी वज़त है ठीक है तो एक देर सेकंड से तो हमेशाई इतना मस्ता नहीं बढ़ेगा फिर इसका अलगा आप कॉंटिनेस्ट लिए सुनता रहे हैं नो थोड़ी दिर बाद आवाज आना बांदी हो जाए और हम उसको फिर अच्छा ओके तो यहां तक चीज समझागी कि हमने यह कह दिया कि अगर दो किसी entities ने बाचित करनी हैं तो हम simple data बेज दें लेकिन फिर हमने कहा कि अच्छा data का पता कैसे चलेगा कितनी देर इंसार के नाम लेगा हम अच्छा clock भी बेज दें ठीक है ऐसा भी होता है कि हम clock नहीं बेजते कई क्लॉक भेज दिया तो इसका मतलब है कि हार राइजिंग या फॉलिंग एच कोई कन्वेंशन हमने एग्री कर ली और उसके उपर हमारे पास डेटा आ जेगा। और receiver अगर कुछ slow हुआ तो वो भी बता सके कि यार बई मैं ready नहीं हूँ तो हमारे पास data नहीं है। तो अगर इस तरह करें तो हम एक stream of data आगे भेज सकते हैं। तो normally हमारे interfaces में simple दो devices के दर्मियान interface रखना हो तो इस तरह है। दूसरा हम यह कर सकते हैं कि data की width बढ़ा सकते हैं कि data की हम एक एक bit भेज रहे थे हम कहेंगे नहीं मैं 32-32 bit गठे भेज रहता हूँ तो मैं इसको 32 bit कर दूँ। इनिशिली इसी तरह से इंटरफेसेस चलते रहे, इनिगे इंटरफेसेस में हुआ कि आपके कुछ शुरू में सिंगल बिट्स से स्टार्ट होके, या नहीं ज़्यादा बिट्स के हो गए, लेकिन वो लेटसे जो पुरानी पीसी आई बस थी न, जो पीसी आई बस है जिससे कुछ अर्थे बाद लोगों को वैसे ये चीज़ रियलाइज हुई कि इससे सिग्नल्स के दिर्मियान इंटरफेरस के इशूज आती हैं और उनकी वज़ासे आप क्लॉक को एक खास स्पीड से जदा नहीं बढ़ा सकते हैं तो आजकल के जो जदा तरब ऐसे स्टेंडर्ड्स हैं वो सीरियल हैं ठीक है देख जो नहीं पीसी आई एक्सप्रेस है वो सीरियल इंटरफेस है आपके नेटवर्क का जो इंटरफेस है वो सीरियल इंटरफेस है आपका यूस्बी यूनिवर्सल तो सीरियल इंटरफेस में आप एक एक बिट करके ही बेज रहे होते हैं, ठीक है, लेकिन उसमें अमूमन एक और चीज जिसको हम कहते हैं, जो इस course का direct topic तो नहीं है, लेकिन मैं आपको बता दूं, उसका ओपर भी हो पेज़ें, तो differential signaling में आप क्या करते हैं, कि आपने जो एक बिट्स को काम करें इधर हम उल्टा बढ़ा रहे हैं लेकिन उसका फायदा क्या है आप करते हैं कि अगर आपने इस पे 1 भेजना था तो आप इस वायर पे प्लास 1 भेज दिया इस पे माइनस 1 या जो भी प्लास हाई वोल्ड और ये प्लास लो वोल्ड आप कह लें और अगर आपने 0 भेजना है तो इस पे माइनस भेज दिया और इस पे प्लास भेज दिया तो अब आपके दो सिंग्नल जा रहे हैं एक हाई जा रहा है और एक लो तो इन दो के difference से आप जब निगालने कोशिश करते हैं ना के वन बेजा था या जीरो बेजा था तो उसमें आप ज़दा clock rates achieve कर पाते हैं ठीक है तो ये पहले telephone signaling में होता था ये telephone line बिजली चली बिजले तो उसमें आता रहता है और बड़े long distance की होती है उसमें उनको कहते हैं twisted थोड़ी long distance पे बिचाते हैं और वहाँ पर होता काम rate पे टेलेफोन लाइन बे बाचे लेकिन बट बाद में ये चीज रियलाइज होई कि छोटे boards पे भी आपने एक जगा से दूसरी जगा पे communicate करना है तो differential signaling जो है वो काफी faster clock पे चल सकती है ठीक है और अगर बात यह है कि या हम bits बढ़ा लेते हैं या fast curling clock दोनों का फर्क दोनों से मकसद तो एक ही achieve हो रहा है ना कि आपकी ज़दा bits एक वक्त ट्रांस्पिट हो रही है कि अगर मैं इतनी देर में जो ट्रांस्पिट कर रहा था इसमें मैं एक-एक बिट करके चोंसार ट्रांस्पिट कर लूं तो मेरे बाद 32 से ज्यादा डबल बैंडविट्स अचीफ हो जाएगी ठीक है और इस काइड ऑफ कि आप बस को समझ लेंगे प्रश्न पर जा रही है और वह बहुत सारी बेट्स ट्रांसमिट करेंगे और आप एक दूसरे के साथ साथ लगा के बहुत सारी बेट्स भी भेज सकते हैं तो बहुत सारी रेसिंग आर्स जा रही हैं तो वो उतने ही ट्रांसमिशन कर देंगी बट इन आप फास्टर टाइम इसको वापिस 0, 1 में convert करने के लिए buffers दियो थे, जिनके आगे जो कि ये करेंगे कि ये differential signal ले, पर आपको normal signal लिकाल के दे देंगे, पीछे से 1 आ रहा था या 0 आ रहा है, अच्छे ये तो था हमारा interface ऐसा, जिसमें मैंने एक बन्दे से दूसरे की तरफ bits transmit करनी थी, यहां तक नॉर्मली जब हम कंप्यूटर की बात करें, उसमें इन मेंसे एक एंटिटी आपका CPU हो सकती है, जिसमें बात पर करनी है, लेकिन CPU इस तरह से bits and moment नहीं फैंक रहा होता, CPU जो है वो चीजों को, वो किसी memory को read write कर रहा होता, CPU क्या करता है, CPU आपका कुछ instructions execute कर रहा है, add, subtract, multiply व� यह नहीं कि अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अधिक अ� रैम की तरह अगर बाकी डिवाइसे से भी कोई बातचीत करनी हो जो रैम के लावा है वो भी कम्प्यूटर जो है वो उनको as a memory map device देख रहा होता है ठीक है सो memory map device क्या होती है कि आपने जो PC से लिखवाना या पढ़ना है उसके उपर वो आपको अपने software code के अंदर इस तरीके नजर आ रहा है कि आप किसी address के उपर जा कर कुछ लिख रहे हैं यह किसी address से जाकर कुछ पढ़े ठीक है जिस तरह हम RAM के उपर read या write करते हैं ना उसी तरह आप किसी address के उपर जाकर लिख रहे हैं यह किसी address पर जाकर पढ़े तो normally जिस तरह हमने जो last class में code लिखा हो उसमें हमने जाकर किसी address से जाकर पढ़ा तो हमें पदा चल गए कि switches के उपर input क्या आ रही है तो वो असल में क्या था कि वो switches on off हो रहे थे उनसे 4 bits आ रही थी वो 4-bit आगे 32-bit के register के ऊपर उन्होंने map किये थी, और वो जो register था, वो AXI GPIO के थुरू हमारे ARM के processor के साथ connected था, जो कि इसके ऊपर read-write कर सकता था, और उसके लिए क्या था, software में हमने क्या किया, हमने जाकर एक location, एक function call किया जो read करता था, एक और function call किया जो write करता था, तो हम और वो हमने, क्योंकि बिल्कुल वो step by step follow किया था, तो उसने उनको जो address वगैरा क्या था, वो हम उसकी detail में नहीं के, क्योंकि हमने एक बनी मिनाई example चलाई, लेकिन आप उस example code में further अंदर जाके देखेंगे, तो आपको उसका address भी मिल जाएगा, कि अच्छा switch का क्या address था, switches तो कहने का यह मकसद है कि यह जो चीज़ आप ऊपर कर रहे थे ना, यह तो एक stream of data जा रही थी, ठीक है, एक device ने दूसरी device को stream of data बेजा, यह जो दूसरी चीज़ है जिसमें आप memory की तरह नजराएं, इसको हम कहते है memory mapped interfaces, ठीक है, और अकसर जब किसी system में processor involved होता है, ठीक है, memory map devices के तोर पर देख सकता है उसने किसी चीज से बात करनी है तो वो किसी memory पर लिखवाएगा उसने अगर screen पे कुछ display करना है तो वो किसी graphics card पे अगर बात करनी है तो वो कोई buffer होगा जिसमें जागर वो लिखवा लेगा ये च इस स्क्रीन के ऊपर डिस्ले कर दो ठीक है तो वो अगर उसने नेटवर्क पर कुछ भेजना है तो एक मेमरी में उसको स्पेस मिली होगी जिसमें वो बॉफर पर जाकर लिखवाएगा और उसको कहेगा ये वाला पैकेट आगे सेंड कर दो ठीक है अगर उसने कीबोर्ड से इ तो हमने दो चीज़ें पढ़ ली, एक हमने देख लिया नॉर्मली इंटरफेसिस कैसे काम करते, एक हमने देख लिया के इंटरफेसिस में भी आपके पास दो किस्में बन गई, एक आपके बन गया स्ट्रीमिंग और एक आपके पास बन गया मेमरी मैब, ठीक है अमुमन इस तरह से आपकी devices connected होती है ज़्यादा जो आपका एक computer होता है उसमें processor की एक peripheral bus होती है जिस पे ये सारी devices लगती है जिस तरह जो PCI है वो एक peripheral bus है शुरू की buses वो shared होती थी वो उस पे ज़्यादा lines होती थी 32 bits आ रही है 32 bits जा रही हैं तो वो 32 lines shared होती थी उस पे मुखलिब devices लगी होती थी मिसाल के तोर पर यह आपका processor है जो किसको control कर रहा है ठीक है फिर आपके पास हो सकता है कि इधर sound card लगाओ जो कि आपका PCI device हो फिर हो सकता है आपका network card लगाओ यह भी आपका PCI device हो ठीक है और different इस सिस्म की चीज़े लेंगे अब इन्होंने एक दूसरे से बात कैसे करनी है उस तरह इधर भी इस तरीके ही बात होती है कि अमूमन ऐसी जो बसेज होती है वो master-slave configuration में चल रही होती है तीगे, so master-slave का क्या मदलब है कि आप या तो इस device पे master होते हैं या उसके उपर बस पे master होते हैं या slave होते हैं master का मदलब है कि मैं initiate करूँगा transaction और slave जो है ना वो उनको receive करके respond कर सकते हैं अच्छा, अब होगा क्या?
ये multiple devices जब आ गई, इदर तो A और B दो devices थी, तो हमने इसको एक दो changes की, एक ता के memory map device बना दिया, एक ता के एक से ज़्यादा devices लगाने, मैं कहता हूँ कि इसे one step at a time करता हूँ, मैं कहता हूँ कि मेरे पास एक ही memory map device अगर लगी होती, तो क्या होता, कि मेरे पास यहाँ पर को जो की memory map device है, ठीक है, तो memory map device का मतलब है कि ये किसी तरह इसको बताएगा कि मैंने किसी address के उपर कुछ data लिखवाना है, ठीक है, तो हमें एक address चाहिए, हमें एक data चाहिए, ठीक है, अगर ये बिल्कुल simple किसम की memory होती, तो इसके क्या signal होने थे, इदर से एक address जा रहा होता, इधर से एक data जा रहा होता, एक जा रहा होता, कि भी लिखवाना भी है या नहीं, फिर अगर read करना हो, तो इधर से data वापिस आ रहा होता, ठीक है, जो एक memory के signal होते हैं, generally एक जो local छोटी RAMs होती हैं, ना S RAMs ने हम कहते हैं, जो chip के उपर ही होती हैं, उनके signal यह होते हैं, कि address, आउट कहलें या जो भी डेटा, रीड डेटा कहलता हूँ मैं इसको, ठाके, ठीक है, कि मैं क्या करूँगा, जब भी मैंने इसके उपर, इसी क्लॉक इसका, कि मैंने जब भी इसको लिखवाना है, मैं एक किसी राइजिंग आज़व क्लॉक पे एक अड्रेस दू, डेटा बत तो normal जो on-chip राम्स होती हैं उनमें कई दफार हम हमेशा ही read कर रहे होते हैं, मैंने जो भी address दिया है उसे read तो करी लो, लेकिन off-chip जो होती है उनमें हम read enable भी देखते हैं, कि हाँ भी read कर लो, ठीक है, तो यह जवाब में मुझे एक आज cycle बाद, या इसने बताया होगा कि इ अगर मैं ये करना चाहूँ तो इसमें मसला ये है कि ये data और जो address हैं ये मुमन single bit के नहीं होते ठीक है ये आपका address जो है, depend करता है कि इसके अंदर कितनी memory है, कि जितनी deep memory है, उसके हिसाब से address हो जाएगा, लेकिन अक्सर ही हम 32 bit का 31 down to 0 ये हो गया, 31 down to 0 ये हो गया, 31 down to 0 ये, read data हो गया, तो ये तो काफी सारी pin बन गई, ठीक है, तो जि शुरू की buses थी, वो इस तरह करती थी, कि वो क कि address और data बजाए दो लदा लदा line हैं लखने के, आप एक cycle में मुझे address बेज देना, उससे अगले cycle में मुझे data बेज देना, ठीक है, इसी तरह जब आपने read करना होगा, तो जब आप address बेज रहे होंगे, तो उसके बाद आप मुझे बताते ना आपने read करना है या write करना है, ठीक है एक आपके बाद आजेगा address एक cycle में अगले cycle में आप data दे देना अगर आपने लिखवाना है अगर आपने read करना है तो फिर बस मुझे दे देना मैं इसी line के उपर आपको data वापस कर दूँगे तो जो पुराना PCI होती थी ना वो इस तरीके से चलती थी कि आपके जो single एक ही 32 bit की line है उनी के उपर आप बता दें कि आपने करना क्या है उसी के उपर आप बता दें कि address क्या है उसके बाद तो आपने time के अंदर कि लॉग साइकल्स में बटन डिफाइन कर लिया कि वहीं कितनी एक पहले क्लॉप पहले आएगा अड्रेस फिर पहले कमांड आएगी फिर अड्रेस आएगा फिर डड़ा जाएगा यह जो भी आपने इस किसम का स्टैंडर डिफाइन कर लीजिए मैं अभी इजेक्ट विश्वद बिगर पिक्चर क्लियर के वह यहाँ तक चीज़ फ्लेयर हो गई, अब यहाँ पर यह आपका एक memory mapped interface टाइप की चीज़ बन गई, ठीक है, मिसाल के तोर पर इसके आगे जो device थी वो कोई भी हो सकती थी, मैं कहतूं यहाँ पर मेरे पास FPJ board होता तो मैं कहतूं यह कोई ADC हो सकता है, ठीक है, जो कि analog to digital convert करता कितनी frequency पे sample करना है आपने, ज़्यादा पे करना है, कम पे करना है, तो वो sampling rate हो सकता है, इसके अंदर कोई register हो, जिसको हम कोई address दे दें, कि बही address number let's say 10 पर अगर लिखवा होगे, तो इसका अंदर बहुत sampling rate change होगा, ठीक है, मैं भी I am making up numbers, but जो ADC की आपकी data sheet होगी, उसमें इसी तरह हो सकता है कोई और आप configuration इसके अंदर set कर सकते हो, ठीक है, PLL हो सकती है, कोई और चीज़ हो सकती है जिसको हम configure कर सकेंगे, बता सकेंगे उसने क्या काम करना है, तो वो जो काम करने होते हैं ना, अमूमान इसके अंदर कुछ ना कुछ registers या memories लगी होती हैं, जिनको हम यह जो कि यह सारे पैरलल में दे दें जो कि जनरली अगर आप चिप के अंदर हैं यहीं करते हैं वहां पर ज्यादा सारों का इतना मस्तार नहीं होता इतना स्वेयर नहीं होता जो आप चिप से बाहर जाते हैं और कि यह शुरू में इंटरफेसेस तो उन्हें वह मतलब 32 की अच्छा उसे पीछी आईबस होती थी जो कि यह काम कर रही होती थी अभी भी backward compatible है, यानि कि आपके software को वैसी नजर आती है, लेकिन आप lower end पे वो serial bus बन गिये, जिसमें वो point to point connections है सारे, ठीक है, ओके, इसी configuration में आप मैं दूसरी चीज़ आट करता हूँ, कि अगर मेरे पास एक से ज़्यादा devices होती है, ठीक है, तो मेरे पास let's say ये processor था, लेकि एंड यही पुराने वाले केस में ही कि मैं सेम बस शेयर कर रहा था, एक ही बस थी जिस पे यह सारी चीज़ें कनेक्टिव थी, ठीक है, तो इस केस में यह भी एक प्रास्टर भी इसी को प्रक्नेक्टिव था, ठीक है, तो यह मास्टर था, यह ट्रांजेक्शन्स को स्टार्� डाटा देता हूँ कि इस address पर लिखवा दो ये डाटा तो अब address एक extra चीज आगी है जो के बताती है कि मैं किस जगा पर लिखवा हूँगा तो इन में पर हम ये करते थ शेर कर लेते होते हैं ठीक है शेर करेंगे तो ये किसी address पर लिखवाएगा तो वो तो इधर भी लिखा जाएगा इधर भी लिखा जाएगा तो हम तो किसी एक पर लिखवाना चाहते हैं ठीक है तो नॉर्मली हम करते हैं कि जो address है ना उसको उसके section बना लेते हैं कि अगर इस जगह पर 0 लिखा हुआ तो A पर लिखा जाएगा इस जगह पर 1 हुआ तो B पर लिखा जाएगा बी का है ठीक है, तो यह यहां तक बात समझा रही है, तो हम क्या कर सकते हैं कि वो different devices अपने आपको different addresses assign करवा लें, so normally जब PC on होता है तो different devices बताती हैं कि वहीं हमें इतनी जगा space चाहिए, तो वहाँ पर एक controller इनको assign करता है, तो आज ठीक है तो मारी यहां से यहां तक space, मारी एकसेस कर सकते हैं जो आपके पीसी के अंदर डिफरेंट डिवाइसेस लगी हुई हैं जो डिवाइस ड्राइबर लिख रहे होते हैं वो लोगरेंड पर लिख रहे होते हैं जो आप लोग जब काम करें होगे तो आप अमूमन हाईर एंड कोई उन्होंने तरीका बताया होगा कि अगर आपने स्क्रीन पर आउटपुट करवानी हैं तो आप सी आउट यूज़ कर लें तो सी आउट इसे हाईर एंड मेकनिजम जिसमें आपको लोग लावल डिटेल्स नहीं पता लेकिन जब आपने सी आउट करवाया तो नीचे अब स्क्रीन के उपर लि ड्राइवर लेवल पर कोई ओपरेटिंग सिस्टम ने आपकी वो कॉल पकड़ी और आपको जो करेक्टर एरे थी उसको एक-एक करके जो स्क्रीन के ऊपर भेज दिया या कीबोर्ड से हार लेवल पर सीन कर लिया तो असल में कीबोर्ड से जो इंपुट्स जा रही थी वो किस ऐसी चीजों को कहीं दिवा memory mapped एक और चीजों थी memory mapped IO devices भी जिसमें वो input output आपने करनी है तो वो उनके थ्रू कर लें तो खैर यह बात अभी तक समझ आगी आपको कि इस तरीके से चीजें आपस में connect हैं यह जो पूरा हम अभी discuss करें इसका मकसद असल में पोझना है AXI पे वो भी इसी किसम की एक बास है तो होता यही है कि जब आपने इसको मैं थोड़ा सा complete कर लो फिर उसमें दो master slave का क्या मतलब है कि address इसकी तरफ से आएगा data इसकी तरफ से आएगा slave जो है वो respond करेगा अगर इसने कहा है read करो तो slave respond कर देगा अगर इसने कहा है सिर्फ write करो तो slave जो भी data है होगा उसको लिख देगा अपने पास जो भी इसके पास memory लगी हुई है उसके अंदर ठीक है यहां तक बात समझ आ रही है यही pattern follow होता है अक्सर embedded systems में कि आपका कोई processing element है जो कि आगे किसी bus के साथ connect है बस जो PC's में यूज़ होती है वो PCI बस है, एमेरिट सिस्टम में PCI स्लेव के तोरपर अक्सर हम लोग लगे हो, लेकिन जो हमारे अंदर प्रोस्टर लगा है वो किसी और बस को यूज़ कर रहा हो कहीं दो, जिसना हमारा जो ARM का प्रोस्टर है, वो जिस बस को यूज़ कर रहा है उसके हम गहते हैं AXI बस, तो यह AXI बस जो है यह ARM वालों ने एक ओपन बस पनाई थी, इस तरह की multiple buses exist करती हैं, जो के जिसमें लोगों ने इसी किसम के जिस रहा हमने सिग्नल अभी डिफाइन किये थे ना उस किसम के सिग्नल डिफाइन किये थे ठीक है उनमें भी दो तरह की टाइप है एक्साई स्ट्रीम टाइप बिलकुल वैसी है जिस तरह हम अभी बात कह रहे थे ना कि आपने डेटा वैलिड, रेडी, रेडी जो के उस तरफ से आएगा, एबी से अगर बात करना चाहता है, ठीक है, और फिर इदर से एक आएगा, टी लास्ट, ठीक है, टी लास्ट का मनलब है के जो लास्ट ट्रांजेक्शन हो रही है, के मैं जो डेटा बेज रहा हूँ, उसकी आखरी ट्रां तो आप 64-64 करके भेजने शुरू कर देंगे, यहां तक तो बात ठीक है, लेकिन अगर आपने जो असल में डाटा भेजना था, वो 64 का multiple नहीं था, तो क्या करें, यह मस्ता बन जाएगा, कि आप परलल में गठा तो भेज रहे हैं 64-64 बिट, लेकिन अगर आप चाहते थे कि ज वो जो अगली कुछ बायट्स बचेंगी वो क्या करें तो कई दफ़ा पेर आपना ये जो डेटा भेज रहे होते हैं ना अगर ये डेटा लेट से 31 down to 0 है या 63 down to 0 जो मैं केस करूँ अगर यह 63 डाउन टो जीरो है ना तो इसके साथ हम एक और सिग्नल भेजते हैं जिसको हम कहते हैं बाइट इनेबल ठीक है बाइट इनेबल जो का अगर यह 64 बिट्स हैं तो इसका अनलाई टोटल कितनी बाइट्स हैं आठ बाइट्स हैं ठीक है एट एट ज तो अगर मैं इसकी सारी bytes को one कर दूँगा तो 64 टू 64 transfer हो जाएगी अगर मैं कहा तूँगे नहीं ये सारी zero हैं सिर्फ पहली दो bytes valid हैं तो इसका मतलब है कि सिर्फ वो पहली दो bytes उठाई जाएगी बाकी जो हैं उनको discard कर दिया जाएगी तो इस किसम के कुछ और signal इसके साथ ये ensure कर लेते हैं कि आपका data अगर 64 bit multiple नहीं है या body size का multiple नहीं है तो still वो transactions हो सके इस किसम की बस्सेज जो है ना वह डिफरेंट विश्व जो लोग अब एडिट में अपने प्रोसेसर्स बना रहे थे या बाकी चीजें तो वह लोग अपने हर एक ने अपनी अपनी मिनट लेकिन कुछ ने ना ओपन बसेज पर एक्जिस्ट करती है कि जो जिसमें लोगों ने तो प्रोटोकोल्स इंपोर्टन्ट होते हैं, प्रोटोकोल्स इस लिए इंपोर्टन्ट होते हैं, जिस तरह मिसाल के दुर्बा अगर आपका एक छोटा सा कस्वा हो और अभी उदर आपने गाड़ी इजात की हो कुछ अरसे पहले और सारों के बास गाड़ीयां आ गई हो, ठ दूसरा आप डिफाइन कर लेंगे यहाँ भी roundabout आएगा तो जो right से आ रहा होगा हम उसको पहले रस्ता दे देंगे और फिर हम उसके अंदर गुशेंगे तो हमेशा जिसके right से आ रहा होगा तो हर एको evenly chance मिलता जाएगा क्योंकि generally दर्मियान में gaps आ जाते हैं हमेशा right से कोई अभी जैसे राइट और लाफट और ड्राइव का मसला है पूरी दुनिया इस पे एग्री नहीं हो जाएगा अगर पूरी दुनिया एग्री हो जाएगा तो पिर आप एक जगह का इसलामबाद से ड्राइविंग लाइसस लिया और आप उठके कहते हैं किसी भी मुल्क में अम कि इस मकसद के लिए ना इंडुस्ट्रीज में डिफरेंट कंपनियां मिलकर आप इसमें स्टेंडरडाइज कर लेते हैं चीजों को एक साइड यह ना यह बेसिकली आर्म वालों ने आप बनाने वाली कंपनी ने बास पर नहीं थी एमबा बस इसको कहते हैं और अब तुम कि जायों से कई एपीजेस पर आम की पॉइंट अवेलेबल है तो उसके जादा बातचीत करने के लिए आम उसी प्रोडोकॉल के ऊपर बात कर लेते तो अब जो हमारा यह केस है ना कि हमारी मल्ट प्रोसेसर है हमारे केस में मोस्टली यह होगा आम जो जायों से पर वह फिर जिनसे बात कर रहा होगा यह मैंने आपको बताया था हमारे प्रोसेसर के ऊपर हमारा जो पीजा उस पर एक प्रोसेसर है और यह पीजा वाला पॉड है तो एसपीजे वाले पॉड के ऊपर हम क्या करें होंगे एक्स आई स्लेव्स बना सकते हैं ठीक है नॉट ऑली स्लेव्स हम एक्सली मास्टर भी बना सकते हैं जो कि प्रोसेसर से बातचीत कर सके वह डिरेक्टली प्रोसेसर को नहीं जाएंगे लेकिन प्रोसेसिंग सिस्टम पूरा जो है उसमें डीडीआर और उस तरह इंटरफेस भी शामिल है तो हम इसे मास्टर के तौर पर भी बात कर सकते हैं स्लेव्स तो रूप एंड वह मारा जो तो कुछ devices के साथ हम streaming में बात कर सकते हैं कुछ devices के साथ memory map processor जाना वो memory map interface के थूँ बात करता है processor directly stream नहीं कर रहा होता processor ने अगर stream करना है तो उसको दिर्मियान में कोई component चाहिए होगा जो के memory map को stream convert कर सके या vice versa इधर मैं कुछ slides आप use करता हूँ जो के एक है एक तो उनकी स्लाइड में देखा और नम थोड़ा सा कंप्लेक्स तो ठीक है यह वाली लाइट्स ऑफ कर रहे तो मैं फोर्ट इसको क्या हो गया ऑफ हो गया नहीं आगे आगे वो मेरा घ्याला कि आटो पावर ऑफ जाता हूँ ठीक है ठीक है तो यह एक नीचे नाम लिखा हुआ रहा होगा मुहमद कुछ समथिंग साथ साहिद लॉग सदरी को इस तरह का नाम था सो मुझे मुझे एक्जैक नाम नहीं आया आप अगर जिंक ट्रेनिंग पर गूगल सर्च करेंगे यूट्यूब पर इनकी वो बनी हुई है कहते हैं बड़ी है फ्री ट्रेनिंग कीके तो यहां पर वोई चीज चल रही है कि जनरली जो आपकी सिस्टम आण चेप हम उसको कहते हैं कि जिस तरह अभी हम जिस एफ़ पीजे पर कर रहे हैं ना काम जिंक उसके अंदर आपकी जो एफ़ पीजे के आईसी है उसके अंदर प्रॉसिंग सिस्टम भी है यह प्रोसेसर भी लगा हुआ है और उसके इलावा आप FPGA वाला काम भी करते हैं तो अगर सिर्फ FPGA हो तो हम उसको कहेंगे कि यह सिस्टम ओन चिप नहीं है यह FPGA है तो नहीं एक्जैक्ली अगर कल को यही वाली लॉजिक उठा के ASIC पर भी लेके जाए जा सकती है तो अगर आपने ऐसी आईसी बनाई है जिसके अंदर कोई प्रोसेसर भी है और उसके इलावा भी कोई लॉजिक्स हैं जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जैसे जै मास्टर और स्लेव कंफिगरेशन में बात हो रही होती है सो मास्टर जो है ना वो transaction start करता है और स्लेव उसको respond करता है अगर उसको respond करना हो बास बसेज में write का भी response होता है बास बसेज में write के case में सिर्फ आप इदर से address और data भेजते हो लिखा जाता है read के case में आप address भेजते हैं तो read आजाता है बास cases में बास बसेज कहती हैं कि अगर आपने write करना है तो इदर से एक acknowledgement भी वो दे कि हाँ वही write हो गया है ठीक है तो एक और सिग्नल होगा जो के बता रहा होगा के बई राइट हो गया ठीक है सो एक्स आई में जो है ना वो राइट रिस्पॉंस भी नॉर्मली होता है ठीक है तो एक्स आई में आपके ना डिफरेंट चैनल्स है जिनके तुरू आप बातचीत कर रहे होते जिसके लिए आपके कमांड्स भी मास्टर से स्लेव को कुछ जा सकती है इन्होंने इस तरीके किया हुआ है कि जो read और write के जो address और data है ना वो उनके लिए अलाद अलाद channels यह यूज़ करते हैं, word यह channel का यूज़ करते हैं, channel क्या हुआ है मैं बता देता हूँ आपको, कि AXI master जो है ना वो उसके लिए एक address का channel है, तो address का channel यह है कि address का जो signal खो दो� तो अगर मैंने इधर address लिखवाना है तो मैं एक address बेजूँगा और उधर से अगर ready आ गया तो इसका मन्दब है address लिखा गया इसी तरह मैंने data लिखवाना है तो मैं data के channel पे जो के एक parallel में चीज़ है कि data फिर data का ready और फिर data का response ठीक है तो अब मैं किसी address पे data लिखवाना चाहूँ तो मैं पहले address लिखवा दूँ और उसके बाद data लिखवा दूँ ठीक है right response channel क्या है उसमें ये आपको वापस बताता है कि right हो गया या नहीं हो गया और उसमें वो मदब ओविजी उसमें भी इसी तरह है कि right response response खुद क्या है वो जिस तरह data की bits थी उसी तरह कुछ bits आपको वापस आएंगी जिसके साथ वो बताएगा valid और यह उसको ready देगा कि हाँ भी ठीक है मैंने आपका error वापस return कर सकते हैं, यानि कि right response channel में आप बता सकते हैं कि बई आपने जो address बेजा था वो तो मेरे पास है ही नहीं, मैं तो इस चेखा तक इस चेखा तक मेरे addresses हैं, आपने उससे उपर की हैं, नीचे के कोई address मुझे बेज दिया है, तो वो आप decoding error उसको वापस respond कर सकते हैं, इस किसम की चीज़े respond कर सकते हैं, इसी तरह read address channel अलगधा से है जिसमें आप बताएंगे कि read का ये address है, तीके साथ valid बेजेंगे, मौसे ready का इंजार करेंगे, तो उदर read लिखा जाएगा. और read response channel जो है वो आपके पास वो data के तोर पर भी use होता है यानि कि जब मैंने इसको कहा कि मैंने फलाँ address से read करना है तो इसने आप जवाब में आपको data भेजना है तो ये वहाँ से data भेजेगा valid भेजेगा जाएगा और यहां से ready उसको देगा कि यहां ठीक है मैं ready हूँ तो यह axi जो है ना इसमें जो एक हमने चीज पीछे नहीं देखेगा वो channels का concept है कि वो इसने सारी चीज़ों को अलग अलग से handle कर लिया है इसका मतलब है कि आप parallel में address भी दे सकते हैं और पर data भी नहीं अच्छा, अब होता गया है, आपके जो जब आप hardware में design कर रहे होंगे, जिस तरह भी हमने last time एक block design वनाया, जिसमें zinc रखा और कुछ और चीज़ें रखी हैं, तो zinc तो हो गया आपका CPU, लेकिन हो सकता है कि आप कोई और device भी लगाना चाहें, जो के as an AXI master act कर रही हो, ठीक है ठीक है, DMA क्या होता है वो मैं बाद में बताऊंगा, लेकिन आप चाह सकते हैं कि जो मैं ब्लॉक डिजाइन बना रहा हूँ उसके अंदर multiple masters exist करते हों और multiple slaves exist करते हों, तो अब हर master इन सारे slaves को लिखवाना चाहता है, यानि ये master भी लिखवाना चाहता है, इस पे भी, इस पे लॉजिक लिखी जो कि मैं चाहता हूँ एजा मास्टर एक्ट करे और वो भी रेम के ऊपर कुछ रीड राइट करे और वो भी किसी ओर पर लिखना चाहे ना चाहे तो मैं चूज कर सकूं कि वो किस पर लिख सके किस पर ना लिख सके तो लेट से कि मैं चाहता हूँ कि ये दोनों मास्टर इन सब के ऊपर लिखवाना चाहते हैं तो वो कैसे करो तो इसके लिए ओविसिजिट कुछ लॉजिक डिजाइन करने की ज़रूरत है वो लॉजिक जो है ना वो भी बनी मिलाई मुझूद है जिसको हम कहते हैं AX या ब्लॉक डिजाइन में वो प्लास सिगनल हम करके जो भी सिगनल जो जो डिफरेंट कोर्स को इंस्टेंशियेट करते रहे हैं उन में से एक AXI इंटरकुनेक्ट है यह एक्शुली कई दफ़ा वो खुदी हमारे लिए भी कर देगा जब हमने रन कनेक्शन आटोमेशन किया आपके बाद अगर एक डिजाइन बना रहा हूँ मैंने कोई एक IP उठाई जिस पे AXI मास्टर लगा हुआ था इस तरफ ठीक है और लेट से M underscore AXI, इगर S underscore AXI इसमें लगाओगा, अब अगर मैं इसको इससे direct connect करने कोशिश करूँगा ना, तो विवाडो मुझे अराम से connect करने देगा, कोई मस्ता नहीं, ठीक है, तो अब ये एक तरीका आ गया कि ठीक है, ये भी AXI बस पर बात कर लेता है, ये भी AXI बस और मैं इसको connect करना चाहूँ तो यह एक से तो connect होज़ेगा या दो से कठा नहीं हो सकता यहाँ पर हमें जरूरत है किसी ऐसी चीज की कि जो एक से दो में convert कर सके जिसको हम कहते हैं AXI smart connect के नाम से भी एक IP है वो भी यही काम कर रही है शेड नए वरियन में इसको smart connect करें तो यहाँ तक चीज समझाएगा तो हम इसको दिर्मान कर सकते हैं इसको हम configure कर सकते हैं रखने आप यारा पांच तरह ताट जितने करने वह ठीक है तो उसमें लिमिट तक यह वाले टारगेट बढ़ सकते हैं ठीक है तो यह वाली आपको स्लाइड समझ आ रही होनी चाहिए कि फ्लाइड पर दो मास्टर्स हैं आप उसको एक से इंटरनेक्ट पर कर लगा दिया नॉट ओनली दिस कि ये multiple slaves को multiple masters से या vice versa connect कर रही है ये कुछ और काम भी कर देता ठीक है सो होगा क्या अगर आप connect करेंगे तो आपका एक master हर master के हिसाब से आप इसकी address range define कर देंगे ठीक है क्योंकि ये एक ही bus है जिसने इससे भी connect होना है इससे भी इससे भी तो अब आपने इसका address कोई और होना चाहिए इसका address कोई और होना चाहिए इसका address कोई और होना चाहिए जिसने इस example में हमने क्या किया हुआ है कि बई ये UART है ये कहता है कि बई मुझे total 4K memory चाहिए let's say ठीक है तो 4K memory चाहिए तो आप बता देंगे कि इसका address offset क्या है अगर आपने बताया 4000 इसका मतलब है इसका अड्रेस हो जाएगा 4000 से लेकर 4FFF तक तो आपका अड्रेस जो का वो जीरो से लेकर FFFF तक चला देगा ठीक है तीन F's तक ठीक है तो यह एक F4 बाइट वाला है तो यह 12 bits आपकी बन जाएगा इसी तरह यह GPIO लगा है इसकी भी लट वन से शुरू हो रहा है इसकी पहली तीनों जो तीन हैक्स वर्ड्स है वो जीरो है क्योंकि जीरो से फॉर के तक तो इसको एड्रेस चाहिए था यानि फॉर जीरो से फॉर के तक तो यह आपको उससे आगे से शुरू हो रहा है और उससे आगे फॉर वन एफ़ एफ़ तक जा यह 4K था, यह 4K था, तो मैं 8K आगे चला गया, तो अब 8K से 64 प्लस 8K तक नहीं है रेंज, हमने इसकी रेंज यहां से शुरू की है, यहां पर 2,0,0 से नहीं शुरू की, 1FF के बाद क्या आना था, 2,0,0, हमने यहां पर 2,0,0 से लेकर वो प्लस 64K नहीं रखी, बलकि हमने य 16-bit-0 का क्या मतलब है कि यह 64K से शुरू हो रही है और उसके आगे पूरा 64K consume कर रही है यह जब आप AXI में different चीज़ों को addresses दे रहे होते हैं तो उसके अंदर कुछ rules apply होते हैं कि आप address अगर आपने 64K का address दिया है आपने रहांगी है तो यह 64K के multiple पे exist करना चाहिए अगर आपने 4K का कोई address माँगने हैं, तो वो 4K के multiple वाली byte alignment के साथ चलेगा, तो ये आपके बास 64K वाला जो है, वो 64K की byte alignment के साथ चल रहा होगा, ठीक है, उससे address decoding जरा सी इसान हो जाती है, जो के अंदर use हो रही होती है, otherwise आपको hardware का circuit में, आपको जो address decoding अगर दर्मियान दो इसमें तोड़ देते हैं और इस इन बिट्स को बस देख लेते हैं कि ये बिट्स 0 आ रही हैं तो इसका मतलब है कि ये फलाँ जगा से शुरू हो रहा है तो ये address recording के point of view से कुछ limitation है जी, master का क्या? नहीं, master ने तो address generate करने है न दो लगे हुए हैं, ये हो सकता है कि इसके लिए ये किसी और address पर map हो लेकिन अगर आप change करना चाहें तो इसमें कोई मसला नहीं है, यहाँ कि मैं कहता हूँ कि यह वाला address, यह वाला जो UART है या यह जो SLAVE है, यह इसको CPU को नजर आ रहा है कि यह 40000 से लेकर 40000100 से लेकर 400001FFF तक है, लेकिन इसको यह कोई और address नजर आ रहा हूँ, यह इसके लिए यह किस और address पर map हो जाए, तो यह possible है, इसमें कोई मसला नहीं है, ठीक है, बट जो भी map करेगा उसको addressing के rules की alignment का ख्याल रखना पड़ेगा, generally एक rule ये है कि आपने अगर 64K का चांक उठाना है तो it should be on 64K multiple boundary, अगर 4K का चांक उठाना है ये 4K के multiple की boundary पर ही होना चाहिए, otherwise आप जब उसको synthesis करनी कोईश करेंगे तो evado आपको पहले error दे देगा, बलकि validate तो अब तो एंड पर उसका इंटरनली यानि यह एड्रेस को डिकोड इंटरक्नेक्ट कर लेगा उसने अपने अंदर यह टेबल बना लिया होगा कि यहां से यहां तक यू आट का एड्रेस है यहां से यहां तक जीपी आयो का यहां से यहां तक रैम का एड्रेस है और वो इस यह जो और काम कर लेता है वो यह है कि यह width convergence भी कर लेता है कि AXI bus में data की width जदा कम हम कर सकते हैं यह आप चाहें तो हो सकता है कि आप GDR से जब उठा रहे हो तो हो सकता है आप 256-256 bits से कठी उठा रहे हो तो वो जो conversion का काम है यह हो सकता है कि आपके AXI interconnect की एक तरफ 256 bits के वाला connector लगा हुआ और दूसरी तरफ 32 bit का तो वो जो conversion करनी थी वो यह खुद बखुद कर लेगा सेकंडली यह यह काम भी कर लेगा कि आपकी clock rate कर लेगा वरियन भी कर लेगा यहीं कि हो सकता है कि एक तरफ आप किसी ओर क्लॉक पर चल रहे हो दूसरी तरफ किसी ओर क्लॉक पर चल रहे हो तो वो ही AXI वे इंटर कनेगा आपके लिए क्लॉक डॉमेन ट्रांस्ट्रमेशन भी कर देगा कि आप एक तरफ 250 मेगाट्स पर चल रहे थे यह चल जाएगा ठीक है address के rules मैंने आपको बता दी हूँ हुए कि आपको जो size है ना आपका उसका multiple आना चाहिए मिसाल के तोर पर यह ने एक example दिया है जिसमें wrong address alignment की है कि यह 4K का मैंने address दिया और फिर यह जो range थी यह 2G थी तू गीगा की थी, लेकिन मैंने 4K plus 1 से address देजी अगर, तो यहाँ पर वो मुझे कहते का कि नहीं, यह possible नहीं है, इसको जो आपने address देना है, it should be in the multiple of 2G, ठीक है, तो वो 2G का multiple बनता है कि आप इसको C000 sign कर सकते हैं, यह आप यह कर सकते हैं कि इसको 0 sign कर दे, 0 से 1G पे यह आ� यह नहीं कि जब हम ब्लॉक डिजाइन बना रहे होंगे ना तो उसमें जो hard IPs हैं उनमें से कुछ चीज़ों के address fix assigned है लेकिन जो हम अपना component बना रहे हैं उसको address हम खुद assign कर लेंगे mostly जो hard IPs हैं उनके भी address हम change कर सकेंगे सवाई कुछ के जड़ी के बास चीज़ें fix ने जाया तर को हम खुद address assign कर रहे होंगे यहां वेब आडो में example भी probably next class में इसको कर लेंगे अगे यहां तक हम जो देख रहे हैं सारे कौन से interfaces हैं memory map, यहाँ भी हम क्या करें, master slave है, memory map है, कि एक लिखवाने, एक या एक से ज़्यादा लिखवाने वाले हैं, एक से ज़्यादा पढ़ने वाले हैं, और AXI interconnect यूज़ वारा है, ठीक है, ओके, दूसरा जो AXI stream है, तो ये अब उसी स्लाइट्स में जो स्ट्रीम का है उसमें क्या चीज़ है स्ट्रीमिंग कहां पर यूज़ होती है जहां पर आपका डेटा कॉंटिनिउसली आ रहा हो जिस तरह आप एनलॉग प्रो डिजिटल कन्वर्टर से ले रहे हैं डेटा के तो एनलॉग प्रो डिजि� अगर आपने कोई communication system बनाना है तो communication system हमेशा यहां से start होते हैं कि उसका digital part कहां से start हो रहा होता है जहां पर ADC लगा हुआ तो से पीछे RF front end से किसी और frequency तो उठाओ कर आप नीचे लाएंगे ADC करेंगे उसके बाद बहुत सारे signal processing के काम उसके उपर हो कर उससे bits निकलती हैं ठीक है तो उन में से कभी कहीं भी filter होंगे जिसको FIR हम कहते हैं FIR filter finite impulse response filters या DFT है discrete Fourier transform या FFT इसका एक algorithm है जो आप दूख सकते है इन सब की बनी बनाई कोर्स अवेलेबल हैं और वो कोर्स क्या होती हैं उन कोर्स का एंटरफेस क्या होगा इनको एड्रेस नहीं चाहिए इनको यह नहीं चाहिए कि मुझे फलान एड्रेस पर फलान डाटा चाहिए इनको एड्रेस चाहिए अगर आपने इसको कंफिगर करना ह तो अमूमन ऐसी course का एक interface होता है जो सिर्फ control settings को लिखवाने के लिए होता है, जो के memory mapped interface ही होता है, ठीक है, FFT का हो गया या filter में अगर कोई चीज configurable रखनी है, कि आप, तो तब आप ऐसा interface एक दे सकते हैं, लेकिन जो असल में data आ रहा है, वो data, data को कोई address नहीं चाहिए, data बस तो उसमें कोई address का concept नहीं है उसने उन सब को बस point by point multiply करना है, filter type से add करना है, result निकालना है, वो FIR यह कम करता है, तो इसको अड़ेड, तो वहाँ पर streaming interface यूज़ होता है, तो AXI का streaming interface यूज़ होगा जहां पर आपको continuous streaming कर रही है, memory map interface यूज़ होगा जब आपने कोई चीज़ तो आपका streaming interface ना वो much simpler है, यानि उसके अंदर तो हमने देखा था ना बहुत सारे चैनल है, write address, write data, read address, response, तो ये सारे चैनल से तो इसके जो यह वह संजेंगे वह सिंगल चैनल ठीक है और इसका सिंगल चैनल जो इसमें यह सिग्नल है प्राइमरी इसके इलावा भी कुछ तो यह आप इधर से डाटा बेजेंगे वैलेट बेजेंगे जो स्लेव आपको रेडी बेजेगा कि वह रेडी है कि और आप इधर से जब आपकी आखरी बाय ट्रांसफर हो रही है लास्ट पेज जाएंगे कि यह वाली लास्ट पेज तो यहां तक चीज समझागी ओके तो अब यह नहीं आप हमारा जो आज के लेक्शन का मकसद आप जरा बैकग्राउंड बिल्ड कर लेंगे वह इंटरफेसेस क्या होते हैं और यह एक से इंटरफेस क्या चीज है तो अब अब हम उस तरफ आते हैं कि नौ विगेट टू द एक्चुअल वर्किंग एंड कि जब लिखा हुआ था कहीं पे S underscore AXI ठीक है और आगे कुछ लिखा हुआ था ठीक है सो आगे वाला इस वक्त में matter नहीं करता तो शुरू कहां जो हो रहा था S underscore AXI वो S क्या show कर रहा था it's a slave device ठीक है S दो चीज़ें show करता है या streaming या slave सो अगर जो शुरू का है ना letter वो बता रहा होता है master या slave ठीक है streaming के लिए AXI S लिखा होगा ठीक है यह नहीं वो स्टार्ट में लिखा होगा बल्कि AXI के साथ S लिखा होगा तो AXI S का मंदब है कि AXI स्ट्रीमिंग इंटरफेस है ठीक है सो आपका अगर कोई मास्टर है तो लिखा होगा M underscore AXI अगर आपका स्लेव है तो लिखा होगा S underscore AXI और आगे जो भी नाम हो सो जो एक जगा पर M underscore AXI लिखा है एक जगा पर S underscore AXI लिखा हुआ आप उनको आपस में directly connect भी कर सकते हैं आप उनके दर्मेन AXI इंटर कनेक्ट लगा कर भी उनको कनेक्ट कर सकते हैं। अगर उनकी सारी चीज़ें एक तरह की हैं आप डरेक्ली कनेक्ट कर दें कनेक्ट हो जाएंगे। अगर आपकी हमारे लिए वो एक मला वो ड्रैग और ड्रॉप वाली है कि हम उदर क्लिक करेंग कहते हैं हम software से उस address पर लिखाएंगे तो लिखा जाएगा, हम उजर से पढ़ेंगे तो पढ़ा जाएगा, लेकिन अगर हम slave हैं, हम अपनी IP build करते हैं, हम slave बनते हैं, तो फिर हमें वो signals बनाने हैं किसी तरह, उसमें भी बनाने के लिए भी इन्होंने कुछ असानियां दियू और s underscore a x i s master के लिए slave के लिए शुरू का m और s और underscore के बाद a x i के बाद s से लिखा हो तो इसका अंदर यह streaming interface है memory mapped और streaming interface एक दुसरे से directly connect नहीं हो सकता ठीक है so जो memory mapped interface है वो memory mapped interface से connect होगा जो streaming interface है streaming interface है लेकिन हम करना तो यह चाहते हैं ठीक है कि हम इनको किसी तरह connect करें कि हमने अगर कोई, जो जेनरली हम कर रहे होंगे, वो क्ये कर रहे होंगे, जो ऐसे, ऐसो सी फ्लो होता है, कि मैंने कोई सिस्टम बनाना है, तो we would like कि उसका जदा जदा हिस्सा हम, हो सकता है कि पूरा का पूरा ही पहले हम आर्म के उपर, सी के अंदर चला लें, जब वो चल ज ठीक है जो चीज जदा टाइम का रही है उसके लिए हम यह कर लेंगे कि उसका उसको एपिजेट ऊपर ले जाए ठीक है उसमें कोई ऐसी कंप्यूटेशन है जो जदा टाइम का रही होगी जो उस कंप्यूटेशन को एपिजेट पर ले जाए तो जदा टाइम निकल जाएगा तो ऐसी case में जब आपने कुछ हिस्सा processor के ऊपर करना है और कुछ हिस्सा FPGA के ऊपर करना है तो अब let's say कि मैं कोई audio की processing करना चाहतू यह Zip हो आए उसके ADC लगा हुआ है वो audio samples निकाल के दे देगा तो वो तो continuously sample दिया जा रहा है अगर मैंने उसको कुछ processor के ऊपर process करना है तो मुझे क्या करने की ज़रूरत है मुझे processor तो streaming interface पर direct बात कर ही नहीं सकता तो प्रोसेसर क्योंकि streaming interface पर direct बात नहीं कर सकता, तो प्रोसेसर चाहेगा कि आप किसी तरीके वो जो आपकी data stream आ रही है उसको RAM पर लिखवा दें और उसको बता दें प्रोसेसर को, और प्रोसेसर जो है वो RAM से पढ़के जो के memory mapped चीज़ है, उसके ऊपर से पढ़के उसके ऊपर जो भी काम करना है वो करें और अपनी output वापस पेशक RAM पे लिखवा दे जो आपने अगर कहीं पे play करनी है तो दुबारा stream में convert करें तो अपनी प्रोसेसर पे लिखवा दे जो आपने अगर कहीं पे लिखवा दे जो आपने अगर कहीं पे लिखवा दे जो आपने अगर कहीं पे लिखवा दे जो आपने अगर कहीं पे लिखवा दे जो आपने अगर कहीं पे लिखवा दे जो आपने अगर कहीं पे लिखवा द कर देते हैं, ठीक है, तो हो सकता है हम कुछ कहेंगे, नहीं, यह वाला ऐसा hardware में कर दो, बाकी का काम हम उस पर कर देंगे, ठीक है, तो यह आप depend करता है हम क्या बनाना चाहें इसको, but in any case we need something जो कि इसको convert कर सके, तो वो something जो है ना वो इन्होंने हमें provide की हुई है, ठीक है, औ तो आप चाहेंगे कि वो किसी तरह post processing करके HDMI interface पर निकालो और HDMI पर monitor लगाओ और output देख लो तो अब यह जो करना है इसमें आपको यहां से यहां जो conversion हुई यहां पर streaming data आ रहा था हम चाहे थे उसे किसी तरह memory map पर convert करने और यहां पर memory map यहां पर RAM में चीज पड़ी हुई थी उसको हम चाहते हैं कि वापस HDMI यहां निकाल दो तो यह कैसे होता है इसके लिए हम जो components data mover components use करते हैं generally आपके ये DMAs होते हैं ठीक है जो के AXI DMA इनको कहते हैं जो के एक stream से दुसरे में connect कर देता है ठीक है और यहाँ पर आप देख रहे होंगे यहाँ पर क्या लिखा हुआ है data mover की एक तरफ S इसका क्या मतलब हुआ slave है कि वहाँ तो data आ रहा है यह उसको receive कर रहा है AXI S कि यह streaming data आ रहा है और S2MM यह streaming to memory mapped interface है कि streaming to memory mapped data जो आ रहा है वो यह है यहाँ पर लिखा हुआ है M इसका अंदर है master है AXI इसका अंदर है memory mapped S नहीं लिखा हुआ इसका अंदर है memory mapped है S to MM कि stream to memory mapped यह convert कर रहा है S to MM दोनों बे आया है उसको आप ignore कर सकते हैं इसको क्योंकि यह जो data mover है यह क्या कर रहा है इसकी एक तरफ streaming है दूसरी तरफ memory mapped है तो यह क्या करेगा यह stream input लेगा और ये RAM पर लिखवा देगा, ओविस्टि इसको इस तरफ डिरेक्ट RAM तो नहीं होगी, RAM के साथ भी इंटरफेस के लिए कुछ चाहिए होगा, ठीक है, तो वो हम बाद में देखते हैं कि वो क्या होता है, वो अमुमन Zinc आपको एक पोर्ट दे देता है, Master Port जिसके साथ ये डि M underscore AXI, इसका लाइब master है, यह read write करेगा RAM, यह भी master था, यह यहाँ पर data आ रहा था, और आप उसको RAM पर लिखवा रहे थे, memory map convert करके के RAM के इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इस address इ पहने तो यह मेमोरी मैप्ड है मगर एक साइड ऐसी इसकी स्ट्रीम में कनवर्ड वापस कर देगा ठीक है तो यह थोड़ा समझ आ रही है कंपोनेंट के मेमोरी मैप्ड टू स्ट्रीम और स्ट्रीम टू मेमोरी मैप्ड कनवर्यन पहली बात हमें चाहिए क्यों चाहिए इसलिए क्योंकि कुछ हम काम करना चाहते हैं स्ट्रीम डाटा पर जो कि प्रोसेसर के ऊपर जा सके और प्रोसेसर जो है वह सिर्फ मेमोरी मैप्ड इंटरफेसेस पर बात कर रहा है ठीक है तो इ अगर हमारे बाद जो data आ रहा है उस पर हमने कोई processing करनी है तो हमें stream to memory map की conversion चाहिए अगर वो memory में जब आ जाएगी तो CPU उसके दाए जो मर्दी करें ठीक है करने के बाद अपने results लिखवा दे बाहर निकल गया ठीक है तो यह जो AXI data mover लिखा हुआ ना यह दोनों तरह की काम कर लेते हैं ठीक है तो AXI data mover जो है ना वो कहलो के उसके दो जो है ना AXI central DMA और AXI video DMA यह available है मने बनाए जिनको जिस तरह हमने Zing को initialize किया था उसी तरह हम इसका भी instance बना सकते हैं कि उसको कंफिगर कर लेते ठीक है वीडियो डीएम वीडियो एप्लीकेशंस के लिए जनरली जूसर था इन वीडियो का जो फिर थो और जो central DMA है वो simple streaming interfaces के लिए काम कर रहा होता है तो normally आप करते क्या हैं कि जो central DMA है वो ये अब आप जो CPU है ना वो इसको लिखवा देता है यानि इसके हमने दो interface दिखाए हुआ है लेकिन इसके लावा इसका एक और control interface भी होता है जो memory map interface होता है इन्हें CPU को नजर आ रहा होता है कि मैं इसको कैसे कि इस अड्रेस पर क्या लिखाऊंगा तो यह कैसे कंफिगर जाएगा यानि आप इसको कंफिगर कर सकते हैं भी इतना डाटा उठाकर इसको स्ट्रीमिंग से मेमोरी मैप में कंवर्ट कर दो ठीक है या इतने डाटा को उठाकर मेमोरी मैप से स्ट्रीमिंग में कंवर्ट कर द कि कितना data लिखना है, data mover जो है वो उसकी document, हम end पे क्या करेंगे, अगर मैंने actual में ये system बनाना है, तो मैं इसकी कोई example देखूँगा कि वो कैसे काम कर रही है, और मैं उसके data sheet पढ़ूँगा कि DMA कैसे काम कर रहा है, और फिर मैं उसको चलाने कोशिश करूँगा, मैं कोशिश कोई bus convergence के लिए normally use नहीं होता DMA stands for direct memory access so DMA का असल में काम क्या होता है कि CPU सारे काम चाहते हैं कि computer खुद ना कर रहो processor क्योंकि brain है पूरे system का तो हम चाहते हैं कि वो जो काम offload कर सकता है किसी को वो कर दे तो कई दफ़ा काम यह होता है कि यार RAM के अंदर इतना data पड़ा है इसको इस जगा से उठा कर FPGA के अंदर इस जगा पर ले जाओ या FPGA से यह data उठा कर इदर ले जाओ ठीक है या RAM में एक जगा से उठा कर दूसरी जगा पर ले जाओ ठीक है तो अब यह वाले जो काम होते हैं ना कि आप एक memory section से उठा कर कि secure section पर copy करने हैं तो यह obviously CPU के अंदर भी अमारा program एक loop लगा कर वो अगर वो एरेस सिग्निफिकेंटली बड़ी है तो CPU का टाइम जाया हो रहा है वो करने में तो उसके लिए ना उसको हम एक तरह का कहलो के छोटा दे दे दे छोटे इदर दे उठा डाटा इदर लिखवा दे इतना डाटा है ठीक है जिसको CPU बता देता है कि भाई इस एड्रेसे उठाने इस एड्रेस पर लिखवाने इतना डाटा है जब तुम कमलीट कर लो मज़े बता देना ठीक है और CPU फिर अपने काम करने लग जाता है ठीक है ताकि CPU का time जाया नहीं हो तो जब वो DMA CPU अपना काम कर रहा है परलल में छोड़ा लगा हुआ है data transfer करने में data transfer जब उसने कर ली तो वो CPU को interrupt कर देता है ठीक है CPU को interrupt कर देता है कि भाज़ान काम हो गया है ठीक है CPU अमुमन CPU के लिए करें तो नॉर्मली यहाँ पर यही लिखा हुआ है कि data mover जो है उसको CPU configure करता है और configure करने के लिए एक और memory mapped interface होगा जिसके थूँ वो configure करेगा और उसके बाद जो configure करने का मतलब है कि वो data mover को बताएगा कितना data move करना है ठीक है DMA को बताएगा कि कितना data यहाँ से उठा कर RAM में लिखवाना है DMA जब वो पूरा कर लेगा तो वो उसको इंट्राप्ट कर देगा CPU को कि यार हाँ आपने जो मैंने ट्रांसफर कही थी वो कमलीट हो गई ठीक है और स्टार्ट हम CPU इसको करेगा फिर ये इसको जब कमलीट होगा तो ये CPU को आगे रिलेगर देगा अगली वाली जो इनकी स्लाइड्स है वो प्रॉबिली B RAM कंट्रोलर की एग्जाम्पल है जो के मैं शायद स्किप करूँ थोड़ा जा जो इसका review था उसमें एक दो कुछ interesting चीज थी, तो ये वोई चीज आगे जो कि मैंने आपको interfaces की मादमें बताई थी, लेकिन इन्होंने exactly AXI के साब से देखा जाये, तो एक streaming interface है, और एक memory map डाइस streaming interface में सिर्फ data भेज रहते हैं, memory map में आप address और data भेज के किसी और ये क्या full AXI, basically आपकी device पे मतलब या full AXI support करेगी या उसका एक subset भी support कर सकती है, ठीक है subset जो है उसको हम कहते हैं यह एक साइट लाइट, यह लाइट इंटरफेस है, इसमें सारी की सारी फंक्षिनलिटी इमिलिमेंट है, तो जो फरक है, वो क्या है, कि इसमें बर्स्ट रीड राइड्स हो सकती है, इसमें सिंगल रीड राइड ही हो सकती है, बर्स्ट और सिंगल में क्या फरक है, कि नॉर् एक डेटा दिया अगला डेटा उससे अगली अड्रेस पर लिखा जाएगा अगला उससे अगली अगला उससे तो आपको बार बार अड्रेस दुबारा देने की ज़रूरत नहीं एक दबा अड्रेस दिया तो उसके बाद एक पूरा का पूरा बर्स्ट आफ डेटा ट्रांसफ नहीं किया तो आपको अगर high throughput चाहिए बहुत ज़दा speed चाहिए तो तब आप burst rejection support कर रहे होते हैं अगर आपको कम speed भी काफी है तो आप for example मैंने DMA को configure करना था कि भाई तुमने इतना data यहां से यहां तक लिखवाना है वहां पर single भी काफी है क्योंकि मैंने एक दबा उसको लिखवाना कि यहां से यहां तक data लिखवाओ उसके बाद मेरा काम खतम हो जाएगा ठीक है लेकिन अगर मैंने कोई काम किया जिसकी output कुछ kb's सी और वो kb's मैंने लिखवाने हैं, रैम पे, तो मैं ये नहीं चाहूँगा कि वो single-single करके मुझे लिखवाने पड़े, या कुछ mb's थे, तो वो single-single में जदा टाइम लग जाएगा, उसके बज़े अगर burst की support हो तो जदा अच्छा है, लेकिन नहीं करता है यह तो यह तो उनकी आगे एग्जांपल थी यह जो जहां से मैंने स्लाइड दिए ग्रीन एक्ट्रोन डॉट कॉम ग्रीन डेश एक्ट्रोन डॉट कॉम या गुबूलिया डॉट कॉम यह इनकी साइट है सदरी साहब की जो के शुरू में इंग्र वैसे ए बेस्ट ट्रेनिंग यही थी जो मुझे नजराई यह आट दस कंटे की होगी कम अधिक फ्रंट गंटे गंटे की वीडियो हैं, कुछ कम की हैं, कुछ ज़्यादा की हैं, लेकिन अगर आप अपने ओन पे करना चाहें तो इस वेरी गुड रिसोर्स, इस बंदे ने आराम से आपको इस्पेन किया हुआ है, साथ अपना एक Zibbo बोर्ड रखें, साथ आप अपने चिप्स रख तो मैं आज का जो जाधा तर चीज थी वो वहाँ से ड्राइव थी ठीक है, तो यहां तक अब आपको AXI का एडिया हो गया है अच्छा, AXI के इलावा एक और चीज जो साथ मैं देखना जाओगा ना पर कि यह हम सारा कर क्यों नहीं है मतलब पूरी क्लास AXI पर इस्तमाल करने की जरूरत क्या थी उसकी वज़ा यह है कि जो हम Zinc Based Designs जितने भी कर रही हैं कि हमारा एक पीएस है और एक पीएल है ठीक है पीएस क्या था और पीएल क्या था ये प्रोसेसिंग सिस्टम है और ये प्रोग्रामिबल लॉजिक है ठीक है यूज़ करूँगा तो इसको जादी कर लें पीएस पीएल ताकि आपको जैन में हो कि मैं किसी बात हूँ पीएस का जो कि dual core है जिसमें दो computer लगे हुए हैं जिसके ऊपर आप C में code लगेंगे PL का मतलब है जिसमें हम जो logic design के principle से अपने circuit design करेंगे और बनाएंगे ठीक है और जब हम block design बना रहे होते हैं उसमें हम block drag and drop करके है पूरी की पूरी चीज़ मतलब हमने PS के लिए zinc processing system लगाया PL के लिए हमने AXI GPI वैसे तो इसने जब भी इससे बात करनी है that has to be through some AXI interface ठीक है so generally इसके ऊपर कुछ जनरल परपस इंटरफेस है, I think 4 हैं, कुछ master interfaces हैं, कुछ slow interfaces हैं, कुछ high performance interfaces हैं, जो के DDR के लिए, अगर इसने DDR RAM पर लिखवाना है, तो उसके लिए processing system के थुरू इसको access है, तो उसपे एक port होगी HP 0, एक port होगी HP 1, high performance 0, high performance 1, वो AXI slave होगी.
कि मैंने इदर ज़र रैम पर लिखवाना है तो मैं इदर अपना एक मास्टर बना लूँ जो के डीडी आर के उपर डीडी आर एड़ कर सके ठीक है ये खुद कनेक्टेड ह ठीक है अनिकेस इसने अगर पीएल पर लिखवाना है तो जनरल परपरस पोर्ट है जीपी जीरो जीपी वान जीपी टू जीपी थ्री ठीक है हमने जीपी जीरो को कनेक्क किया था विद जो हमारी एलिडीज और स्विचिस थे ठीक है तो उसके इलावा जीपी वान जीपी ट� तो मैं उससे साथ से आपको एक roughly idea दिना चाहरा था, कि जो हम इधर से बात करेंगे, ये सारी memory mapped है, ठीक है, streaming के लिए मुझे दर्मियान में इधर DMA लगाना पड़ेगा, ठीक है, DMA भी multiple type के है, एक DMA है जो सिर्फ memory mapped interface के लिए है, जिसकी दोनों तरफ memory mapped है, वो कहेगा यार इसमें क्या है कि DMA को आप प्रोग्राम करेंगे भाई इधर से इधर तक डाटा उठाकर लेकर लें फिर DMA के ऐसे DMA है जिनकी एक साइड स्ट्रीमिंग है एक साइड मेमरी मैप्ट है जो सेंटरल DMA जो हम देख रहे थे ठीक है फिर वीडियो DMA है वो भी एक साइड वीडियो है दुसरी तरफ मेमरी मैप्ट है ठीक है तो हम शाहिद वो यूज ना कह रहे हो लेकिन वीडियो की एक्जांपल शाहिद ना करें लेकिन वीडियो की एक्जांपल आप लोग शाहिद कर सकते हो एक य� आइडिया हो रहा है कि हम क्यों पाड़े हैं क्योंकि ये वाली इनी एक साइज इंटरफेसेस के थुरू हमने बाज़ीत करें यहाँ पर उप