Chisel错误总结与思考

1.Chisel是硬件语言,所以最好每个when都跟着.otherwise
2.寄存器中的数都是按照补码形式存的,所以在做tmp(63,32)这种截断取值时要格外注意,取出的是补码的相应位。
3.Test文件中每一个step对应一个cycle,step(1)代表着让电路向前运行一个时间单位。
4.peek(a)可以在test文件中取出a的值
5.线用:=连上后就连上了,是并行运行的,右端一改,左端立刻会变,不是顺序执行的,所以要注意。
6.所有的输出线都要有值,不能有地方是空的,不赋值的
7.模块中输出如果定义的是UInt,那么在测试的时候也要注意把期望的输出从Int变为UInt,具体函数:
Big_tot一定要是BigInt类型。

var Big_tot = BigInt(0)
Big_tot = intToUnsignedBigInt(tot) // 将有符号数转化为无符号数

8.在写状态机时,每个状态一定要想清楚再写代码。
9.在有状态机时,寄存器更新时机一定要注意,一定要写清楚。
10.寄存器的值只会在下一个step更新,Wire类型的值会实时更新。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值