写完编解码模块
This commit is contained in:
@@ -63,3 +63,23 @@ object Dualb4b5Decoder{
|
||||
Cat( b4b5Decoder(enq(9,5)), b4b5Decoder(enq(4,0)) )
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class b4b5DualEncode extends Module with RequireAsyncReset{
|
||||
val io = IO(new Bundle{
|
||||
val dataIn = Input(UInt(8.W))
|
||||
val isEnable = Input(Bool())
|
||||
val dataOut = Output(UInt(10.W))
|
||||
})
|
||||
|
||||
io.dataOut := Dualb4b5Encoder(io.dataIn)
|
||||
}
|
||||
|
||||
class b8b10Decode extends Module with RequireAsyncReset{
|
||||
val io = IO(new Bundle{
|
||||
val dataIn = Input(UInt(10.W))
|
||||
val dataOut = Output(UInt(8.W))
|
||||
})
|
||||
|
||||
io.dataOut := Dualb4b5Decoder(io.dataIn)
|
||||
}
|
||||
|
||||
@@ -128,11 +128,59 @@ class b8b10Encode extends Module with RequireAsyncReset{
|
||||
class b8b10Decode extends Module with RequireAsyncReset{
|
||||
val io = IO(new Bundle{
|
||||
val dataIn = Input(UInt(10.W))
|
||||
val isEnable = Input(Bool())
|
||||
val dataOut = Output(UInt(8.W))
|
||||
})
|
||||
|
||||
|
||||
val b5b6LookUp = Mux1H(Seq(
|
||||
(io.dataIn(9,4) === "b100111".U(6.W) || io.dataIn(9,4) === "b011000".U(6.W) ) -> "b00000".U,
|
||||
(io.dataIn(9,4) === "b011101".U(6.W) || io.dataIn(9,4) === "b100010".U(6.W) ) -> "b00001".U,
|
||||
(io.dataIn(9,4) === "b101101".U(6.W) || io.dataIn(9,4) === "b010010".U(6.W) ) -> "b00010".U,
|
||||
(io.dataIn(9,4) === "b110001".U(6.W),) -> "b00011".U,
|
||||
(io.dataIn(9,4) === "b110101".U(6.W) || io.dataIn(9,4) === "b001010".U(6.W) ) -> "b00100".U,
|
||||
(io.dataIn(9,4) === "b101001".U(6.W),) -> "b00101".U,
|
||||
(io.dataIn(9,4) === "b011001".U(6.W),) -> "b00110".U,
|
||||
(io.dataIn(9,4) === "b111000".U(6.W) || io.dataIn(9,4) === "b000111".U(6.W) ) -> "b00111".U,
|
||||
(io.dataIn(9,4) === "b111001".U(6.W) || io.dataIn(9,4) === "b000110".U(6.W) ) -> "b01000".U,
|
||||
(io.dataIn(9,4) === "b100101".U(6.W),) -> "b01001".U,
|
||||
(io.dataIn(9,4) === "b010101".U(6.W),) -> "b01010".U,
|
||||
(io.dataIn(9,4) === "b110100".U(6.W),) -> "b01011".U,
|
||||
(io.dataIn(9,4) === "b001101".U(6.W),) -> "b01100".U,
|
||||
(io.dataIn(9,4) === "b101100".U(6.W),) -> "b01101".U,
|
||||
(io.dataIn(9,4) === "b011100".U(6.W),) -> "b01110".U,
|
||||
(io.dataIn(9,4) === "b010111".U(6.W) || io.dataIn(9,4) === "b101000".U(6.W) ) -> "b01111".U,
|
||||
(io.dataIn(9,4) === "b011011".U(6.W) || io.dataIn(9,4) === "b100100".U(6.W) ) -> "b10000".U,
|
||||
(io.dataIn(9,4) === "b100011".U(6.W),) -> "b10001".U,
|
||||
(io.dataIn(9,4) === "b010011".U(6.W),) -> "b10010".U,
|
||||
(io.dataIn(9,4) === "b110010".U(6.W),) -> "b10011".U,
|
||||
(io.dataIn(9,4) === "b001011".U(6.W),) -> "b10100".U,
|
||||
(io.dataIn(9,4) === "b101010".U(6.W),) -> "b10101".U,
|
||||
(io.dataIn(9,4) === "b011010".U(6.W),) -> "b10110".U,
|
||||
(io.dataIn(9,4) === "b111010".U(6.W) || io.dataIn(9,4) === "b000101".U(6.W) ) -> "b10111".U,
|
||||
(io.dataIn(9,4) === "b110011".U(6.W) || io.dataIn(9,4) === "b001100".U(6.W) ) -> "b11000".U,
|
||||
(io.dataIn(9,4) === "b100110".U(6.W),) -> "b11001".U,
|
||||
(io.dataIn(9,4) === "b010110".U(6.W),) -> "b11010".U,
|
||||
(io.dataIn(9,4) === "b110110".U(6.W) || io.dataIn(9,4) === "b001001".U(6.W) ) -> "b11011".U,
|
||||
(io.dataIn(9,4) === "b001110".U(6.W),) -> "b11100".U,
|
||||
(io.dataIn(9,4) === "b101110".U(6.W) || io.dataIn(9,4) === "b010001".U(6.W) ) -> "b11101".U,
|
||||
(io.dataIn(9,4) === "b011110".U(6.W) || io.dataIn(9,4) === "b100001".U(6.W) ) -> "b11110".U,
|
||||
(io.dataIn(9,4) === "b101011".U(6.W) || io.dataIn(9,4) === "b010100".U(6.W) ) -> "b11111".U,
|
||||
))
|
||||
|
||||
val b3b4LookUp = Mux1H(Seq(
|
||||
(io.dataIn(3,0) === "b1011".U(4.W) || io.dataIn(3,0) === "b0100".U(4.W) ) -> "b000".U,
|
||||
(io.dataIn(3,0) === "b1001".U(4.W)) -> "b001".U,
|
||||
(io.dataIn(3,0) === "b0101".U(4.W)) -> "b010".U,
|
||||
(io.dataIn(3,0) === "b1100".U(4.W) || io.dataIn(3,0) === "b0011".U(4.W) ) -> "b011".U,
|
||||
(io.dataIn(3,0) === "b1101".U(4.W) || io.dataIn(3,0) === "b0010".U(4.W) ) -> "b100".U,
|
||||
(io.dataIn(3,0) === "b1010".U(4.W)) -> "b101".U,
|
||||
(io.dataIn(3,0) === "b0110".U(4.W)) -> "b110".U,
|
||||
(io.dataIn(3,0) === "b1110".U(4.W) ||
|
||||
io.dataIn(3,0) === "b0001".U(4.W) ||
|
||||
io.dataIn(3,0) === "b0111".U(4.W) ||
|
||||
io.dataIn(3,0) === "b1000".U(4.W)) -> "b111".U,
|
||||
))
|
||||
|
||||
io.dataOut := Cat(b3b4LookUp, b5b6LookUp)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user