2011-03-02 64 views
5

मैं एक्सटीटी उपकरण (एस) का उपयोग करके एक्सिलिंक्स विरटेक्स 5 एफपीजीए संश्लेषित के लिए वीएचडीएल में लिखे गए एलयूटी और स्लाइस के कुछ बहुत ही विशिष्ट व्यवहार को लागू करने की कोशिश कर रहा हूं। मुझे नहीं पता कि मैं उपकरण infer से मेरा व्यवहार प्राप्त कर सकता हूं, तो मेरा मतलब क्या है, तो मैं इसे स्पष्ट रूप से कैसे करने के लिए निर्देशित करूं?स्पष्ट रूप से परिभाषित करता है कि Xilinx XST उपकरण में LUTs और स्लाइस का उपयोग कैसे किया जाता है?

मैं विरटेक्स 5 पर 6-इनपुट एलयूटी के उपयोग के बारे में बात कर रहा हूं, जिनमें से 4 सीएलबी में हैं।

मैं चाहता हूँ करने के लिए स्पष्ट रूप से राज्य: - 4 LUTs से प्रत्येक के लिए इनपुट एक सीएलबी टुकड़ा भीतर - 'पहली' MUXCY (C0) के इनपुट निर्दिष्ट करें - मार्ग 4 XORCYs से 'एस' आउटपुट - '4' MUXCY (सीएन) के मार्ग आउटपुट - एक विशेष क्रम में सीएलबी से प्रत्येक LUT की आदानों का उल्लेख कर सकते हैं, क्योंकि वे स्पष्ट रूप से झरना ..

आदर्श रूप में मैं सिर्फ का दृष्टांत में खुशी होगी एक ' सीएलबी 'वीएचडीएल में सभी इनपुट और आउटपुट के साथ, और इन्हें मैप करने में सक्षम हो ..

मैंने प्रलेखन की काफी भारी और हेवन की खोज की वास्तव में कुछ भी नहीं मिला

+0

कोई पूरा उत्तर नहीं, सिर्फ एक संकेत: हाँ, मुझे लगता है कि यह संभव है और मुझे लगता है कि इसे "मैक्रोज़" कहा जाता है। उन्हें Xilinx दस्तावेज़ में कहीं भी वर्णित किया गया है (मुझे पता है, यह बहुत बड़ा है और स्पष्ट रूप से व्यवस्थित नहीं है)। एक ऐसा अनुभाग है जो सभी आरटीएल घटकों और उनके अनुमान लगाने के विभिन्न तरीकों का वर्णन करता है। Xilinx पुस्तकालयों और उन मैक्रोज़ का उपयोग करके, आप इसे करने में सक्षम होना चाहिए। – Deve

उत्तर

5

http://www.xilinx.com/support/documentation/sw_manuals/xilinx12_2/virtex5_hdl.pdf

देखो। LUT6 विवरण और तत्कालता मॉड्यूल (Verilog/VHDL) पृष्ठ 158 पर है।

+1

मैं इसके साथ गया और आज रात संश्लेषित करने के लिए मिल गया, और यह बहुत अच्छा काम करता है। और LUT6_L और _D और _2 तत्कालताओं का उपयोग करके मुझे लगता है कि यह पूरी तरह से सुनिश्चित होना संभव है कि आप सीएलबी के भीतर इच्छित परिणाम प्राप्त करेंगे। मैंने अभी LUT6_2 और MUXCY का उपयोग किया है और मैं वही चाहता हूं जो मैं चाहता हूं। – Nektarios

2

आप आरएलओसी और बीईएल बाधाओं का उपयोग करके वांछित व्यवहार प्राप्त करने में सक्षम हो सकते हैं। आप VHDL में कमी एम्बेड कर सकते हैं: अधिक जानकारी के लिए Xilinx प्रतिबन्ध गाइड में

VHDL Syntax 

Declare the VHDL constraint as follows: 
attribute bel : string; 

Specify the VHDL constraint as follows: 
attribute bel of {component_name| label_name}: {component|label} is {F|G|FFA|FFB|FFC|FFD|FFX|FFY|XORF|XORG|A6LUT|B6LUT|C6LUT|D6LUT|A5LUT|B5LUT|C5LUT|D5LUT}"; 

देखो।

भी कुछ उदाहरण VHDL के लिए comp.arch.fpga पर यह पोस्ट देखें: LUT5/6 के लिए http://newsgroups.derkeiler.com/Archive/Comp/comp.arch.fpga/2008-05/msg00560.html

+0

यह काम किया हो सकता है लेकिन मैं इसे आजमाने में संकोच करता हूं। मेरा कारण यह है कि मैंने डीएसपी संसाधनों का उपयोग करने के लिए पहले विशेषताओं का उपयोग करने का प्रयास किया है, और इसे बहुत अप्रत्याशित पाया गया है।यह कुछ परिस्थितियों में काम करेगा, लेकिन दूसरों में यह पूरी तरह से अनदेखा प्रतीत होता है। मेरे साथियों ने भी वही मुद्दों पर भाग लिया। विशेष रूप से जब कोई डिज़ाइन बड़ा हो जाता है तो ऐसा लगता है कि कई विशेषता सेटिंग्स अविश्वसनीय हैं। आपका उत्तर सही हो सकता है, लेकिन सिर्फ मेरा अनुभव साझा कर रहा है। धन्यवाद – Nektarios

6

सायर सुझाव देता है कि आप एलयूटी को तुरंत चालू करने के लिए LUT6 का उपयोग करें। मैं LUT_MAP बाधा के साथ प्रौद्योगिकी मैपिंग को नियंत्रित करना पसंद करता हूं। इसके लिए कम रखरखाव की आवश्यकता है और आपका एचडीएल कोड उपकरण अज्ञेयवादी और सिम्युलेटर अनुकूल रहता है।

यहां एक उदाहरण है।

(* LUT_MAP="yes" *) 
module mux4(sel, a, b, c, d, o); 
input [1:0] sel; 
input  a; 
input  b; 
input  c; 
input  d; 
output reg o; 

always @* begin 
    case(sel) 
    2'b00: o <= a; 
    2'b01: o <= b; 
    2'b10: o <= c; 
    2'b11: o <= d; 
    endcase 
end 
endmodule 

यह आपको मनमाना संयोजन लॉजिक लिखने और संश्लेषण (XST) है कि इस (6-इनपुट करने के लिए, एक उत्पादन) मॉड्यूल एक भी LUT में लागू किया जाना चाहिए बता देता है। यदि आप इसे KEEP_HIERARCHY और RLOC बाधाओं के साथ जोड़ते हैं तो आप आरपीएम (संबंधपरक रूप से मैक्रोज़ रख सकते हैं) का निर्माण कर सकते हैं।

(* KEEP_HIERARCHY="true" *) 
module mux4x4p4(sel, a, b, c, d, o); 
input [1:0] sel; 
input [3:0] a; 
input [3:0] b; 
input [3:0] c; 
input [3:0] d; 
output [3:0] o; 

(* RLOC="X0Y0" *) 
mux4 m0(sel, a[0], b[0], c[0], d[0], o[0]); 
(* RLOC="X0Y0" *) 
mux4 m1(sel, a[1], b[1], c[1], d[1], o[1]); 
(* RLOC="X0Y0" *) 
mux4 m2(sel, a[2], b[2], c[2], d[2], o[2]); 
(* RLOC="X0Y0" *) 
mux4 m3(sel, a[3], b[3], c[3], d[3], o[3]); 
endmodule 

मेरी पुरानी वेबसाइट, www.fpgacpu.org पर डेटापैथ के लिए आरपीएम पर अधिक जानकारी है। उदाहरण के लिए, उच्च प्रदर्शन एफपीजीए डिजाइन की कला: http://www.fpgacpu.org/log/aug02.html#art

हैप्पी हैकिंग!