excel中使地址按十六进制进行数值递增的函数

这里是尼德兰的喵·工具相关文章,欢迎您的访问!

如果文章对您有所帮助,期待您的点赞收藏!

让我们一起为成为芯片前端全栈工程师而努力!

在进行寄存器编写时很多时候会涉及到算地址的问题,通常32bit位宽的寄存器地址每次偏移4,那么典型的场景就是下图:

excel中使地址按十六进制进行数值递增的函数_第1张图片

那这一看显然不是直接拖鼠标就能完成的了,所以我们需要借助一些exel的内置函数。最后整合到一起呢就是这样:

="0x"&DEC2HEX(HEX2DEC(RIGHT(B4,4))+4,4)

 看起来非常的乱,咱们拆解这一步步看就很清晰了:

=RIGHT(B4,4) 
//把上一个单元格如0x0010,取右边四个字符0010,如果地址宽度表示不是4就改一下
//如果不确定宽度就用RIGHT(B4, len(B4)-2)把前面的0x减去就行

=HEX2DEC(RIGHT(B4,4))
//把截出来的0010转成由十六进制转成十进制

=HEX2DEC(RIGHT(B4,4))+4
//地址+4作为本寄存器的偏移地址

=DEC2HEX(HEX2DEC(RIGHT(B4,4))+4,4)
//将计算得到的十进制地址转为十六进制,字符宽度为4,如果4个位宽不够那这里可以改

="0x"&DEC2HEX(HEX2DEC(RIGHT(B4,4))+4,4)
//将得到的十六进制地址前缀0x,作为生成的字符

所以之后做寄存器文档时候,只要是连续的地址空间把第一个地址写好,之后就用这个函数顺着往下一拽就可以了!

你可能感兴趣的:(芯片前端脚本,verilog,芯片,IC,excel)