आरटीएल बनाम एचडीएल? क्या फर्क पड़ता है


24

RTL और HDL के बीच मुख्य अंतर क्या है? ईमानदार होने के लिए मैंने इसे खोजा / गुगली की फिर भी लोग अपनी राय में विभाजित हैं। मुझे याद है एक कहावत है कि एचडीएल एक डिजिटल सर्किट का वर्णन करने के लिए उपयोग की जाने वाली कंप्यूटर भाषा है और जब इसे संश्लेषित किया जाता है, तो इसे आरटीएल माना जाता है।

जवाबों:


18

एचडीएल सभी हार्डवेयर परिभाषा भाषाओं (वेरिलॉग, वीएचडीएल, आदि) के लिए एक ही नाम है, उसी तरह से ऑब्जेक्ट ओरिएंटेड सी ++, जावा, आदि को संदर्भित कर सकता है।

दूसरी ओर RTL एक सर्किट का वर्णन करने का एक तरीका है।

आप एक एचडीएल भाषा में अपना आरटीएल स्तर कोड लिखते हैं जो तब उसी एचडीएल भाषा में या आपके लक्षित उपकरण / प्रक्रिया में गेट स्तर के विवरण के लिए अनुवादित (संश्लेषण उपकरण द्वारा) हो जाता है।

मैं आपको एक उदाहरण देता हूं। यहाँ Verilog (HDL) की एक पंक्ति है जिसका वर्णन RTL में एक mux है:

assign mux_out = (sel) ? din_1 : din_0;

आपका संश्लेषण उपकरण इसे ले जा सकता है और इसे तर्क द्वार के एक सेट में बदल सकता है, या सिर्फ एक मक्स मैक्रो जो आपके अंतिम उपकरण द्वारा समर्थित है। उदाहरण के लिए, यह एक mux मैक्रो को तुरंत रोक सकता है

mux u3 (mux_out, din_1, din_0);

दोनों ही मामलों में आप ब्लॉक (आरटीएल, या गेट-लेवल) को एक ही इनपुट दे सकते हैं और आपका आउटपुट एक जैसा होना चाहिए। वास्तव में ऐसे उपकरण हैं जो आपके आरटीएल कोड के खिलाफ आपके संश्लेषण के आउटपुट की जांच करते हैं ताकि यह सुनिश्चित हो सके कि उपकरण गलती से अनुकूलन नहीं करता था या संश्लेषण के दौरान कुछ परिवर्तन करता है जो एक बेमेल का कारण बना। इसे औपचारिक सत्यापन कहा जाता है।

विभिन्न कारणों से, अंतर-क्षमता, परिवर्तन में आसानी, समझने की क्षमता आप गेट-स्तर के बजाय आरटीएल के रूप में डिजिटल सर्किट का अपना विवरण लिखते हैं।


3
अच्छा जवाब, बस एक और शोधन ... RTL एक दिए गए डिजाइन शैली को मानता है - लॉजिक क्लाउड, रजिस्टर, लॉजिक क्लाउड, रजिस्टर आदि जो सिंक्रोनस (क्लॉक) डिजाइन का अर्थ है। यदि आप अपने एचडीएल में क्लॉकलेस (एसिंक्रोनस) के लिए कोडिंग कर रहे थे तो आपका संश्लेषण उपकरण आरटीएल के अलावा कुछ और उपयोग कर सकता है
प्लेसहोल्डर

, वास्तव में ऐसे उपकरण हैं जो आपके आरटीएल कोड के खिलाफ आपके संश्लेषण के आउटपुट की जांच करते हैं ताकि यह सुनिश्चित हो सके कि उपकरण बेमेल के दौरान आकस्मिक अनुकूलन या कुछ परिवर्तन नहीं करता है। इसे औपचारिक सत्यापन कहा जाता है। '' नहीं, यह नहीं है। इसे लॉजिक इक्वैलेंस चेकिंग या फॉर्मल इक्वैलेंस चेकिंग कहा जाता है। औपचारिक सत्यापन साबित करने की प्रक्रिया है (गणितीय तरीकों का उपयोग करके, बिना सिमुलेशन / परीक्षण बेंच के) कि आपका हार्डवेयर विवरण वास्तव में उस व्यवहार का वर्णन करता है जिसका वर्णन करना था।
अल बंडी

14

एचडीएल (हार्डवेयर विवरण भाषा) भाषा का प्रकार है, जिसका इस्तेमाल वेरिलोग / वीएचडीएल बनाम गैर-एचडीएल जावास्क्रिप्ट के रूप में किया जाता है।

RTL (रजिस्टर-ट्रांसफर लेवल) एब्सट्रैक्शन का एक स्तर है जिसे आप लिख रहे हैं। मैं जिन तीन स्तरों का उल्लेख करता हूं, वे हैं, आरटीएल, गेट-लेवल।

व्यवहार में अमूर्तता की उच्चतम परत होती है जो समग्र व्यवहार का वर्णन करती है और अक्सर संश्लेषित नहीं होती है, लेकिन सत्यापन के लिए उपयोगी होती है।

RTL उस हार्डवेयर का वर्णन करता है जो आप तर्क को लागू करके चाहते हैं। फ्लिप-फ्लॉप, लैचिस को परिभाषित करना और उनके बीच डेटा कैसे स्थानांतरित किया जाता है। यह संश्लिष्ट है, संश्लेषण प्रयोग किए गए तर्क को बदल सकता है / अनुकूलित कर सकता है लेकिन व्यवहार को नहीं। गेट्स के लिए muxes स्विचिंग आदि कुछ बार inverting संकेतों को बेहतर डिजाइन को अनुकूलित करने के लिए।

वेरिलॉग आरटीएल एक फ्लिप फ्लॉप का अर्थ लगा रहा है:

logic a;              //logic is SystemVerilog, could be a 'reg'
logic k;              // Driven by RTL not shown
always @(posedge clk or negede rst_n) begin
  if (~rst_n) begin
    a <= 'b0 ;
  end
  else begin
    a <= k ;
  end
end

कंबाइनटोरियल बिटवाइज़ ऑपरेटर:

logic [1:0] n;
logic [1:0] m;
logic [1:0] result;

assign result = n & m ;

गेट लेवल बेस लॉजिक गेट (NAND, NOR, AND, OR, MUX, FLIP-FLOP) का उपयोग कर एक डिजाइन है। इसे संश्लेषित करने की आवश्यकता नहीं है या संश्लेषण से आउटपुट है। यह अमूर्तता का निम्नतम स्तर है। यह तर्क द्वार है जिसे आप चिप पर उपयोग करेंगे, लेकिन इसमें स्थिति संबंधी जानकारी का अभाव है।

गेट स्तर वेरिलोग (ऊपर जैसा कार्य):

wire a;
wire k;
DFFRX1 dffrx1_i0 (
  .Q (a),   //Output
  .QN( ),   //Inverted output not used
  .D (k),   //Input
  .CK(clk), //Clk
  .RN(rst_n)// Active Low Async Reset
);

मिश्रित

wire [1:0] n;
wire [1:0] m;
wire [1:0] result;

AND2X1 and2x1_i0 (
  .Y( result[0]),
  .A( n[0]     ),
  .B( m[0]     )
);
AND2X1 and2x1_i1 (
  .Y( result[1]),
  .A( n[1]     ),
  .B( m[1]     )
);

यदि कोई एक सर्किट को डिजाइन करता है MyReg[7..1] := MyReg[6..0]; MyReg[0] := SerInput; MyReg.Clk = SerClk; MyReg[7..0].AR = !InBus[7..0] & Load; MyReg[7..0].AP = InBus[7..0] & Load;(एक एसिंक्रोनस समानांतर-लोड शिफ्ट रजिस्टर जिसे Xilinx 9536 CPLD पर async रीसेट / प्रीसेट के साथ ब्लॉकों का उपयोग करके लागू किया जा सकता है) तो क्या RTL या गेट-स्तर माना जाएगा?
सुपरकैट

आरटीएल, गेट स्तर AND(.a(),.b()) OR(.a(),.b())विशुद्ध रूप से लॉजिक गेट्स की तरह दिखेगा । मैं इस धारणा के तहत हूं कि आरटीएल कुछ भी है जिसे आप संश्लेषित करना चाहते हैं, यहां तक ​​कि दहनशील सर्किट भी क्योंकि आप अभी भी डेटा में परिवर्तन का वर्णन कर रहे हैं, लेकिन तर्क सीधे गेट्स नहीं।
प्री

1
क्षमा करें, मैं इसका पालन नहीं करता, स्पष्ट करने का प्रयास करूंगा। RTL एक फ्लिप-फ्लॉप का अर्थ है। गेट-लेवल एक फ्लिप-फ्लॉप को तत्काल बनाता है। साधारण सर्किट के लिए तब लॉजिक गेट्स का एक गुच्छा हुक करना सरल हो सकता है। लेकिन बिजली क्षेत्र कुशल नहीं हो सकता है। एक एटम प्रोसेसर में 47 मिलियन ट्रांजिस्टर होते हैं जो लगभग 10 मिलियन NAND2 समकक्ष होते हैं। क्या आप 10 मिलियन हाथ से तार वाले फाटकों को परिभाषित और डिबग करना चाहेंगे? यह थोड़ा सा अमूर्त का लाभ है जिसका हम अध्ययन कर सकते हैं और इच्छित व्यवहार को डीबग कर सकते हैं।
15_13

1
मान लीजिए कि एक एचडीएल में 74HC74 निर्दिष्ट करने की कोशिश कर रहे थे। ऐसे कई तरीके हैं जो एक ऐसे उपकरण को संश्लेषित कर सकते हैं जो कॉम्बीनेटरियल लॉजिक, सिंक-ओनली फ्लॉप्स, और पारदर्शी लैचेज के संयोजन का उपयोग कर सकता है, लेकिन मैं किसी भी कार्यान्वयन को समझ नहीं सकता हूं जिसमें या तो दौड़ की स्थिति शामिल नहीं है या व्यवहार विसंगतियों का निर्माण होगा हार्डवेयर आदिम के साथ मौजूद नहीं है (जैसे यदि D और Q अधिक हैं, CP या SD पर एक रन पल्स का कोई प्रभाव नहीं होना चाहिए, लेकिन क्रियान्वयन में मैं अनुमान लगा सकता हूं कि ऐसी दालें मेटास्टेबिलिटी और / या आउटपुट ग्लिच का कारण बन सकती हैं)।
सुपरकाट

1
आप कैसे बना रहे हैं MyLatchयह एक त्वरित आधार सेल या एक निहित कुंडी है। यदि आप फाटक को इंस्टेंट करते हैं तो यह गेट लेवल है। यदि आप इसे लागू करते हैं, तो यह RTL है। गेट लेवल लाइब्रेरी में मॉडलिंग की दौड़ की स्थिति / ग्लिच आदि के लिए समय जुड़ा होगा। आरटीएल सिमुलेशन आदर्श घटकों के साथ चलते हैं।
17_13
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.