二进制到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]