कैसे मैं अपने spartanII आधारित डिजाइन में ब्लॉक रैम

V

Vonn

Guest
मैं अपने सादे द्वितीय में एक ब्लॉक रैम आधारित डिजाइन का प्रयोग की जरूरत है, यह पहली बार ISE5.1 में तर्क मुख्य जनरेटर का उपयोग है.
मैं मुख्य जनरेटर में सभी चरणों का पालन किया है और यह successfuly पूरा है, लेकिन बाद मैंने कहा कि मेरे डिजाइन बनाया मैंने देखा कि वहाँ के सूत्रों विंडो में एक उप फ़ाइल wrapped_filename कहा जाता है के लिए फ़ाइल VHD?
और जब मैं पैदा राम फ़ाइल मैं संकलन करने की कोशिश की एक त्रुटि संदेश मिल गया है
"त्रुटि: HDLParsers: 164 - सी: / Fndtn / bin / विभक्त / 111 पंक्ति. पार्स त्रुटि myram.vhd, $ अप्रत्याशित"
असल में 111 लाइन उत्पन्न कोड के अंत में है और वहाँ कोई नहीं है किसी भी $???
अगर किसी भी शरीर कोर जनरेटर का इस्तेमाल किया से पहले कृपया मुझे एक हाथ दो.

 
वैकल्पिक तरीका है एक शुद्ध VHDL कोड का उपयोग है.XST स्वतः BlockRAM सीधे एचडीएल कोड से इन्स्तांत सकता है.कोई CoreGen इस्तेमाल की जरूरत है.

Xilinx संश्लेषण प्रौद्योगिकी (XST) उपयोगकर्ता गाइड का अध्याय 2 देखें.

- यह एक बंदरगाह के लिए एक उदाहरण है BlockRam ---------
पुस्तकालय IEEE;
IEEE.std_logic_1164.all का उपयोग करें;
IEEE.std_logic_unsigned.all का उपयोग करें;

इकाई sync_ram_singleport है
सामान्य (data_width: प्राकृतिक = 8:;
addr_width: प्राकृतिक: =

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="ठंडा" border="0" />

;
बंदरगाह (
clk: में std_logic;
हम: में std_logic;
addr: में std_logic_vector (addr_width - 1 0 downto);
data_in: में std_logic_vector (data_width - 1 0 downto);
data_out: बाहर std_logic_vector (data_width - 1 0 downto)
);
अंत sync_ram_singleport;

sync_ram_singleport की वास्तुकला rtl है

प्रकार mem_type सरणी है (2 addr_width-1 0 downto std_logic_vector की) (data_width ** - 1 0 downto);
संकेत सदस्य: mem_type;

संकेत addr_reg: std_logic_vector (addr_width - 1 0 downto);

प्रारंभ करना

Singleport:
clk (प्रक्रिया)
प्रारंभ करना
अगर clk'event (और clk = '1 ') तो
अगर (= हम '1 ') तो
सदस्य (conv_integer (addr)) <= data_in;
अंत में अगर;
addr_reg <addr =;
अंत में अगर;
अंत प्रक्रिया singleport;

data_out <= सदस्य conv_integer ((addr_reg));

अंत rtl;
-------------------------------------------------- ---------------------------

 
धन्यवाद, elektrom ... यह मेरे जाने के बाद यह मेरी जरूरत है, लेकिन मैं एक और समस्या है कि .. का सामना करना पड़ा के साथ ठीक से काम करता है संशोधित
मैं (FPGA से बाहर) आम डेटा बस के उत्पादन में दुनिया में राम के आंकड़े बस जोड़ने की जरूरत है.तो मैं inout के रूप में अस्तित्व में डाटा परिभाषित ...लेकिन यह मैं अगर तुम synthizer गाइड को रैम इसे बनाना चाहते हैं मतलब है .. काम नहीं है, तुम जरूरी दिन और dout रखा था और यदि आप इसे synthizer inout राम के रूप में इसे कभी नहीं होगा.
अगर मैं गलत हूँ Plz मेरी समझ सही

 
XST बहुत चालाक नहीं है.तुम अपनी खुद की शैली में कोड लिखने है.समाधान है कवर है एक और मॉड्यूल द्वारा मॉड्यूल राम.इस तरह ...

-------------------------------------------------- ---------------------------
पुस्तकालय आईईईई;
IEEE.std_logic_1164.all उपयोग;

इकाई RAM512x16 है
पोर्ट (
CLK: में std_logic;
ADDR: में std_logic_vector (9 DOWNTO 0); पता --
हमें: में std_logic; सक्षम लिखें --
OE: में std_logic;
डेटा: INOUT std_logic_vector (DOWNTO 15 0) - डेटा इनपुट / आउटपुट
);

RAM512x16 अंत;

वास्तुकला RAM512x16 के RTL है

घटक sync_ram_singleport
सामान्य (data_width: प्राकृतिक = 8:;
addr_width: प्राकृतिक: =

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="ठंडा" border="0" />

;
बंदरगाह (
clk: में std_logic;
हम: में std_logic;
addr: में std_logic_vector (addr_width - 1 0 downto);
data_in: में std_logic_vector (data_width - 1 0 downto);
data_out: बाहर std_logic_vector (data_width - 1 0 downto)
);
अंत घटक;

संकेत DIN: 0 std_logic_vector (15 downto);
संकेत DOUT: 0 std_logic_vector (15 downto);

BEGIN

U1: sync_ram_singleport
सामान्य नक्शा (data_width = 9>,
addr_width => 16)
बंदरगाह नक्शा (
clk => CLK,
हम => हम,
addr => ADDR,
data_in => DIN,
data_out => DOUT
);

- Tristate बफर
डाटा <DOUT = जब = OE = ''1 और दूसरों ('> Z ');
DIN <आंकड़े =;

END RTL;
-------------------------------------------------- ---------------------------

सौभाग्य!

 
खोज उदारीकरण और XST xilinx दस्तावेजों वे अपनी समस्याओं के समाधान होता है.

 
Coregen का उपयोग करने के लिए, आप कोई vhd फ़ाइल में जोड़ने की जरूरत है.xst. xco फाइल की जरूरत है.

तुम ise भीतर से coregen द्वारा लागू कर सकते हैं: नए स्रोत => प्रमुख जनरल IP.फिर ब्लॉक राम स्वचालित रूप से आपकी परियोजना में वृद्धि हो जाएगी.यह काम करना चाहिए जैसा प्रत्याशित है.

 
नमस्ते
तुम राम घटक है कि आप 'CoreGen के साथ उत्पन्न तुम vhd फ़ाइल coregen पैदा कर दी है में घटक बंदरगाह definitiion पा सकते हैं ve का उपयोग करें जब चाहते हैं.मैं coregen कई बार दोहरी पोर्ट से राम का इस्तेमाल किया है और मुझे कोई समस्या नहीं थी.

 
मैं कोर जनरेटर का उपयोग किया है के लिए एक ब्लॉक रैम है, VHDL फ़ाइल में प्रथम पंक्ति
एक announcment हैं:

- तुम आवरण फ़ाइल ramcore.vhd जब अनुकरण संकलन चाहिए
- मूल, ramcore.जब आवरण फ़ाइल संकलन, ज़रूर होगा
- XilinxCoreLib VHDL सिमुलेशन पुस्तकालय संदर्भ.विस्तृत के लिए
- निर्देश, कृपया "Coregen उपयोगकर्ता गाइड का संदर्भ लें."

ramcore: बनाया vhd फ़ाइल है और तुम एक उप विंडो में फ़ाइल के रूप में देख सकते हैं wrapper_ramcore
परियोजना में स्रोत "ramcore के एक उप के रूप में"!
मैं इस फाइल के साथ सौदा नहीं कर सकता!यह एक लाल quesion चिह्न द्वारा चिह्नित किया है
और जब मैं उस पर क्लिक करें, नई विंडो प्रतीत होता है के रूप में आप नए स्रोत पैदा कर रहे हैं???
भी बनाया VHD फ़ाइल और नहीं संकलित त्रुटि देता है हो सकता है:
त्रुटि: HDLParsers: 164 - सी: / परियोजनाओं / MyProjects / राम / 112 पंक्ति ramcore.vhd.पार्स त्रुटि, अप्रत्याशित $
मैं वापस pdf "Coregen उपयोगकर्ता गाइड 'को वापस किया है, लेकिन मैं इस समस्या का समाधान नहीं मिल सकता है
किसी भी शरीर मुझे दे सकता है एक हाथ
कृपया एक चरणों में अपनी पोस्ट करें:
के बाद मैं vhd प्रमुख जनरल से बनाए फ़ाइल मिल गया है.जानते हुए भी कि Iam ISE5.1 का उपयोग
मुझे क्या करना चाहिए?
1 --
2 --
3 --

 
नमस्ते
मैं एक ही मूल बनाया (मैं एक ब्लॉक स्मृति मतलब है) और उन के बाद लाइनों टिप्पणी!यह निम्नलिखित परिभाषा बंदरगाह शामिल हैं:
पुस्तकालय ieee;
उपयोग ieee.std_logic_1164.ALL;

पुस्तकालय XilinxCoreLib;
इकाई परीक्षा है
बंदरगाह (
addr: std_logic_VECTOR (7 0 downto में);
std_logic में clk:;
दिन: std_logic_VECTOR (15 0 downto में);
dout: std_logic_VECTOR (15 0 downto से);
हम: std_logic में);
END परीक्षण;

1.आप अपने उच्च स्तर की डिजाइन में निम्नलिखित कोड रखना चाहिए:
compnent परीक्षण
बंदरगाह (
addr: std_logic_VECTOR (7 0 downto में);
std_logic में clk:;
दिन: std_logic_VECTOR (15 0 downto में);
dout: std_logic_VECTOR (15 0 downto से);
हम: std_logic में);
अंत घटक;
2.तो घटक instanciate और इसका इस्तेमाल!thats सब!!

 

Welcome to EDABoard.com

Sponsor

Back
Top