【杂七杂八】excel中根据RTL信号位宽生成拼接取位
前言
作为一个不务正业的芯片前端,总会遇到掉奇奇怪怪的需求,就比如题目这个啊,我写完之后就觉得非常的拗口。那么具体的需要是啥呢?就是比如说有了下面这个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信号位宽生成拼接取位相关推荐
- 钢琴键盘excel_如何使用键盘在Excel中设置行高和列宽
钢琴键盘excel Setting the row height and column width in Excel is easy, but if you'd rather use the keyb ...
- Verilog基础:表达式位宽的确定(位宽拓展)
相关文章 Verilog基础:位宽拓展和有符号数运算的联系 Verilog基础:表达式符号的确定 Verilog基础:数据类型 表达式位宽 如果想要在计算表达式时获得和谐一致的结果,那么控制表达式中的 ...
- excel设置行高等于列宽_如何在Excel中设置行高和列宽
excel设置行高等于列宽 By default, when you create a new workbook in Excel, the row height and column width i ...
- 【QGIS入门实战精品教程】4.5:QGIS打开Excel中的点坐标,并生成矢量文件
QGIS中可以很方便添加Excel或其他文本格式的点坐标,并将其转为矢量等多种格式的文件. 扩展阅读: [ArcGIS风暴]ArcGIS 10.2导入Excel数据X.Y坐标(经纬度.平面坐标),生成 ...
- 用小位宽乘法器实现大位宽乘法
我们在使用大位宽乘法器时,有时受到工艺的限制,乘法器位宽太大,时序收不下来,这时候需要将其拆为若干个小位宽乘法再相加,并在其中插入寄存器,即可解决以上问题. 其核心原理是乘法交换律. 我们以两个16b ...
- Excel中如何对小数进行四舍五入并保存两位小数
小数保留 在我们平时的工作生活中,常常会使用Excel来处理数据,很多的时候在面对小数的时候,要求小数位数保留两位,比如:向系统中录入数据,系统默认接收数据的模板对小数的要求是保留两位小数. 这就需要 ...
- java 8位 uuid_JAVA生成短8位UUID详解
短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个. 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUI ...
- mysql 生成8位uuid_JAVA生成短8位UUID
java 原创,转载需注明. 短8位UUID思想其实借鉴微博短域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个. 本算法利用62个可打印字符,通过随机生成32位UUID,由于UU ...
- Verilog设计中如何匹配变量的位宽?($clog2系统函数)
1.位宽太小 在FPGA设计中,我们经常需要用寄存器来寄存某些"数量类"的变量,比如FIFO的深度啦.或者计数器的最大值啦:又或者输入输出信号也需要将位宽用parameter参数化 ...
最新文章
- PHPUnit单元测试 - 我看过的PHP开源框架
- 你需要知道的MySQL开源存储引擎TokuDB
- java课程设计日历记事本代码,已开源
- 职业生涯中12个愚蠢想法
- SQL 交集 差集 并集 笛卡尔积 应用实例
- Windows中常用的git GUI客户端的介绍
- android开发环境 国内镜像 及Android SDK manager使用国内服务器方法
- 数据结构--顺序栈和链式栈
- java面试题31:结构型模式中最体现扩展性的模式是()
- 专访阿里云专有云马劲,一个理性的理想主义者
- spring架构初学者_完整的厨师和基础架构初学者指南
- python 自动发邮件 Errno61 Connection refused
- AS3利用AMFPHP与PHP进行通讯
- SOA企业需要考虑的事项
- python是什么怎么读-python怎么发音
- PS破解版全网下架?这款国产工具可完美替代
- jade的基本使用方法
- USYD悉尼大学DATA1002 详细作业解析Module7(全新讲解)
- 微信小程序--点击水波涟漪效果
- 计算机与英语关系,计算机底层和英文毫无关系