पिकोब्लेज़
पिकोब्लेज़ उनके एफपीजीए और सीपीएलडी उत्पादों में उपयोग के लिए Xilinx के तीन मुफ्त नरम माइक्रोप्रोसेसर कोर की एक श्रृंखला का पदनाम है। वे 8-बिट जोखिम आर्किटेक्चर पर आधारित हैं और विरटेक्स 4 एफपीजीए के परिवार पर प्रति सेकंड 100 मिलियन निर्देशों तक की गति तक पहुंच सकते हैं। केंद्रीय प्रसंस्करण इकाई में परिधीय उपकरणों की एक विस्तृत श्रृंखला तक पहुंच के लिए 8-बिट पता और डेटा पोर्ट होता है। कोर का लाइसेंस उनके निःशुल्क उपयोग की अनुमति देता है, भले ही केवल Xilinx उपकरणों पर, और वे प्रोग्रामिंग उपकरण के साथ आते हैं। तृतीय-पक्ष उपकरण मेडियाट्रोनिक्स और अन्य से उपलब्ध हैं। इसके अलावा PacoBlaze, कोर का एक व्यवहारिक और उपकरण स्वतंत्र कार्यान्वयन मौजूद है और BSD लाइसेंस के तहत जारी किया गया है। पॉलोब्लेज़ अपाचे लाइसेंस के तहत एक खुला स्रोत वीएचडीएल कार्यान्वयन है।
पिकोब्लेज़ डिज़ाइन को मूल रूप से KCPSM नाम दिया गया था जो कॉन्स्टेंट (K) कोडेड प्रोग्रामेबल स्टेट मशीन (पूर्व में केन चैपमैन की PSM) के लिए है। केन चैपमैन Xilinx सिस्टम डिजाइनर थे जिन्होंने माइक्रोकंट्रोलर को तैयार और कार्यान्वित किया।[1]
तत्कालीकरण
वीएचडीएल में पिकोब्लेज़ माइक्रोकंट्रोलर को इंस्टेंट करते समय, संबंधित केसीपीएसएम घटक नाम का उपयोग किया जाना चाहिए।[2] उदाहरण के लिए, PicoBlaze3 प्रोसेसर के लिए:
component kcpsm3 is
port (
address : out std_logic_vector(9 downto 0);
instruction : in std_logic_vector(17 downto 0);
port_id : out std_logic_vector(7 downto 0);
write_strobe : out std_logic;
out_port : out std_logic_vector(7 downto 0);
read_strobe : out std_logic;
in_port : in std_logic_vector(7 downto 0);
interrupt : in std_logic;
interrupt_ack : out std_logic;
reset : in std_logic;
clk : in std_logic
);
end component;
प्रदर्शन
सभी निर्देश दो घड़ी चक्रों में निष्पादित होते हैं, जिससे मुख्य निर्देश सेट का प्रदर्शन निश्चित हो जाता है। व्यवधान प्रतिक्रिया पांच घड़ी चक्र से अधिक नहीं है। संसाधन अनुकूलन के रूप में, Xilinx FPGAs पर इस ब्लॉक के दोहरे पोर्ट कार्यान्वयन का लाभ उठाते हुए, दो PicoBlaze कोर के लिए समान 1k x 18 अनुदेश PROM साझा करना संभव है।
वास्तुकला नोट्स
Xilinx ने PicoBlaze को केवल 96 FPGA स्लाइस की आवश्यकता के रूप में दस्तावेज़ित किया है। छोटे कार्यान्वयन का आकार आंशिक रूप से निर्देश अनुक्रमण पक्ष (प्रोग्राम काउंटर, कॉल-रिटर्न स्टैक, निहित स्टैक पॉइंटर, और इंटरप्ट इनेबल बिट) को निष्पादन पक्ष (एएलयू, रजिस्टर फ़ाइल, स्क्रैचपैड रैम, जेड) से काफी कठोर पृथक्करण के माध्यम से प्राप्त किया जाता है। /सी स्थिति बिट्स)। सशर्त JUMP और CALL निर्देशों द्वारा परीक्षण किए जाने पर गणना पक्ष से अनुक्रमण पक्ष तक प्रवाहित होने वाली एकमात्र जानकारी शून्य और ALU स्थिति बिट्स होती है। कंप्यूटेड जंप या फ़ंक्शन पॉइंटर्स को लागू करना संभव नहीं है[dubious ]. अनुक्रमण पक्ष से निष्पादन पक्ष तक प्रवाहित होने वाली एकमात्र जानकारी ऑपरेंड फ़ील्ड हैं: गंतव्य रजिस्टर (4 बिट्स), एएलयू ऑपकोड (छह बिट्स), वैकल्पिक स्रोत रजिस्टर (4 बिट्स), वैकल्पिक 8-बिट तत्काल मूल्य/पोर्ट-पता, वैकल्पिक 6-बिट स्क्रैचपैड पता। स्टैक पॉइंटर के मूल्य, 31-एंट्री स्टैक की सामग्री, इंटरप्ट इनेबल बिट या प्रोग्राम मेमोरी की सामग्री का निरीक्षण करने के लिए कोई तंत्र नहीं है।
निर्देश अनुक्रमण पक्ष में कोई योजक शामिल नहीं है, इसलिए सापेक्ष शाखाएं और स्थिति स्वतंत्र कोड संभव नहीं हैं। सभी जंप और कॉल पते पूर्ण हैं[dubious ].
पिकोब्लेज़ सी (प्रोग्रामिंग भाषा) जैसी संकलित भाषाओं में प्रोग्रामिंग के लिए खराब रूप से अनुकूल है।[3] फ़ंक्शन पॉइंटर्स के लिए समर्थन की कमी के अलावा[dubious ], स्टैक-आधारित कॉलिंग कन्वेंशन में तेजी लाने के लिए कोई निर्देश या एड्रेसिंग मोड नहीं हैं। पिकोब्लेज़ के लिए PUSH या POP को लागू करने के लिए दो निर्देशों की आवश्यकता होती है और सॉफ़्टवेयर-नामित स्टैक पॉइंटर से सापेक्ष एड्रेसिंग को लागू करने के लिए दो निर्देशों की आवश्यकता होती है। पिकोब्लेज़ हाथ से अनुकूलित रजिस्टर-आधारित कॉलिंग कन्वेंशन के लिए बेहतर अनुकूल है। यह फोर्थ (प्रोग्रामिंग भाषा) जैसे डेटा स्टैक के उपयोग को नहीं रोकता है, और वास्तव में पिकोब्लेज़ इस दृष्टिकोण के लिए उपयुक्त है, अगर 64-बाइट स्क्रैचपैड मेमोरी पर्याप्त स्थान प्रदान करती है।
यह भी देखें
बाहरी संबंध
Processor and derivatives:
- PicoBlaze on the Xilinx website
- PicoBlaze user manual
- PicoBlaze user resources
- Implementation of picoblaze in LabVIEW FPGA on the Xilinx Spartan 3E Starter board
- PacoBlaze: an open source synthesizable and behavioral Verilog clone of PicoBlaze
- PacoBlaze implementation description
- NanoBlaze: a VHDL model with generics to define various sizes
- PauloBlaze: an open source VHDL model fully compatible with the ISA of the kcpsm6
Tools:
- Open source Picoblaze assembler
- PicoBlaze Debugger, Software and RTL Hardware development with ModelSim
- MDS, Professional IDE for Linux and Windows
- FIDEx, an assembler IDE for Linux, MAC and Windows
- pBlazASM, an open source assembler and simulator for Windows[permanent dead link]
- pBlazIDE, an assembler IDE for Windows
- kpicosim, an open source assembler IDE for Linux
- Opbasm, Cross-platform Open Picoblaze macro assembler for kcpsm3 and kcpsm6
- PicoBlaze Simulator in JavaScript
संदर्भ
- Notes
- ↑ "PicoBlaze 8-bit Microcontroller" (PDF). Xilinx, Inc. Retrieved 2007-06-25.
- ↑ "PicoBlaze 8-bit Embedded Microcontroller User Guide" (PDF). Xilinx, Inc. Archived from the original (PDF) on 2007-09-27. Retrieved 2007-06-25.
- ↑ Pong P. Chu (2008). FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version. Wiley & Sons. ISBN 978-0-470-18531-5.
- Bibliography
- Ivanov Vl. Using a PicoBlaze Processor to Traffic Light Control. Cybernetics and Information Technologies, 15, 5, Marin Drinov, 2015, Online ISSN 1314-4081, doi:10.1515/cait-2015-0023, pp. 131 – 139. SJR:0.212