joe 发表于 2021-9-3 11:19:41

二进制到BCD码

我们可以使用scala去生成我们的逻辑表。例如生成一个表格的定点类型常量,去表示一个三角函 数, 计算数字滤波器的常量,或是编写一个小的scala汇编器用来生成chisel编写的微处理器。
一个经典的例子是二进制数转换为BCD码:
import chisel3._
import scala.io.Source
class BCD extends Module{
val io = IO(new Bundle {
    val addr = Input(UInt(8.W))
    val data = Output(UInt(8.W))
})
        val array = new Array(256)
        for( i <- 0 to 99) { //共100个
                array(i) = ((i/10)<<4 + i%10)
        }
        val table = VecInit(array.map(_.U(8.W)))
        io.data := table(io.addr)
}

页: [1]
查看完整版本: 二进制到BCD码