使用测试IO上跳沿替代写有效的ctrlTransmit 写入,效果很好,可以认为,当前有问题的是寄存器写入
This commit is contained in:
@@ -32,6 +32,8 @@ val reset_calib = Input(Bool())
|
|||||||
|
|
||||||
val interrupt = Output(Bool())
|
val interrupt = Output(Bool())
|
||||||
|
|
||||||
|
val testIO = Input(Bool())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
class BackBoardMstBase extends Module{ //10M
|
class BackBoardMstBase extends Module{ //10M
|
||||||
@@ -170,6 +172,11 @@ trait BackBoardMstFSMC{ this: BackBoardMstBase =>
|
|||||||
}
|
}
|
||||||
|
|
||||||
//10M
|
//10M
|
||||||
|
when(~RegNext( io.testIO, false.B ) & io.testIO){
|
||||||
|
ctrlTransmit := true.B
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
when( isAckReady ){
|
when( isAckReady ){
|
||||||
isAckReady := false.B
|
isAckReady := false.B
|
||||||
}
|
}
|
||||||
@@ -191,7 +198,7 @@ trait BackBoardMstFSMC{ this: BackBoardMstBase =>
|
|||||||
|
|
||||||
|
|
||||||
when( wrRegAddr === 1.U ){
|
when( wrRegAddr === 1.U ){
|
||||||
ctrlTransmit := wrRegData.extract(5)
|
// ctrlTransmit := wrRegData.extract(5)
|
||||||
|
|
||||||
ctrlSynch := wrRegData.extract(1)
|
ctrlSynch := wrRegData.extract(1)
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ module master_top(
|
|||||||
input io_FSMC_wrn,
|
input io_FSMC_wrn,
|
||||||
input io_FSMC_advn,
|
input io_FSMC_advn,
|
||||||
|
|
||||||
output interrupt
|
output interrupt,
|
||||||
|
input testIO
|
||||||
);
|
);
|
||||||
|
|
||||||
wire [15:0] io_FSMC_ADIn;
|
wire [15:0] io_FSMC_ADIn;
|
||||||
@@ -154,7 +155,8 @@ BackBoardMst i_BackBoardMst(
|
|||||||
.io_lvds_down_dout(lvds_down_dout),
|
.io_lvds_down_dout(lvds_down_dout),
|
||||||
.io_lvds_up_din(lvds_up_din),
|
.io_lvds_up_din(lvds_up_din),
|
||||||
|
|
||||||
.io_interrupt(interrupt)
|
.io_interrupt(interrupt),
|
||||||
|
.io_testIO(testIO)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user