前言

作为一个不务正业的芯片前端,总会遇到掉奇奇怪怪的需求,就比如题目这个啊,我写完之后就觉得非常的拗口。那么具体的需要是啥呢?就是比如说有了下面这个excel表:

信号名 width
sig0 3
sig1 10
sig2 14
sig3 20
sig4 8

要直接做一列生成前面几个信号在整体信号中的取位信息,简单来说就是这样:

信号名 width local
sig0 3 [2:0]
sig1 10 [12:3]
sig2 14 [26:13]
sig3 20 [46:27]
sig4 8 [54:47]

并且呢,当前面的信号位宽调整后,后面也要自己跟着动,比如说这样:

信号名 width local
sig0 3 [2:0]
sig1 10 [12:3]
sig2 111 [123:13]
sig3 20 [143:124]
sig4 8 [151:144]

emmmm,是不是看起来超集的简单并且有条理了,看起来的确是非常的简单。

解决方法

我试了好多方法一筹莫展啊,这玩意看起来简单实现还挺烦的,所以不得已呢我借助了中间变量,先加两列再说:

这两列的实现就非常简单了,不需要解释。有了这两行之后呢,你看看这加起新的一列不就简单很多了么,直接找好对应的列,一写这不就成了么:

=[C3:D3]

emmmm

就很离谱,为啥我没钱买正版的excel呢?这不是重点,重点是公式为啥这么不智能呢,于是还要上手改。

我查到了TEXT函数可以把数字转成字符,那么怎么把字符拼接呢?这个时候就全凭灵光乍现了~之前写VBA的时候我记得比较清楚,字符串的拼接是用&来做的,我试了下还真的是一样的:

="["&TEXT((C3),"###")&":"&TEXT(D3,"###")&"]"

改成这个样子后可以说非常完美,但是美中不足是,数字0会被忽视不打印,因此呢第一行简化一下:

="["&TEXT((C2),"###")&":"&"0]"

惨兮兮的自己写0吧,反正能用就行呗。

于是乎最后的效果就出现了:

信号名 width MSB LSB local
sig0 3 2 0 [2:0]
sig1 10 12 3 [12:3]
sig2 111 123 13 [123:13]
sig3 20 143 124 [143:124]
sig4 8 151 144 [151:144]
sig5 4 155 152 [155:152]
sig6 5 160 156 [160:156]
sig7 4 164 161 [164:161]
sig8 5 169 165 [169:165]
sig9 7 176 170 [176:170]

哎,随便你怎么拉怎么加,都是无脑适配的~可以说没有任何问题。那么反过头来一看,比原始需求好像多了两列,那怎么办呢?

我要是甲方可以说是非常满意,甚至想请吃饭!

【杂七杂八】excel中根据RTL信号位宽生成拼接取位相关推荐

  1. 钢琴键盘excel_如何使用键盘在Excel中设置行高和列宽

    钢琴键盘excel Setting the row height and column width in Excel is easy, but if you'd rather use the keyb ...

  2. Verilog基础:表达式位宽的确定(位宽拓展)

    相关文章 Verilog基础:位宽拓展和有符号数运算的联系 Verilog基础:表达式符号的确定 Verilog基础:数据类型 表达式位宽 如果想要在计算表达式时获得和谐一致的结果,那么控制表达式中的 ...

  3. excel设置行高等于列宽_如何在Excel中设置行高和列宽

    excel设置行高等于列宽 By default, when you create a new workbook in Excel, the row height and column width i ...

  4. 【QGIS入门实战精品教程】4.5:QGIS打开Excel中的点坐标,并生成矢量文件

    QGIS中可以很方便添加Excel或其他文本格式的点坐标,并将其转为矢量等多种格式的文件. 扩展阅读: [ArcGIS风暴]ArcGIS 10.2导入Excel数据X.Y坐标(经纬度.平面坐标),生成 ...

  5. 用小位宽乘法器实现大位宽乘法

    我们在使用大位宽乘法器时,有时受到工艺的限制,乘法器位宽太大,时序收不下来,这时候需要将其拆为若干个小位宽乘法再相加,并在其中插入寄存器,即可解决以上问题. 其核心原理是乘法交换律. 我们以两个16b ...

  6. Excel中如何对小数进行四舍五入并保存两位小数

    小数保留 在我们平时的工作生活中,常常会使用Excel来处理数据,很多的时候在面对小数的时候,要求小数位数保留两位,比如:向系统中录入数据,系统默认接收数据的模板对小数的要求是保留两位小数. 这就需要 ...

  7. java 8位 uuid_JAVA生成短8位UUID详解

    短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个. 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUI ...

  8. mysql 生成8位uuid_JAVA生成短8位UUID

    java 原创,转载需注明. 短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个. 本算法利用62个可打印字符,通过随机生成32位UUID,由于UU ...

  9. Verilog设计中如何匹配变量的位宽?($clog2系统函数)

    1.位宽太小 在FPGA设计中,我们经常需要用寄存器来寄存某些"数量类"的变量,比如FIFO的深度啦.或者计数器的最大值啦:又或者输入输出信号也需要将位宽用parameter参数化 ...

最新文章

  1. PHPUnit单元测试 - 我看过的PHP开源框架
  2. 你需要知道的MySQL开源存储引擎TokuDB
  3. java课程设计日历记事本代码,已开源
  4. 职业生涯中12个愚蠢想法
  5. SQL 交集 差集 并集 笛卡尔积 应用实例
  6. Windows中常用的git GUI客户端的介绍
  7. android开发环境 国内镜像 及Android SDK manager使用国内服务器方法
  8. 数据结构--顺序栈和链式栈
  9. java面试题31:结构型模式中最体现扩展性的模式是()
  10. 专访阿里云专有云马劲,一个理性的理想主义者
  11. spring架构初学者_完整的厨师和基础架构初学者指南
  12. python 自动发邮件 Errno61 Connection refused
  13. AS3利用AMFPHP与PHP进行通讯
  14. SOA企业需要考虑的事项
  15. python是什么怎么读-python怎么发音
  16. PS破解版全网下架?这款国产工具可完美替代
  17. jade的基本使用方法
  18. USYD悉尼大学DATA1002 详细作业解析Module7(全新讲解)
  19. 微信小程序--点击水波涟漪效果
  20. 计算机与英语关系,计算机底层和英文毫无关系

热门文章

  1. 不要再被误导了,64位X86 CPU是没有64位寻址能力的!
  2. 珍贵的人生格言81条和诸位分享
  3. 【HDU No. 2243】单词情结 考研路茫茫——单词情结
  4. Android开发之点击输入法外部关闭键盘点击输入法外部关闭输入法的解决方法
  5. 施耐德PLC初始IP地址计算
  6. 学习笔记,什么是双活
  7. 记一次Android第三方日历控件CalendarView的使用
  8. Elastic App Search:免费的产品,可提供出色的搜索体验
  9. nginx的access.log文件详解
  10. JDK下载应该选择哪个版本?教你选择最好的JDK版本