مساعدة!

G

Guest

Guest
لدي مشكلة صغيرة حول inout "".

الوحدة النمطية الرئيسي هو TDSP ، وحدة فرعية هي McBSP0.
"Send_Trig" يستخدم في McBSP0.
أريد استخدام "Send_Trig" كميناء inout لتحريك كتلة ارسال وتغذية مرتدة رسالة الإنجاز.

لكنني لا استطيع دفع "Send_Trig" من قبل Test_Send_FLG من TDSP.
في نتيجة المحاكاة (Modelsim) ، Test_Send_FLG هو أخضر ، ولكن i_Test_Send_FLG هو أحمر ، وSend_Trig أحمر جدا.

الرجاء مساعدتي!

TDSP النمطية (
...
...

)

ريج Test_Send_FLG = 0 ؛
سلك i_Test_Send_FLG = 0 ؛
...

تعيين i_Test_Send_FLG = Test_Send_FLG ؛

McBSP McBSP0 (
. إعادة (TDSP_nRESET) ،
. CLKI (TDSP_CLKI) ،
. SCLK (TDSP_SCLK) ،
. FSR (TDSP_FSR0) ،
الدكتور (TDSP_DR0) ،
. FSX (TDSP_FSX1) ،
. DX (TDSP_DX1) ،
. Send_Trig (i_Test_Send_FLG) ،
. RINT (i_TDSP_RINT) ،
. تينت (i_TDSP_TINT) ،
. Data_Out (i_temp_Out) ،
. Data_In (temp_In) ،
. sym_pos (i_sym_pos)
(؛)

endmodule
McBSP النمطية (
إعادة تعيين ،
CLKI ،
SCLK ،
FSR ،
د ،
FSX ،
DX ،
Send_Trig ،
RINT ،
تينت ،
Data_Out ،
Data_In ،
sym_pos
(؛)
/************************/
/ **入出力信号の定義** /
/************************/
إستعادة المدخلات ؛
مدخلات CLKI ؛
SCLK المدخلات ؛
FSR المدخلات ؛
الدكتور المدخلات ؛
مدخلات FSX ؛
DX المدخلات ؛
Send_Trig inout ؛ريج r_DX = 1'b0 ؛
ريج r_FSX = 1'b0 ؛

ريج [15 : 0] RD1_Data_MEM [15:0] ؛
ريج [3 : 0] RxBit_16_CNT ؛
ريج Send_Trig_Lat = 0 ؛
ريج r_Send_TrigO ؛
r_Send_Start حصوي ؛
ريج Send_Trig_Drv = 1'b0 ؛
ريج r_Tx_Permit = 0 ؛
ريج [3 : 0] TxBit_16_CNT ؛
ريج [15 : 0] RCV_Shift_REG ؛
ريج [15 : 0] Send_Shift_REG ؛
ريج [3 : 0] Word_16_CNT ؛
ريج [1 : 0] r_RINT ؛
ريج [1 : 0] r_TINT ؛
ريج [15 : 0] r_Data_Out ؛

r_sym_pos حصوي ؛

تعيين DX = r_DX ؛
تعيين FSX = r_FSX ؛
تعيين Data_out = r_Data_Out ؛
تعيين sym_pos = r_sym_pos ؛

bufif1 Send_Trig_C (Send_Trig ، r_Send_TrigO ، Send_Trig_Drv) ؛

الأولي
يبدأ
Send_Trig_Drv = 1'b0 ؛
نهاية/***************************************/
/***** إرسال البيانات الرئيسية لCMX *****/
/***************************************/
دائما @ (إعادة تعيين أو posedge SCLK)
يبدأ
إذا كان (إعادة == 1'h0)
Send_Trig_Lat <= 1'b0 ؛
أيضا
Send_Trig_Lat <= Send_Trig ؛
نهايةدائما @ (إعادة تعيين أو posedge SCLK)
يبدأ
إذا كان (إعادة == 1'h0)
r_FSX <= 1'b0 ؛
والا اذا (Send_Trig == 1'b1 & & Send_Trig_Lat == 1'b0)
r_FSX <= 1'b1 ؛
أيضا
r_FSX <= 1'b0 ؛
نهايةدائما @ (إعادة تعيين أو posedge CLKI)
يبدأ
إذا كان (إعادة == 1'h0)
Send_Trig_Drv <= 1'b0 ؛
والا اذا (r_Tx_Permit == 1'b1)
Send_Trig_Drv <= 1'b1 ؛
أيضا
Send_Trig_Drv <= 1'b0 ؛
نهاية...

endmodule

 
في المقام الأول على رقاقة الثلاثية حافلة المعلن هو غير مسموح به إلا إذا كانت هناك حاجة حقيقية لاسيكس!
وثانيا مع الدولة الثلاثية حافلة تحتاج إلى معرفة متى exacly بقيادة الحافلة!وإلا
كنت ستواجه contension الحافلة.عندما نعرف أن يقود الحافلة تحتاج إشارة التصفيات!
في حالة اور يمكنك beringout Send_Trig_Drv على اعلى مستوى ودفع i_Test_Send_FLG على النحو التالي...

سلك i_Test_Send_FLG = Send_Trig_Drv؟'بيسة : Test_Send_FLG ؛

نأمل حل هذه المشكلة اور!

 
شكرا لك على النصيحة.
التالية اقتراحكم ، راجعت قانون بلدي وجدت i_Test_Send_FLG هو initiallized ل1'b1 في وحدة رئيسية.
ما قلته صحيح ، وثلاثي الدولة الحافلة هو من الصعب السيطرة عليها.

شيه شيه!

 
implemention سيكون :

1.أول اثنين من استخدام إشارة in_a وout_a لمدخلات الانتاج واشارات.
2.ثم استخدام inout الدبوس التحالف لربطها.

الأمل يمكن الإجابة على السؤال.

 

Welcome to EDABoard.com

Sponsor

Back
Top