
ASIC设计
文章平均质量分 78
123axj
这个作者很懒,什么都没留下…
展开
-
AXI4 Channel signals
AW 和AR channel的 signal field 基本是相同的。SignalDescriptionAxID[x:0]Each transaction channel has its own transaction ID每个transaction的唯一标识,AW /AR / B / R channel 都有 ID signal对于一个read request,产生read data的模块,其产生的R ID 需要跟 收到的AR ID一致。Write request类似。AxADDR[x:0]A burs原创 2022-06-16 19:26:24 · 693 阅读 · 0 评论 -
AXI5 new feature: support atomic transaction
AXI (Advanced extensible Interface) 协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。当前最新为 AXI 5.0 (2020年)。AXI5 Spec download AMBAAXI5 的一个重要更新,就是增加了对atomic transaction (或称之为 atomic operation,原子操作)的支持。Atomic transact原创 2022-06-16 19:24:49 · 3438 阅读 · 0 评论 -
SystemC 实现round-robin仲裁
Round-robin(轮询)是一种常用的、也是最基本的仲裁策略(Arbitration),用在多进一出的mux结构中;其基本思路是 有一个last gnt id记录上一次的仲裁结果,下一次则先从last gnt id +1 处开始查询是否此input是否有申请仲裁,如果有则其获胜,如果其没有申请仲裁,则轮询下一个input,依次类推。Round-robin是一种非常公平的仲裁策略,可以保证每个input都有相同的概率获取到output的权利。但有些时候,某些request比较紧急,优先级较高,我们需要原创 2022-05-28 11:01:16 · 1417 阅读 · 0 评论 -
Interlaken protocol 学习笔记
Interlaken 协议 是一个(相对于PCIE来讲) 轻量级的跨chip 互联协议,部分内容是在SPI4.2协议基础上来的,由Cortina 和Cisco公司在2006年提出,目前最新的是 v1.2版本 (2008年)。官方文档有两份,名字和链接分别为:Interlaken Protocol Definition - A Joint Specification of Cortina Systems and Cisco Systems 和Interlaken Retransmit Extension Pr原创 2022-05-28 10:55:55 · 3295 阅读 · 1 评论 -
atomic and exclusive operation
原子操作(atomic operation)指的是由多步操作组成的一个操作,也就是一个指令包含了至少两步操作,比如自加操作( i++ ),就是先从内存读一个地址(步骤1 load),然后将数据自加1 (步骤2 ALU做加法运算),再写回内存(步骤3 store)。对同一个资源(比如访问DDR的一个相同地址)的原子操作处理过程中,不允许被打断。原子操作的正确实施必须由硬件逻辑来保证,一般在距离片外内存(DDR)较近的模块实施,比如NoC,LLC等,因为这样才能发挥原子操作的性能优势。比如在LLC中实施,那么原创 2021-10-31 21:27:50 · 1101 阅读 · 0 评论 -
AXI4 Increase burst / wrap burst/ fix burst 和 narrow transfer
AXI (Advanced extensible Interface) 协议是ARM公司提出的AMBA(Advanced Microcontroller Bus Architecture)4.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。Increase / wrap / fix 是AXI协议中read/write data burst 传输的三种类型,burst传输就是master发1个request,但可以携带或需求(write request or read request) 比原创 2021-10-31 16:12:39 · 6477 阅读 · 0 评论 -
Cache的写策略
Write-through(直写模式)在数据更新时,同时写入缓存Cache和后端存储。此模式的优点是操作简单;缺点是因为数据修改需要同时写入存储,数据写入速度较慢。Write-back(回写模式)在数据更新时只写入缓存Cache。只在数据被替换出缓存时,被修改的缓存数据才会被写到后端存储。常见处理器大都支持write back 形式。Write-misses写缺失的处理方式:Write allocate方式将写入位置 先读入缓存,然后再采用write-hit(缓存命中写入)操作。写缺失操作与读缺原创 2021-03-19 10:57:42 · 2387 阅读 · 0 评论 -
多层次cache的包含关系
Cache一般都是至少两层cache。多层次间cache的包含关系主要有三种:Inclusive : L2包含所有的L1 valid cacheline,L2需要记录所有L1的状态信息。Exclusive: L1 和L2 包含的valid cacheline互斥,两个L1之间仍然可以包含相同的valid cacheline。NENI / NINE (non-exclusive non-inclusive): L1 和L2 之间可以有相同的valid cacheline,但又不是完全的inclus原创 2021-03-18 11:40:10 · 1989 阅读 · 0 评论 -
Cache一致性协议
在multi-core处理器中,一般情况下,数据可以被多core共享。如果多core访问了一个相同地址,为了保证访问数据的正确性,需要进行数据同步。常用的最简单的一致性协议为MESI :Modified: 数据只存在此cacheline中,cache和下级存储不一致,dirty (注意:Instruction cache没有M状态)Exclusive:数据只存在此cacheline中,cache数据和下级存储一致,cleanShared : 数据存在多个(或1个)cacheline中, cache原创 2021-03-18 11:35:36 · 1275 阅读 · 0 评论 -
Cache替换算法
现代计算机体系结构中,cache一般采用组相连的形式。Cache替换算法是影响缓存系统性能的一个重要因素,一个好的Cache替换算法会适应各种不同的应用场景,产生较高的命中率。常见的cache替换算法有以下几种。LRULRU ( Least Recently Used),即最近最少使用,是一种常用的cache替换算法,当没有free way时,选择最近最久未使用的way予以替换。来一个...原创 2020-03-08 21:01:57 · 8076 阅读 · 0 评论 -
Cache 映射方式 学习总结
在计算机存储结构中,存在 一个存储容量金字塔,靠近塔顶的延迟小/造价高/容量小,靠近塔底的相对延迟大/造价低/容量大,任意两级之间都存在一个映射关系。在此,主要讨论cache和内存之间的映射关系,参考《大话处理器》5.2.3节 cache映射方式,学习总结如下。1 直接映射特点:主存中的一个块只能映射到Cache的某一特定块中去好处:随便给一个地址,就知道其在哪个cacheline...原创 2020-04-25 18:31:02 · 2337 阅读 · 0 评论 -
异步时钟FIFO的基本原理
在现代大规模ASIC设计中,经常会遇到跨时钟域的数据传输,此时就需要用到异步时钟FIFO。既然是先进先出的fifo,那就有push端和pop端。假设push端时钟为clcok A,pop端时钟为clock B。clock A和clock B可能前者主频高;也可能后者主频高;还有可能两边主频一样,但存在相位差 (片间互联时用的较多)。 要完成一个异步fifo的功能,至少要有以下信号(假设fifo深度为4,一层可以传输64bit数据) Signal ...原创 2020-05-23 21:55:17 · 3558 阅读 · 0 评论 -
ASIC设计:FIFO 深度设置基本规则
一般情况下,设置一个fifo (同步或异步)的深度,主要是为了保证在fifo前级一直有东西要传输时,fifo的出口处不至于出现断流。 对于同步fifo,假设当前Fifo为full状态,从pop的时刻开始算起(此时刻fifo就可以认为not full,但not full的信号不一定什么时刻拉高),到push一个新的数据且出口端可以看到为止,计算这个延时;fifo的深度必须大于等于这个延时。一般情况下,pop的下一拍not full信号拉高,not full为高的当拍push一个...原创 2020-05-24 15:29:52 · 2495 阅读 · 3 评论