自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 资源 (1)
  • 收藏
  • 关注

原创 AMBA - AXI基础知识

这么读起来这个更像是一个标记位来说明之前的传输是不是分配过,而不是对当前传输是否进行allocate的建议,反正cacheable就会cache,这个这是可以帮助cache侧看是不是需要snp,可以提升性能,减少snp。2: RAbit,read-allocate, 表示针对于读transaction,建议在cache中分配,但不是强制的,但是当bit[3:2]=2’b11,那肯定是cacheable,需要做一致性检查;下面给了几个例子,大同小异,莫过于ready和valid的顺序不同罢了。

2025-12-29 14:45:00 737

原创 AMBA AXI - transaction order记录

这也就可以提升总线的效率,这是为啥呢?AXI协议支持5通道,读写分离的传输策略,在之前看AXI时,有很多基本的策略都会有点困扰,比如,通道依赖,传输顺序,以及交织等等之类的内容。按照上图的说明,如果是32bit对齐的地址的话,最多可以传20Byte,但是因为地址不是对齐的,是0x1,所以只能传19byte,第一笔transfer只能有3byte。上面两幅图都是简单的AXI传输,其中一笔完整的传输叫transaction,比如A传输,而组成A传输的各个小的传输成为transfer,比如A*。

2025-12-28 13:00:00 912

原创 AXI 原子访问

本文探讨了AMBA协议中原子访问的实现机制。AMBA3采用LOCK操作实现原子访问,通过READ-MODIFY-WRITE序列独占总线,但会降低总线带宽。AMBA4引入exclusive访问机制改进这一问题,不再独占总线,而是由slave监控访问状态。exclusive访问通过EXOKAY/OKAY信号判断成功与否,若访问期间内存被修改则操作失败。两种机制各具特点:LOCK确保原子性但效率低,exclusive提高带宽但需额外监控。这反映了总线协议在保证原子操作与提升性能间的权衡。

2025-12-26 21:26:49 344

转载 GIC基本内容介绍(1)

ARM处理器中的GIC(通用中断控制器)负责处理所有中断源,支持多核系统,并管理中断优先级与路由。GIC700由多个组件构成:GICD(中断分发器)负责SPI/SGI分发;GICR(每个核心一个)处理中断优先级;ITS(中断翻译服务)用于LPI中断翻译;SPI收集器处理SPI信号;唤醒请求模块用于核心唤醒。GIC支持安全状态和虚拟化,能够处理1-64个核心,同时提供中断屏蔽和优先级管理功能。

2025-10-24 15:02:06 67

转载 数字设计基础之组合逻辑电路(1) - 加法器

加法器,顾名思义就是计算数字相加的,通常大家在最开始采用verilog实现时,书上提到可以直接采用 a= b + c的方式来做,那么之后的电路结构就交给综合器帮忙去实现了,这样可以么?最近,我又重新回顾了一下数字电路基础的内容,在此做一个简单的记录吧,留待查看,也可以试着看能不能帮助到一些在这方面有疑问的同学们。s[3:0]需要A,B都保持不变,且S3值传播正确,那么在这个加法器中A0,B0 产生有效结果的时间很短,但是需要维持的时间很长,电路的关键路径也很长。因此,超前进位加法器就产生了。

2025-08-29 15:50:26 74

原创 Booth乘法器

在进行累计和时,需要对符号位进行扩展,但是这样在会在实现上带来一些负面的作用,因此,会有一些优化的方式在这里,参考。所以booth4的因子为: -2Y[n-1]+y[n-2]+y[n-3]booth4和booth2是一样的,只是在并项部分有所差别。依据以上3条规则,我总结为“取反”,“加一”,“再加一”。这里的Y[n-2]-Y[n-1] 就是booth因子;(3)在所有部分和的最高位前增加1比特数“1”。结合 & 补Y[-1],假设这里Y[-1]=0。(2)对第一个部分和的最高比特位加“1”;

2025-08-21 14:10:01 612

原创 round robin轮询仲裁器

在RR 仲裁中的实现思路目前看起来都是采用掩码 mask的方式来实现,将已经给过grant的req 位mask掉,得到mask req,再将mask req放入固定优先级仲裁器中选择,得到mask grant,轮询一周后,mask grant变为0, 采用新的req从新开始。a. 获取onehot_a: 按照RR的概念,onehot_a可以通过grant左移一位来表示,注意grant代表的是当前选择的req,在下一轮的仲裁中它的下一个bit才是优先级最高的bit,因此这个需要左移grant;

2025-08-13 17:29:45 498

原创 仲裁器设计 - 固定优先级仲裁器设计

当给定一个二进制数req, req-1将会将req第一个为1的bit 变为0, 其他的低位会从原先的0变为1, 而高位不管是0或者是1都会保持不变,此时将该值取反,那么对于低位而言,变为全0, 高位变为原先数的取反,而之前为1的数变为1,此时, req & ~ (req-1)就会得到独热码,且有效位为第一个为1的bit。思考一下,在数字基础中,正数的补码是它本身,负数的补码是取反+1, 那么将负数的补码+1取反,就会得到他自身。仲裁器的关键特点是,每次都只会通过一个请求的申请,并授予权限。

2025-08-13 15:00:05 490

原创 CHI - Transaction介绍(1) - Dataless

一般就是请求的人自己有share的备份<没有也行>,然后又要修改这个cache line。且需要忽略resp域的信息;采用该transaction来使所有的cache备份都变为。采用该transaction来使所有的cache备份都变为。采用该transaction来使所有的cache备份都变为。采用该transaction来使所有的cache备份都变为。为了获得请求的snp地址的权限,不需要data返回;-- 收到comp resp,表示该行为完成。-- 收到comp resp,表示该行为完成。

2025-07-31 16:00:00 1158

原创 CHI - Transaction介绍(1) - 读请求

在CHI中有很多的transaction类型,同时,不同的transaction对应的请求的属性和涉及的节点也是不同的,在本小节中,将对不同的transaction的属性进行简单的介绍。3. 该数据在requester侧不要求保护一致性,可以放在local cache或者buff中,但不会缓存在requester侧;2. 请求size必须为cache line length;2. 请求size必须为cache line length;2. 请求size必须为cache line length;

2025-07-31 08:30:00 595

原创 CHI - Transaction介绍(4) - 原子操作

ATOMIC transaction是CHI来进行原子操作的一个动作。如果没有该类型传输,原子操作必须使用内存访问序列来执行。Atomic操作包含了很多种,比如atomicload/store/swap/compare等。但是返回的data是执行原子操作之前地址的数据;但是返回的data是执行原子操作之前地址的数据;但是返回的data是执行原子操作之前地址的数据。transaction携带要比较的值下去。3. 只拉低合适的BE;3. 只拉低合适的BE;3. 只拉低合适的BE;3. 只拉低合适的BE。

2025-07-30 16:30:00 963

原创 CHI - Transaction介绍(3) - 写请求

当request中这个地址invalid,则把要写的full cache line data写到下一级cache或者memory。把dirty的full cacheline 写回下一级cache或者mem,同时在本地保存一个clean line。把dirty的 cacheline 写回下一级cache或者mem, 实际写回的有效byte由BE控制。1. 从RN向No-snp地址写一个full cacheline data;把dirty的full cacheline 写回下一级cache或者mem。

2025-07-30 08:30:00 390

原创 CHI Response类型和含义的总结

b. Snoop响应还包括FwdState字段,该字段适用于带有DCT的Snoop响应,并指示发送给请求 者的CompData响应中的缓存状态和传递脏值;2. 要么是两个单独的响应,一个在RSP通道上使用RespSepData操作码,另一个在RDAT通道上使用DataSepResp操作码。CHI协议中,因为开始涉及到一致性维护的信息,因此在对于请求的响应的信息,就新增了很多中不同类型的响应来代表不同的操作的含义。c. 对于立即写入事务,CompAck响应中的Resp值不适用,必须设置为零。

2025-07-29 10:45:00 1110

原创 CHI - Transaction介绍(5) - Snoop

3. cacheline为UD/UC/SC/SD,需要回传cacheline。3. cacheline为UD/UC/SC/SD,需要回传cacheline。3. cacheline为UD/UC/SC/SD,需要回传cacheline。3. cacheline为UD/UC/SC/SD,需要回传cacheline。3. cacheline为UD/UC/SC/SD,需要回传cacheline。2. 仅允许被发给1个RN-F,且不允许转化为non-fwd snp;

2025-07-29 09:15:00 530

原创 CHI - Transaction介绍 - 其他类型介绍

独立的Stash事务可以通过使用StashOnceUnique或StashOnceSepUnique,或stashoncesshared或StashOnceSepShared事务,这对应于缓存行的下一个预期使用是用于存储还是用于读取。如果在写之前有别的写发生了,那么这笔exclusive失效,对应的地址监测会有硬件的monitor来实现;如果数据在LP的缓存中不可用,则在接口上发出的事务,以获取Exclusive Load的数据。当应该分配数据的缓存在写入数据的时间点是已知的时,使用这种方法.

2025-07-28 16:55:41 429

原创 AMBA - CHI Properties, Parameters, and Broadcast signals

在CHI协议中提供了多个可选的broadcast的信号,用来决定是否对特定的transaction做broadcast的操作,这些可选的信号分别是:存在6组可选的信号。

2025-07-27 08:00:00 920

原创 AMBA - CHI(5) System coherency Interface

• 设置SYSCOACK HIGH,不等待任何Snoop请求的响应SYSCOREQ变高。• 确保在设置SYSCOREQ之前,所有允许缓存一致位置的事务都已经完成t3时较低。• 当它将SYSCOREQ HIGH设置为t1时,能够服务Snoop请求。• 当它将SYSCOACK高设置为t2时,能够从接口提供一致的数据访问。• 在将SYSCOACK LOW设置为t4之前,完成对接口的所有窥探访问。• 只有当SYSCOACK处于相同的逻辑状态时,SYSCOREQ才能改变。SYSCOREQ: 请求者一致性请求。

2025-07-26 16:00:00 322

原创 AMBA - CHI(4) transaction和一致性操作的关系

在CHI中提供了很多的transaction tyle,同时因为chi支持一致性的操作的原因,也引入了很多带有snp属性的请求类型,在chi中对每种类型的操作是否会引起snp也有比较明确的描述,在此将对应的信息进行记录,方便查看。

2025-07-26 08:00:00 498

原创 AMBA - CHI(2) 基本结构和对应通道信息

L-Credit通过在单个时钟周期内Assert适当的LCRDV信号从RX发送到TX。e. 当链路处于活动状态时,接收方必须及时提供L-Credits,而不需要发送方采取任何行动。前文介绍了CHI中Node的含义,此处是站在RN-F Node来看完整的CHI通道结构;用于写,atomic, snoop,forward data等,下发数据通道;f. pend信号表示下面有传输来了,可以作为gate 使能信号,低功耗信号。RX可以提供的L-Credits的数量[1,15]。

2025-07-25 16:00:00 406

原创 Spyglass DFT check

在设计实现过程中,一般不可避免的存在DFT相关的设计,因此会在设计进行过程中,对DFT的相关内容进行检查,来保证dft的约束是正确且全面的,不会在dft模式下和function产生耦合。下面,将对工具中常见的dft检查方式和错误进行记录,以备查看。

2025-07-25 08:00:00 1018

原创 RDC检查和常见错误类型

RDC是指reset domain cross,这里有两个含义,存在多个reset domain的交互,另外需要是异步复位。从名字中很容易看出来是多个reset domain,但是为什么要是异步复位呢?这是因为在做STA时,因为异步复位的路径从reset 到寄存器的检查是没法被做的,异步复位可以来自于任何时间点。

2025-07-24 16:00:00 601

原创 CDC检查常见的错误及原因

这种场景是会存在问题的,因为再经过同步之后路径的delay可能存在不同,那么就可能会导致信号出现异常组合,导致不期望的信号组合导致逻辑失败,所以需要在设计中明确是否会存在对应问题,是否需要将同步信号简化,逻辑前移或者后移。Clock1的数据在clock2中经过同步的信号,和经过同步之后打拍的信号最终进行组合逻辑,这在实际使用中需要确认用法,因为这种做法,可能是导致同步之后的信号组合和原始的值的组合不同,导致电路问题;同一个源头的不同路径可以会有不同的delay,可能产生不同的时间延迟,因此引起毛刺;

2025-07-24 08:00:00 1597

原创 后仿之 SDF优先级和相关概念

综上:在后仿中,工具(vcs)看起来对于negative interconnect的处理如下:a. 查看此negative INTERCONNECT语句所对应的destination cell中是否有PORT语句:b. 如果PORT delay的值大于等于INTERCONNECT的绝对值,就从PORT中消耗掉对应的负值。c. 如果PORT delay不够用,就查看destination cell中是否有IOPATH或DEVICEm有IOPATH或DEVICE,并且够用(任意一种够用就行),就消耗掉。

2025-07-23 18:00:00 973

原创 后仿之SDF 反标Warning的描述和解决

在后仿中SDF的反标log中Error是必须要解决的,但是Warning有时候可能并不会影响到实际的内容,而是工具严格的检查得到的一些警告,因此可能就需要我们仔细的来甄别是否warning需要被解决;本节只摘录了部分的sdf warning的情况,实际上可能还有各种各样的类型,这里的warning都需要被认真的对待,这样才能保证sdf的反标没有问题,同时后仿也没问题,否则可能会导致大量且无效的debug的工作。一般来讲,仿真工具在默认情况下,是会将负值当成0处理,这样一来,约束就会更紧。

2025-07-23 08:00:00 2084

原创 git 命令速查表

下面再给出git的命令速查表。

2025-07-21 16:00:00 1887

原创 git基本语法

git是一个分布式版本控制工具,用来进行版本管理,git的优点很多,比如初始化方便,基本上的操作均在本地完成,每次提交都会创建对应ID方便追溯,回退等,同时可以分branch个管理,灵活度高 ,不同branch进行merge时,所有的的记录都会保存下来。

2025-07-21 08:00:00 474

原创 SVA 的基本语法学习记录

只有当属性有有效的开始(信号“a”上的高电平)时,才会对随后的(信号“b”)执行检查。SVA支持一个名为“期望”的构造,它类似于Verilog中的等待构造,关键区别是期望语句等待属性的成功计算。假设一个时钟周期的延迟用于计算随后的表达式。“转到”重复的主要要求是,检查重复的表达式上的最后一个匹配应发生在整个序列匹配结束之前的时钟周期中。此属性检查,如果信号“a”在给定的正时钟沿上为高电平,则信号“b”在同一时钟沿上也应为高电平。检查的起点是第一个序列成功的时候,终点是另一个序列成功的时候,最终使属性成功。

2025-07-20 08:00:00 639

原创 SDC Specical check setting的描述 - multi-cycle

不可预知的路径不能成为多周期路径;允许的额外时间量应与预期的一致当采用多周期路径移动建立沿时,保持沿也会同步移动,一般需要移动回来Multi_cycle其实针对的就是design中需要多周期采样的数据,而不是放松寄存器之间的时序检查那么这个两个触发器之间的逻辑如果一个周期执行不完的话1.插入流水线使得组合逻辑打散2.使用使能信号控制,几个周期读取一次数据这里面2所使用的方法就需要设定这种方法和1之间是有区别的方法1数据的吞吐量更大方法2牺牲了数据吞吐量。

2025-07-19 18:00:00 936

原创 SDC Special check setting的描述 - 组合电路路径

之前有提到,这种设置的方法会不再检查这里的时序,当是多bit同步时,因为false path约束,这里就会导致多个bit可能经过的delay是不同的,这就会对工具和实际设计的需求提出要求,否则就可能不满足约束。另外,set_max_delay,set_clock_group, set_multi_cycle, set_false_path可能都会对某一个路径通用,但是实际上在约束的严格程度上还是有区别的,因此,在可以分析清楚电路功能下,需要选择合适的方法来做。来避免工具在两点之间布置的比较远。

2025-07-19 08:00:00 329

原创 SDC Specical check setting的描述 - false path

这里存在一个环路,B出发再回到B,一般工具都会自己断开这种环路,但是如果工具断开的不好,比如从n1断开,这其实可能就不好了,B->C之间就不会check了。假设这个设计, F1的结果被F3采集,F2的结果被F4采集,这里O1就需要针对clk1和clk2分别指定out_delay;但是如果两个路径的delay不同,且delay1<delay2,这样在A从0->1时,会存在毛刺,反之也会有一个毛刺。如果想让第二条路径不被阻塞,那么C必须为0, 如果C为1,这里第二条路径就像是一个虚假路径了。

2025-07-18 18:00:00 1482

原创 后仿之debug记录

原因1: 对于upd寄存器,因为在初始化时,udp寄存器内部状态一致,体现在端口上是n0->buf->Q,因为采用initreg,导致n0初始值是1,但是之后在despots在2ns之后将Q强制变为0,但是n0的值并没有变化,此时矛盾点出现了,n0维持1,但是Q强制变为0,但是n0和Q之间只要一级buf,这样看起来之后就会表现出n0的值没办法传递到Q,有点像需要再次维持Q,no一致后才会翻转。原因2: 虽然Q端变0,但是n0端依旧维持1,此时对于D为1的采样并不会引起n0的变化,所以不会引起Q端的变化;

2025-07-18 11:21:16 378

原创 后仿之门级仿真

在SDF中有两种类型的延迟信息。连线的延迟信息不多说,单元的延迟通常是根据单元时序库(timing library)中定义的timing arc,从电路图形中间接提取计算出来的,而这些timing arc,要和仿真模型中(specify block)定义的io path要一一对应,在反标过程中才能标注成功。其实在实际的工作中,zero-delay延迟的仿真是pass/fail 不能说明什么问题,最终都需要依赖带sdf的仿真来完成最后的仿真才可以,因此,这里其实我没太理解zero-delay的场景。

2025-07-16 16:54:36 665

原创 SDC基础知识

SDC约束大致可以分为:1. 时序约束;2. 面积和功耗约束;3. 设计规则约束;4. 接口信息约束5. 特定模式和配置约束;6. 设计要求的例外情况;7. 其他的约束下面将从上述几个方面来描述对应的约束命令。

2025-07-15 10:56:28 1213

原创 Perl 小骆驼学习笔记 - 13. 进程管理&高级的perl技巧

算是一种和Unix系统交互的命令,system'Unix系统命令';避免使用shell,system可以采用多参数进行调用,建议采用:表示将文件123压缩为名为something.tar的文件这样会造成系统运行超级缓慢!其次,我们可以采用system的输出。$name中就包含了所有的data运行后的结果,包括换行符;在执行外部进程时,perl除了提供system和``之外,还采用IPC::System::Simple可以使用:Perl启动一个异步的字程序,并和它保持通信。

2025-07-15 10:53:53 893

原创 Perl 小骆驼学习笔记 - 12.字符串与排序

摘要:本文介绍了Perl语言中常用的字符串操作和排序方法。字符串处理包括index/rindex查找子字符串位置、substr截取/替换子字符串以及sprintf格式化输出。此外还涉及非十进制转换函数hex/oct。排序方面详细讲解了数字比较运算符<=>和字符串比较运算符cmp的使用,以及哈希值排序和多键排序的实现方法。这些核心功能为Perl编程中的字符串处理和数据结构操作提供了实用工具。

2025-07-15 08:00:00 462

原创 Perl 小骆驼学习笔记 - 11. 文件测试及目录操作

本节提供了关于文件和目录的一些处理函数,大部分的命令和类型与linux命令类似,也有助于理解,在处理文本文件时可以使用。

2025-07-14 18:00:00 800

原创 Perl 小骆驼学习笔记 - 10. 其他控制结构

本文介绍了Perl语言中的多种控制结构和操作符。主要内容包括:1) unless和until条件判断语句;2) 表达修饰符的使用方式;3) 裸块控制语句和局部变量定义;4) 自增/自减运算符及其在哈希中的应用;5) for循环和while循环的等价转换;6) 循环控制操作符last、next、redo的功能;7) 带标签的块结构;8) 三目条件操作符;9) 逻辑操作符及其替代写法;10) 定义或操作符//的默认值设置功能。这些控制结构丰富了Perl脚本的组织方式,提供了更灵活的流程控制手段。

2025-07-14 08:00:00 754

原创 Perl小骆驼学习笔记 - 9. 用正则表达式处理文本

本文摘要:文章系统介绍了Perl语言中正则表达式的高级用法,主要包括:1)替换操作s///的全局替换/g、定界符灵活使用和修饰符选项;2)大小写转换技巧(\U、\L等);3)字符串分割split和合并join的联合应用;4)列表上下文中的匹配捕获;5)贪婪与非贪婪量词的区别;6)多行模式匹配/m和文件批量处理;7)命令行直接编辑的快捷参数(-p、-i等)。这些文本处理技术在Perl编程中具有重要实用价值,需要灵活组合使用才能发挥最大效力。

2025-07-13 18:00:00 601

原创 Perl 小骆驼学习笔记 - 8. 用正则表达式进行匹配

本文总结了Perl语言中正则表达式的重要特性与使用技巧。主要内容包括:1. 模式匹配的基本语法(m//及其变体);2. 常用修饰符:/i(大小写不敏感)、/s(匹配任意字符包括换行)、/x(允许添加空白符)等;3. 锚位(\A,\z,\Z)和单词边界(\b,\B)的使用;4. 绑定操作符=~和模式内插;5. 捕获变量的使用与管理($1,$2,...);6. 命名捕获(?<name>)和自动捕获变量($&,$`,$');7. 通用量词的灵活应用;8. 正则表达式优先级规则。

2025-07-13 08:00:00 787

原创 Perl 小骆驼学习笔记 - 7. 正则表达式

正则表达式是Perl的核心功能之一,用来实现数据的批处理和特征处理非常方便,灵活使用不同的特征元素是高效运行程序的重要因素之一。

2025-07-12 18:00:00 440

VC2013破解版教程

文档为VC2013破解版教程,可以轻松实现VC2013安装和破解

2018-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除