risc-v中文社区

 找回密码
 立即注册
查看: 1090|回复: 0

[原创] 二进制到BCD码

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2021-9-3 11:19:41 | 显示全部楼层 |阅读模式
我们可以使用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[Int](256)
        for( i <- 0 to 99) { //[0~99]共100个
                array(i) = ((i/10)<<4 + i%10)
        }
        val table = VecInit(array.map(_.U(8.W)))
        io.data := table(io.addr)
}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-4-29 04:58 , Processed in 0.016765 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表