- 博客(493)
- 资源 (6)
- 收藏
- 关注
原创 python脚本处理excel文件
分别尝试用perl和python处理excel文件,发现perl的比较复杂,比如说read excel就有很多方式不同的method,对应的取sheet的cell方式也不一样。更复杂的是处理含有中文内容的Excel。用perl目前没有成功过。对于python来说就比较简单,目前使用openpyxl库,处理起来清晰明了。
2025-03-25 21:13:19
490
转载 AMBA总线(2)—— AHB协议
AHB5手册的最后一章是User信号,分为HAUSER、HWUSER、HRUSER三组,但协议开头就说:“通常本规范建议不使用User信号。AHB协议没有定义这些信号的功能,如果两个组件以不兼容的方式使用相同的User信号,就会导致互操作性问题。”啊这……在章节后面,手册又说道:“建议在互连上包含User信号,但是没有要求在Master或Slave上包含它们。该规范建议互连组件包括对User信号的支持,以便它们可以在Master和Slave之间传递。
2025-03-20 21:53:08
363
原创 linux stdout/stderr重定向到文件,>或tee
正常情况下直接使用 '>'或者tee命令只能把stdout的终端输出重定向到文件中,而stderr的输出是无法写到文件中的。比如在使用svn up时遇到svn 报错的错误,svn ERROR/WARNING用下面的语句是不会将ERROR/WARNING行写到svn.log的要想同时将这两类输出都写到文件中,可以如下操作。
2025-01-14 15:55:24
433
原创 linux下中文输入法ibus
一般设对了环境变量就可以正确使用,如果有的软件可以,有的不行,可能需要到软件中设置。比如Firefox浏览器【经过实测设了环境变量之后,FireFox就可以输入中文了,如果你遇到不行的情况,可以接着看下文】。编辑Firefox的启动脚本以确保它使用IBus输入法。在IBus设置中,确保已添加并启用了中文输入法(如智能拼音)。,可以使用文本编辑器打开并添加以下环境变量:bash。这将启动IBus守护进程,并确保它在后台运行。保存并退出后,重新启动Firefox。确保IBus输入法已正确安装并配置。
2025-01-10 20:08:50
980
转载 万子长文和你一起探索Arm调试架构
从图中可以看出的是,当core正在处于(由一个debug event,比如breakpoint,触发的)debug exception中时,可以通过设置MDSCR_EL1.SS和PSTATE.SS都为1来让core在退出exception时进入单步调试,并在执行完一条指令后并重新触发debug exception,这就完成了一次单步调试。然而,据我了解,GPR在Arm的产品中很少出现,我只在一些Cortex-M core based subsystem中找到了它们。
2024-12-07 21:22:30
322
转载 万文长字带你搞懂JTAG的门门道道
JTGA这个东西IC和嵌入式靓仔们肯定是有用过的,但是对于JTAG内部的东西,以及实现如果不了解的,可以看看这篇文章。之前和coresight有了解过的靓仔,了解了对于ARM内部的调试,知道了对于调试的入口在于那个JTAG Port,但是对于外部的JTGA Port你真的又了解多少,是否真的就是那么简单的一个port?不知道coresight的可以看看【来跟着前辈看看coresight】这篇文章。
2024-12-07 19:30:36
1558
1
原创 excel按行排序
使用excel对一列数据进行排序比较简单,但是有时需要按行排列,更进一步有多行的时候,按照某一行排列是,相应的其他行也跟着变化,举个例子,下面有两行分别是。第一行1-6,第二行a-f,将第一行降序排列时第二行也跟着重拍,可以按以下步骤处理。然后在主要关键字中选择行1。点击选项,选择按行排序。
2024-11-08 17:40:21
699
原创 用awk将包含key1不包含key2的行及下一行输出/awk&sed删除匹配的块
有时候在vim中搜索和替换并不好做,这个时候可以充分利用shell的grep,sed,awk这些现成的命令。如果不知道怎么使用这些高级命令,可以问aiChat,这种一般会给出正确的脚本。
2024-11-05 20:43:36
215
转载 【精讲】PCIe基础篇——BAR(Base Address Register)详解
Bios可以为设备预留大于BAR要求的地址空间,而PCI规范中建议为需要的地址空间少于4KB的设备分配4KB的地址空间。我们发现PCI这种地址自然地要求为设备分配的地址空间要跟BAR定义的大小对齐,因此PCI设备的映射空间始终是跟BAR的大小对齐的。系统中的每个设备中,对地址空间的大小和访问方式可能有不同的需求,例如,一个设备可能有256字节的内部寄存器/存储,应该可以通过IO地址空间访问,而另一个设备可能有16KB的内部寄存器/存储,应该可以通过基于MMIO的设备访问。当该设备确认某一个请求(
2024-10-15 22:01:28
800
原创 PCIE基础概念BAR/in/outbound/空间映射/Post/CPLD
我们称pcie endpoint所在的芯片为设备,上位机为主机。pcie可以把设备上的内存空间和寄存器空间映射到Host上。这样Host就可以直接访问设备的内存空间和寄存器空间。空间映射是不会占用host原有的物理内存空间的,比如说Host有24GB的DDR+1GB寄存器空间,pcie设备有128GB的HBM+2G的寄存器空间。那么映射之后host可以看到Host的24GB的DDR+Host的1GB寄存器空间+128GB的设备HBM+2G设备寄存器空间。
2024-10-15 21:56:24
1851
转载 简单介绍SPI/Dual SPI/Quad SPI(SPF)几种通讯模式的差异
初接触Nor Flash的工程师可能会对SPI/Dual SPI/Quad SPI等传输方式有些困惑,下面以MX25L25645G为例,从硬件接口及传输时序简单分析这些通讯方式的差异。通过以上对SPI/Dual SPI/Quad SPI通讯在硬件接口及cmd+add+data的传输时序存在的差异比较,可以对SPI在不同模式下的通信方式进行区分。Dual SPI和Quad SPI 是半双工通信,数据可以在两个方向上传输,但是同一时间数据只能在一个方向上传输。
2024-10-12 18:56:01
889
转载 数控振荡器的基本结构以及电路原理解析
随着处理越来越广泛的应用,数字锁相环DPLL(Digital Phase Lock Loop)在现代设计中也越来越普遍,特别是在数字信号和这类高性能应用中,数字锁相环更是一种必不可少的电路。与传统的锁相环(Phase-Locked Loop)相比,由于数字锁相环较少采用高阻值以及电感等非线性器件,可以采用与高速数字逻辑电路相兼容的制造工艺来设计和制造,也更加容易在数字系统中应用。一个典型的数字锁相环结构如图1所示,Oscillat)是其中最关键和核心的部分。
2024-09-30 18:37:27
984
原创 DPLL的DCO与PLL的VCO(数控振荡器与压控振荡器)
无论DPLL还是PLL都是由PD,LPF和DCO/VCO组成。PD:鉴相器,是将VCO/DCO输出的频率信号分频后与refclk进行相位比对,输出一个相位差信号LFP:是将相位差信号转换为VCO的压控信号或DCO的延迟信号。VCO:根据不同的输入电压【注意不是电源电压而是输入的控制电压】产生不同的输出频率DCO:根据不同的输入延迟控制信号,控制DCO内部环路的延迟,以输出不同的频率以前一直有三个误解本文主要介绍振荡器,VCO由于涉及模拟器件,比较复杂。
2024-09-30 18:35:05
1708
原创 linux shell的$()作用-将一个命令结果输出给另个命令
在Shell脚本中,$()是一种命令替换的语法,它允许你执行一个命令,并将命令的输出插入到当前的命令行中。这种特性使得你能够在一个命令的输出基础上构建另一个命令。
2024-09-05 17:48:21
644
原创 spyglass-lint关闭(disable/stop/waiver)规则
其中xxx就是被disable的某一项规则。在disable_block和enable_block之间的verilog code就是作用区域。如果没有enable_block语句,则disable_block的默认作用范围到endmodule。而且会报一个un-paired block waiver pragma defined for rule 'xxx'
2024-08-27 21:43:07
2762
原创 rule ‘flopEConst‘和vcst-lint的disable
先从vcst-lint的一个warning开始:这个含义是存在不配对的块waiver语法,flopEConst。什么叫不配对的语法呢?我们打开对应的verilog代码可以看到有下面的语句但是没有找到对应的enable_block语句。这就表示一个disable_block会一直起作用。
2024-08-26 10:58:06
506
原创 Jira使用指南(高级搜索JQL/统计/面板设计)
上面的pdf比较详细的介绍了Jira的使用,目录如下:或者从Jira的中文官网获得更多的使用指南。
2024-08-23 18:34:21
2211
原创 dc/dc_shell的keep和donot touch区别
在半导体设计和综合工具中,donottouch和keep属性通常用于指定综合和布局阶段的特定要求。sizeonly是keep属性的一个可能值。以下是donottouch和keep属性以及sizeonlydonottouchkeepsizeonlyhierarchykeepkeepsizeonlydonottouchkeepdonottouchkeepsizeonlydonottouchkeepsizeonlydonottouchkeep在实际使用中,选择donottouch还是keep属性(以及keep。
2024-07-06 19:04:12
1187
转载 sram的min period
sram除了setup/hold的检查,还需要进行min_period的检查。这个min_period是sram里给bitline进行预充电留足时间。如果两次读间隔period太近,那么第二次读就不能正确读出。minPeriod是sram的bitCell器件预充电时间决定的,和clk的transition也有一定的关系。如下图:clk的transition影响较小。
2024-06-01 17:22:54
1103
转载 数字IC后端实现的一些基本概念
2)place之后,假设setup和hold都正好为0ns,然后插入时钟树,树的完全平衡的,WC的时钟树insertiondelay是0.2ns,BC的insertion delay是0.1ns,这时做STA,会看到timingviolation吗?cloning是在有多个sink的情况下,不改变逻辑功能把当前cell复制一份,分别驱动下一级的cell,这样可以减少当前单元的负载,从而获得更好的时序,有时是为了placement的考虑,譬如几个sink的方向不同,缺点是会增加上一级的负载。
2024-06-01 16:40:09
1825
转载 Python的类(class)
(1)类(class):用来描述具有相同属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例,类对象的类型。类是抽象的概念,而对象是一个你能够摸得着,看得到的实体。两者相辅相成,谁也离不开谁。(2)类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。(3)数据成员:类变量或者实例变量,用于处理类及其实例对象的相关数据。
2024-06-01 11:18:04
258
转载 Python中的yield关键字
yield的高级用法包括生成器的状态保存,允许无限递增或递减的生成器。还可以与条件结合使用,用于过滤生成的值,仅生成符合特定条件的值。最重要的是,yield支持懒惰计算,允许在需要时计算值,而不是一次性计算所有值,从而节省内存和计算资源。在处理大型数据集、无限序列或需要逐个生成值的情况下,yield是一个强大的工具。通过深入理解yield,可以更好地利用生成器和懒惰计算,提高代码的效率和可维护性。
2024-06-01 11:10:31
90
转载 python之多进程(multiprocessing)
Multiprocessing.Pool可以提供指定数量的进程供用户调用,当有新的请求提交到pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到规定最大值,那么该请求就会等待,直到池中有进程结束,才会创建新的进程来执行它。Pool类用于需要执行的目标很多,而手动限制进程数量又太繁琐时,如果目标少且不用控制进程数量则可以用Process类。processes: 是要使用的工作进程数。如果进程是None,那么使用返回的数字os.cpu_count()。
2024-06-01 11:08:42
978
转载 Python Lambda 用法大全
Lambda表达式可以作为参数传递给key,定义更复杂的列表排序规则。map函数和Lambda表达式常常一起使用,可以对序列中的每个元素应用Lambda表达式,并返回结果序列。filter函数接收一个Lambda表达式和一个序列,它会返回序列中所有偶数组成的新序列。filter函数和Lambda表达式组合使用可以实现对序列中符合特定条件的元素进行筛选。reduce函数可以对序列中的元素依次累加,Lambda表达式可以定义累加过程。Lambda表达式可以作为函数的返回值,用于构造更为复杂的计算过程。
2024-06-01 10:44:07
86
原创 csdn的insCode怎么用IDE和linux终端 服务器
右边有个终端,点击即可出现linux的xterm终端。找到我的项目,没有项目的话可以新建一个。1.进入insCode,选择工作台。
2024-05-25 20:10:53
308
原创 计算机如何将输入文字显示出来的?渲染Image rendering
渲染图像,可以理解为用cpu/gpu构造出原本不存在的图像。比如输入计算机的英文字符都是ASCII码,而我们在屏幕上看到显示的字符对应的应该是RGB/YUV的像素。计算机把ASCII字符转化成像素的过程就是文字渲染。又比如我们GPU用多个2D图片渲染出3D图片,图片亮度根据时间自动调整阳光的强度,阴影等。原图像中不存在的信息,这个是GPU的渲染。渲染图像和sonser直接采样进来的RGB/YUV图像帧显示是不一样的。
2024-05-24 20:23:21
1298
转载 Power Gating的设计(概述)
对于multi-processor CPU,每当一个core完成自己的task,都可以power gating,清除自己的cache,但是big-little的core调用。对于cache cpu system,Power gating可以很大程度的减少leakage,消除dynamic power,但是cache内容的复原,需要花费。外部power gating,要求板级中有多个voltage regulator,带来相应的RC,增大了板级负担,而且,switch time花费的太多。
2024-05-23 19:39:41
1691
转载 浅谈power signoff之什么是IR drop
芯片中的电源VDD和 VSS)通过metal rail和metal stripe均匀分布,称为电源传输网络(Power Delivery Network,PDN)或power grid。PDN 中使用的每个金属层都具有一定的电阻率。当电流流过供电网络时,一部分施加的电压将根据欧姆定律在 PDN 中下降。电压降的量将是 V = I.R,称为 IR drop。图 1 显示了电源网络中的 IR drop。任何金属网络都可以假设为小 的R 和 C 的组合。图1 金属网络中的IR drop。
2024-05-23 19:35:43
5288
转载 【低功耗】电压域和电源域
cluster内的PPU也处于该电源域,因为PPU需要能够在保持活动的同时关闭包括PDCLUSTER在内的其他域的电源。因此,PDTOP电源域必须在任何其他电源域通电之前通电,并且必须仅在其他电源域断电之后断电。每个L3高速缓存片被放置在其自己的独立电源域(PDSLICE)中,以允许高速缓存片的逻辑和RAM在不需要时断电。指使用同一个电压源的模块合集,如果几个模块使用相同的电压源,就认为这几个模块属于同一个电压域。一个单独的电压域中,同时支持DynamIQ cluster中的每个核都采用独立的电压域。
2024-05-23 19:18:02
736
原创 关于div/mod除法和取余的化简及硬件实现
在硬件设计中常会用到整数之间的除法和取余操作,一般而言除法和取余的两个操作数都是变量时,这个算法的实现复杂度包括时间复杂度和空间复杂度是O(N)的,N是被除数和除数的最大位宽【这个复杂度的结论不一定是准确的】。对于有限常量集的div/mod,它们的复杂度可以做到o(logN).所以硬件在做div/mod的时候,如果发现除数或被除数是比较少的集合,可以不用变量除div/mod这种通用电路。时间复杂度体现在硬件实现上就是分多少次基础的加减计算上,基础计算越多就需要更多的clk,否则时序无法收敛。
2024-05-22 14:10:52
396
转载 傻白入门芯片设计,Substrate/RDL/Interposer/EMIB/TSV(三)
Substrate 是芯片的基底,是芯片的基础构件。它通常是一块硅片或其他半导体材料,用于承载芯片上的元件和连接器。Interposer 是一种中间层技术,用于连接两个芯片。它通常是一块硅基底,上面带有微型连接器,用于将两个芯片连接在一起。Interposer 可以用于提高芯片的性能和带宽,以及使芯片更加紧凑。RDL(Redistribution Layer)是芯片上的一层连接层,用于将芯片上的电路重新分配。RDL 可以用于提高芯片的性能和效率,以及使芯片更加紧凑。
2024-05-14 16:16:51
3431
1
转载 芯片封装---Seal ring
常见的seal ring会将工艺中所有的层都列出来,并标明 dark or clear,用这里的dark和clear去对照工艺制作过程中这些layer的dark或clear,如果同为dark或clear则seal ring上面有这层,反之则seal ring上没有这层。这是工艺中实际实验出来的最优的方案。今天我们就来讲一讲看似简单却又不可缺少的Seal ring在这其中的作用,当我们完成整个芯片的版图设计后往往要在外围给它加个围墙,保护最为珍贵的它不受到伤害,就像是中间的房子盖好了,外面再拉一个围墙一样。
2024-05-14 15:13:18
10488
转载 叶脊(Spine-Leaf)网络架构-数据中心网络设计
要支持大规模的网络,就必须有性能最好,端口密度最大的汇聚层核心层设备,这样的设备成本高,不是所有企业都买得起,且必须在建设网络时就预先规划好网络规模,在网络规模小时,会造成资源的浪费,在网络规模继续扩大时,扩容也比较困难,因而让企事业单位陷入了成本和可扩展性的两难选择之中。而又因为每台叶交换机都需要连接到脊交换机,因此脊交换机的端口密度取决于拓扑结构中叶交换机的最大数量,同时,网络中的脊交换机的数量取决于叶交换机之间的吞吐量、叶子层的冗余/等价多路径(ECMP)数以及脊交换机中的端口密度。
2024-05-09 16:02:29
4461
1
转载 AI的分布式通信操作reduce/gather/broadcast/scatter
All Reduce包括了All Gather的概念,即将加和(或者其他操作)后的数据再分发到各个设备上。总结(方便大家梳理各个概念的区别):我们要记住,只有Reduce相关的操作要做计算,其余操作都不涉及计算。而Broadcast是针对单台机器对多台机器(1->N),Gather是多台机器对单台机器(N->1),All相关的操作是多台机器对多台(N->N),没有All的操作仅仅将数据汇总到一台设备。
2024-05-09 15:58:03
7375
原创 芯片安全(security)
所谓镜像文件其实和rarZIP压缩包类似,它将特定的一系列文件按照一定的格式制作成单一的文件,以方便用户下载和使用,例如一个操作系统、游戏等。它最重要的特点是可以被特定的软件识别并可直接刻录到光盘上。其实通常意义上的镜像文件可以再扩展一下,在镜像文件中可以包含更多的信息。boot.img是Android系统启动所必须加载的文件。简单的说,boot.img包含两部分,分别为kernel 和ramdisk。所以理解boot.img就是包含Android启动的一个软件包。安卓系统中各镜像介绍。
2024-04-24 20:18:13
1174
5
原创 DDR/HBM寻址与地址交织
对于HBM来说没有rank DIMM的概念,但是有channel的区分,HBM内部的多层die和bank可以组成不同的channel【HBM里面的channel可能不是由完整的层组成,比如HBM3有12层,但是有64个channel,每个channel有16bit】。对于bank,rank,dimm级别的交织,基本上就随着多颗ddr颗粒的组织形式和物理地址与BG(Bank group addr),BA(bank addr)的关系就确定了。channel的位宽,和burst概念及关系?
2024-04-19 11:58:40
1694
原创 AXI bus matrix与跨4K拆分/deadlock
为什么axi bus matrix没有成为soc内多master和多slave的互联总线?现在常用的都是nocaxi bus matrix都是corssbar拓扑结构?对于大型soc太过于复杂?
2024-04-16 19:39:41
808
原创 公网IP与私有IP及远程互联
公网IP是全球唯一的IP,通过公网IP,接入互联网的设备是可以访问你的设备。但是IPV4资源有限,一般ISP(Internet Service Provider)并不会为用户提供公网IP。所以家里的计算机在公司是没法直接使用windows远程桌面直接访问的。理解起来就是你家里的计算机和公司的计算机都在ISP组建的不同的局域网中,在这个局域网中给各自的计算机分配私有IP,那么这些处于局域网的只有私有IP的主机又是怎么可以访问互联网的呢?
2024-03-08 19:52:29
1718
数字控制振荡器-多级反相延迟组成DCO
2024-09-30
TI的TDA4VM dataBook
2023-02-22
High Definition Audio Specification
2023-02-10
NVIDIA Jetson AGX Orin Series
2023-02-10
线性方程组的迭代解法.pdf
2020-06-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人