تشو (على) تجميع rtus بطيئة جدا لذاكرة الوصول العشوائي التصميم.

S

sora5563

Guest
عند استخدام تشو (على) rtus أدوات لجمع تصحيح بلدي ذاكرة مزدوجة الميناء تصميم
يأخذ مني ساعة لجمع وتوليف ملف شفرة المصدر.

رام فقط بحجم 64 بايت ، وبعد النجاح في تجميع 5 دقائق.
العصر عندما تزيد تبعا لحجم ذاكرة الوصول العشوائي للضعف ،
فلنقل 128bytes حوالي 10minutes أو أكثر ، وهكذا.

ام الذهاب إلى تصميم 4 ك بايت ذاكرة نفسي مع مشروع صغير.كل شيء
جيدة باستثناء ذاكرة مع تجميع مرات تستهلك ساعات من الزمن.

ان مستاء جدا.

************************************************
مكتبة IEEE ؛
استخدام IEEE.std_logic_1164.all ؛
استخدام IEEE.std_logic_arith.all ؛

هو كيان RAM128
العامة)
ج : integer : = 7 ؛
الكلمات : integer : = 128 ؛
م : integer : = 8
(؛)
الميناء)
clk : في STD_LOGIC ؛
TxR : في STD_LOGIC ؛
TxW : في STD_LOGIC ؛
AddrTx1 : في STD_LOGIC_VECTOR (1 downto 0) ؛
AddrTx2 : في STD_LOGIC_VECTOR (1 downto 0) ؛
DataTxIn : في STD_LOGIC_VECTOR (ام 1 downto 0) ؛
DataTxOut : من أصل STD_LOGIC_VECTOR (ام 1 downto 0) ؛
AddrRx1 : في STD_LOGIC_VECTOR (1 downto 0) ؛
AddrRx2 : في STD_LOGIC_VECTOR (1 downto 0) ؛
RxW : في STD_LOGIC ؛
RxR : في STD_LOGIC ؛
DataRxIn : في STD_LOGIC_VECTOR (ام 1 downto 0) ؛
DataRxOut : من أصل STD_LOGIC_VECTOR (ام 1 downto 0)
(؛)
نهاية RAM128 ؛

الهيكل RAM128_arch من هو RAM128

فرعي الخلية std_logic_vector (ام 1 downto 0) ؛
هو نوع ramArray مجموعة (0 الكلام - 1) للخلية ؛
إشارة رام : ramArray ؛
إشارة AddrMatch : std_logic ؛

يبدأ
AddrMatch <= '1' عندما AddrTx1 = AddrRx2) آخر '0' ؛

عملية (clk ، AddrTx1 ، AddrRx2 ، TxW ، RxW ، AddrMatch)
يبدأ
إذا كان (clk'event وclk = '1')
، ثم
إذا كان (TxW = '1') و (AddrMatch = '0')
، ثم
الرام (CONV_INTEGER (غير موقعة (AddrTx1))) <= DataTxIn ؛
أيضا
إذا كان (TxW = '1') و (AddrMatch = '1') و (RxW = '1')
، ثم
الرام (CONV_INTEGER (غير موقعة (AddrTx1))) <= DataTxIn ؛
إذا كانت الغاية ؛
إذا كانت الغاية ؛

إذا كان (RxW = '1') و (AddrMatch = '0')
، ثم
الرام (CONV_INTEGER (غير موقعة (AddrRx2))) <= DataRxIn ؛
أيضا
إذا كان (TxW = '1') و (AddrMatch = '1') و (RxW = '1')
، ثم
الرام (CONV_INTEGER (غير موقعة (AddrTx1))) <= DataTxIn ؛
إذا كانت الغاية ؛
إذا كانت الغاية ؛
إذا كانت الغاية ؛
في نهاية هذه العملية ؛

عملية (RxR ، AddrRx1 ، الرام)
يبدأ
إذا كان (RxR = '1')
، ثم
DataRxOut <= الرام (CONV_INTEGER (غير موقعة (AddrRx1))) ؛
أيضا
DataRxout <= (الآخرين => '0') ؛
إذا كانت الغاية ؛
في نهاية هذه العملية ؛

عملية (TxR ، AddrTx2 ، الرام)
يبدأ
إذا كان (TxR = '1')
، ثم
DataTxOut <= الرام (CONV_INTEGER (غير موقعة (AddrTx2))) ؛
أيضا
DataTxOut <= (الآخرين => '0') ؛
إذا كانت الغاية ؛
في نهاية هذه العملية ؛

نهاية RAM128_arch ؛
************************************************** ****************

هل هناك خبراء يمكن أن تساعد على معالجة هذه المشكلة؟
هل هناك أفكار جيدة للحد من الوقت للتجميع؟
هذا يجعلني مجنون!
الرجاء المساعدة على وظيفة appreciatable الأفكار الخاصة بك!

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="سعيد جدا" border="0" />
 
مرحبا عزيزي ،
1.استخدام الخيار comilation الذكية.
2.زيادة ذاكرة 1 جيجابايت تصل عملنا محطةALT007بعد 40 ثانية :مرحبا عزيزي ،
1.استخدام الخيار comilation الذكية.
2.زيادة ذاكرة 1 جيجابايت تصل عملنا محطةALT007

 
Thanx ، ولكن لي لتشغيل أول تجميع كامل الحق ، bcuz الذكية التجميع
وهو خيار إعادة تصنيف تتخطاه أي تغيير في وحدة التجميع.

إذا كنت ترغب في رفع مستوى كمتة من ذاكرة الكمبيوتر ،
هل هناك وسائل أخرى لزيادة سرعة تجميع؟

 

Welcome to EDABoard.com

Sponsor

Back
Top