M
montanha
Guest
Tenho um pequeno problema sobre o inout ".
O módulo principal é TDSP, o sub-módulo é McBSP0.
"Send_Trig" é usado no McBSP0.
Eu quero usar "Send_Trig" como uma porta de entrada
/ saída para acionar a enviar bloco e alimentação para trás uma mensagem de conclusão.
Mas eu não posso dirigir o "Send_Trig" por Test_Send_FLG de TDSP.
No resultado da simulação (Modelsim), Test_Send_FLG é verde, mas o i_Test_Send_FLG é vermelho, eo Send_Trig é vermelho também.
Por favor, me ajude!
TDSP (módulo
...
...
)
reg Test_Send_FLG = 0;
i_Test_Send_FLG wire = 0;
...
atribuir i_Test_Send_FLG = Test_Send_FLG;
McBSP McBSP0 (
. RESET (TDSP_nRESET),
. CLKI (TDSP_CLKI),
. SCLK (TDSP_SCLK),
. FSR (TDSP_FSR0),
. DR (TDSP_DR0),
. FSX (TDSP_FSX1),
. DX (TDSP_DX1),
. Send_Trig (i_Test_Send_FLG),
. RINT (i_TDSP_RINT),
. TINT (i_TDSP_TINT),
. Data_Out (i_temp_Out),
. Data_In (temp_In),
. sym_pos (i_sym_pos)
);
endmodule
McBSP (módulo
RESET,
CLKI,
SCLK,
FSR,
DR,
FSX,
DX,
Send_Trig,
RINT,
MATIZ,
Data_out,
Data_In,
sym_pos
);
/************************/
/ **入出力信号の定義** /
/************************/
RESET de entrada;
entrada CLKI;
SCLK de entrada;
FSR de entrada;
DR de entrada;
entrada FSX;
DX entrada;
Send_Trig inout;reg r_DX = 1'b0;
reg r_FSX = 1'b0;
reg [15: 0] RD1_Data_MEM [15:0];
reg [3: 0] RxBit_16_CNT;
reg Send_Trig_Lat = 0;
reg r_Send_TrigO;
r_Send_Start reg;
reg Send_Trig_Drv = 1'b0;
reg r_Tx_Permit = 0;
reg [3: 0] TxBit_16_CNT;
reg [15: 0] RCV_Shift_REG;
reg [15: 0] Send_Shift_REG;
reg [3: 0] Word_16_CNT;
reg [1: 0] r_RINT;
reg [1: 0] r_TINT;
reg [15: 0] r_Data_Out;
r_sym_pos reg;
atribuir DX = r_DX;
atribuir FSX = r_FSX;
atribuir Data_out = r_Data_Out;
atribuir sym_pos = r_sym_pos;
bufif1 Send_Trig_C (Send_Trig, r_Send_TrigO, Send_Trig_Drv);
inicial
começo
Send_Trig_Drv = 1'b0;
fim/***************************************/
/***** Enviar Dados para o principal CMX *****/
/***************************************/
always @ (RESET ou posedge SCLK)
começo
if (reset == 1'h0)
Send_Trig_Lat <= 1'b0;
diferente
Send_Trig_Lat <= Send_Trig;
fimalways @ (RESET ou posedge SCLK)
começo
if (reset == 1'h0)
r_FSX <= 1'b0;
else if (Send_Trig == 1'b1 & & Send_Trig_Lat == 1'b0)
r_FSX <= 1'b1;
diferente
r_FSX <= 1'b0;
fimalways @ (RESET ou posedge CLKI)
começo
if (reset == 1'h0)
Send_Trig_Drv <= 1'b0;
else if (r_Tx_Permit == 1'b1)
Send_Trig_Drv <= 1'b1;
diferente
Send_Trig_Drv <= 1'b0;
fim...
endmodule
O módulo principal é TDSP, o sub-módulo é McBSP0.
"Send_Trig" é usado no McBSP0.
Eu quero usar "Send_Trig" como uma porta de entrada
/ saída para acionar a enviar bloco e alimentação para trás uma mensagem de conclusão.
Mas eu não posso dirigir o "Send_Trig" por Test_Send_FLG de TDSP.
No resultado da simulação (Modelsim), Test_Send_FLG é verde, mas o i_Test_Send_FLG é vermelho, eo Send_Trig é vermelho também.
Por favor, me ajude!
TDSP (módulo
...
...
)
reg Test_Send_FLG = 0;
i_Test_Send_FLG wire = 0;
...
atribuir i_Test_Send_FLG = Test_Send_FLG;
McBSP McBSP0 (
. RESET (TDSP_nRESET),
. CLKI (TDSP_CLKI),
. SCLK (TDSP_SCLK),
. FSR (TDSP_FSR0),
. DR (TDSP_DR0),
. FSX (TDSP_FSX1),
. DX (TDSP_DX1),
. Send_Trig (i_Test_Send_FLG),
. RINT (i_TDSP_RINT),
. TINT (i_TDSP_TINT),
. Data_Out (i_temp_Out),
. Data_In (temp_In),
. sym_pos (i_sym_pos)
);
endmodule
McBSP (módulo
RESET,
CLKI,
SCLK,
FSR,
DR,
FSX,
DX,
Send_Trig,
RINT,
MATIZ,
Data_out,
Data_In,
sym_pos
);
/************************/
/ **入出力信号の定義** /
/************************/
RESET de entrada;
entrada CLKI;
SCLK de entrada;
FSR de entrada;
DR de entrada;
entrada FSX;
DX entrada;
Send_Trig inout;reg r_DX = 1'b0;
reg r_FSX = 1'b0;
reg [15: 0] RD1_Data_MEM [15:0];
reg [3: 0] RxBit_16_CNT;
reg Send_Trig_Lat = 0;
reg r_Send_TrigO;
r_Send_Start reg;
reg Send_Trig_Drv = 1'b0;
reg r_Tx_Permit = 0;
reg [3: 0] TxBit_16_CNT;
reg [15: 0] RCV_Shift_REG;
reg [15: 0] Send_Shift_REG;
reg [3: 0] Word_16_CNT;
reg [1: 0] r_RINT;
reg [1: 0] r_TINT;
reg [15: 0] r_Data_Out;
r_sym_pos reg;
atribuir DX = r_DX;
atribuir FSX = r_FSX;
atribuir Data_out = r_Data_Out;
atribuir sym_pos = r_sym_pos;
bufif1 Send_Trig_C (Send_Trig, r_Send_TrigO, Send_Trig_Drv);
inicial
começo
Send_Trig_Drv = 1'b0;
fim/***************************************/
/***** Enviar Dados para o principal CMX *****/
/***************************************/
always @ (RESET ou posedge SCLK)
começo
if (reset == 1'h0)
Send_Trig_Lat <= 1'b0;
diferente
Send_Trig_Lat <= Send_Trig;
fimalways @ (RESET ou posedge SCLK)
começo
if (reset == 1'h0)
r_FSX <= 1'b0;
else if (Send_Trig == 1'b1 & & Send_Trig_Lat == 1'b0)
r_FSX <= 1'b1;
diferente
r_FSX <= 1'b0;
fimalways @ (RESET ou posedge CLKI)
começo
if (reset == 1'h0)
Send_Trig_Drv <= 1'b0;
else if (r_Tx_Permit == 1'b1)
Send_Trig_Drv <= 1'b1;
diferente
Send_Trig_Drv <= 1'b0;
fim...
endmodule