使用外部分频器,面积没有变化

This commit is contained in:
RuigeLee
2024-05-09 11:39:13 +08:00
parent 2ded26a706
commit bfa432a471
3 changed files with 49 additions and 14 deletions

View File

@@ -12,6 +12,7 @@ class BackBoardSlvIO extends Bundle{
val oser_fclk = Input(Bool())
val ides_pclk = Input(Bool())
val ides_fclk = Input(Bool())
val clk8us = Input(Bool())
val lvds_down_din = Input(Bool())
val lvds_down_dout = Output(Bool())

View File

@@ -60,8 +60,9 @@ abstract class BackBoardSlvLocal extends BackBoardSlvBase with BackBoardSlvDown
}
val (usCounter, usTrigger) = Counter(Range(0, 10))
val clk16us = withClockAndReset( io.clk8us.asClock, reset ){ Reg(Bool())}
withClockAndReset( io.clk8us.asClock, reset ){ clk16us := ~clk16us }
// val (usCounter, usTrigger) = Counter(Range(0, 10))
}
@@ -71,13 +72,13 @@ abstract class BackBoardSlvLocal extends BackBoardSlvBase with BackBoardSlvDown
trait BackBoardSlvStatusPR { this: BackBoardSlvLocal =>
val flashCounter = RegInit( 0.U( 19.W ) )
val flashCounter = RegInit( 0.U( 15.W ) )
val flash2HZ = Reg(Bool())
val flash1HZ = Reg(Bool())
when( usTrigger ){
when( flashCounter >= 500000.U ){
when( clk16us ){
when( flashCounter === 31249.U ){
flashCounter := 0.U
flash2HZ := ~flash2HZ
when( flash2HZ ){
@@ -103,20 +104,21 @@ trait BackBoardSlvStatusPR { this: BackBoardSlvLocal =>
trait BackBoardSlvIn16 { this: BackBoardSlvLocal =>
val inPin = Wire(UInt(16.W))
val flitCnt = RegInit(MixedVecInit(Seq( false.B, 0.U(4.W), false.B, false.B, false.B, false.B, false.B, false.B, false.B) ))
val flitTrigger = Wire(Vec(9, Bool()))
val digitalFilter = for( i <- 0 until 2 ) yield { RegInit( 1.U(8.W) ) }
val digitalIn = for( i <- 0 until 2 ) yield { Reg( Vec(8, Bool()) ) }
val flitCnt = withClockAndReset( io.clk8us.asClock, reset ){ RegInit(MixedVecInit(Seq( false.B, 0.U(4.W), false.B, false.B, false.B, false.B, false.B, false.B, false.B) )) }
val flitTrigger = withClockAndReset( io.clk8us.asClock, reset ){ Wire(Vec(9, Bool())) }
val digitalIn = withClockAndReset( io.clk8us.asClock, reset ){ for( i <- 0 until 2 ) yield { Reg( Vec(8, Bool()) ) } }
withClockAndReset( io.clk8us.asClock, reset ){
flitTrigger(0) := ~RegNext(flitTrigger(0))
flitTrigger(1) := flitCnt(1) === 15.U
when( ~RegNext(usTrigger) & usTrigger ){
flitCnt(1) := flitCnt(1) + 1.U
}
flitTrigger(1) := clk16us
// flitTrigger(1) := flitCnt(1) === 15.U
// when( ~RegNext(usTrigger) & usTrigger ){
// flitCnt(1) := flitCnt(1) + 1.U
// }
flitTrigger(2) := flitCnt(2)
when( ~RegNext(flitTrigger(1)) & flitTrigger(1) ){
@@ -202,6 +204,7 @@ trait BackBoardSlvIn16 { this: BackBoardSlvLocal =>
}
}
}
}
}