- 博客(76)
- 收藏
- 关注
原创 AXI死锁
在设计的互联结构中,会给来源不同的ARID增加一些位以区分不同的master,比如master1发送的ARID经过互联结构由0变为了10,master2发送的ARID经过互联结构由0变为了20。以牺牲outstanding传输访问机制中AW通道的传输效率为代价,只有当前一笔传输的写数据全部发送完毕之后,才能发起下一笔的写地址命令,换句话说,不支持写outstanding。于是,循环等待的局面形成,W00等待W01,W01等待W11,W11等待W10,W10等待W00,总线传输陷入死锁。...
2022-08-31 17:41:54
3526
原创 Multicycle Path
通常情况下,在同一个时钟驱动下的寄存器之间信号的传输都是单周期的setup检查是从launch_clk的一个上升沿到capture_clk的下一个上升沿,hold检查是从launch_clk的一个上升沿到capture_clk的捕获沿的前一个沿但是在有的电路设计中,要么是有意为之,要么是单周期无法close timing,我们会遇到下面的电路其中FF4的Q变化要经过2个周期才能被FF5的D采样到,这个时候我们就要告诉STA工具,这个path不是单周期的,需要2个周期。
2022-08-23 15:24:33
1068
原创 异步FIFO中格雷码的SDC约束
通常的认识中,我们期望综合工具不要去检查和优化异步时钟之间的时序路径,跨时钟域的异步信号一般可以使用set_clock_groups或者set_false_path,但这两种约束方式将会导致跨时钟域的信号完全没有受到约束。使用set_max_delay约束可以保证两个异步时钟域的路径延时依然受到约束,而不是高的离谱。是可以对任意cell之间的路径延迟设置约束。只是对输入输出设置延迟约束。即,一个的设置对象是对任意cell,一个是端口语法格式。
2022-08-22 16:34:47
3488
1
原创 FIFO深度计算
只有在突发数据传输过程中讨论FIFO深度要确定FIFO的深度,关键在于计算出在突发读写这段时间内有多少个数据没有被读走在发送方停止发送数据的"空闲时隙"内,接收方可以从容地接收剩下来的数据由于FIFO空满标志位的判断延迟,在实际应用中需要预留一些余量(虚空虚满)httpshttpshttpshttpshttps。......
2022-07-21 21:10:24
343
原创 时钟切换电路
目录:时钟切换电路1.有毛刺的时钟切换电路2.优化后的时钟源电路时钟切换电路1.有毛刺的时钟切换电路如图所示,这个时钟切换电路是一个纯组合逻辑,输出时钟(OUT CLOCK)由选择信号(SELECT)控制,当SELECT为1时输出CLK1,反之,输出CLK0.对上图的Verilog描述:assign outclk = (clk1 & select) | (~select & clk0);但是,这种设计会在时钟切换时产生毛刺,波形图如下:选通信号select可以相对于源时钟
2022-05-31 11:38:55
423
原创 SYN重要知识点总结
目录:SYN1.SYN Flow:2.时序路径约束:3.工作环境属性约束:(1)设置环境条件(set_operating_conditions)(2)设置线负载模型(set_wire_load_model)(3)设置驱动强度(set_drive与set_driving_cell)(4)设置电容负载(set_load与set_load load of)4.设计规则约束:SYN1.SYN Flow:synthesis = translation + logic optimization + gate ma
2022-05-31 09:43:18
811
原创 异步复位同步释放
目录:异步复位同步释放1.复位目的:2.同步复位:3.异步复位:4.异步复位同步释放:异步复位同步释放1.复位目的:对一个芯片来说,复位的主要目的是使芯片电路进入一个已知的,确定的状态。主要是触发器进入确定的状态。在一般情况下,芯片中的每个触发器都应该是可复位的.复位可以使电路从确定的初始状态开始运行复位可以使电路从错误状态回到可以控制的确定状态2.同步复位:当reset信号为active的时候,寄存器在下一个时钟沿到来之后被复位,时钟沿到来之前寄存器还是保持其之前的值Q:同步复位电路
2022-05-19 20:42:26
18179
12
原创 乒乓操作--设计思想
乒乓buffer是一种常用的提高数据通路带宽的技术,是一种面积换性能的经典设计。在流水线设计中,灵活应用还可以在保证带宽的基础上解决时序问题。乒乓buffer又叫double buffer,由两块同样大小的memory组成,一乒一乓。放在数据通路的中间,在大部分时候都能保证一块memory收上游的数据,一块memory往下游发数据,一读一写并行操作。乒乓buffer主要应用在以下场景进行带宽的提升:下游必须等到上游数据全部写完或者积累到某个程度才能开始读上游必须等到下游数据全部读完或者读到某个程度才
2022-05-18 23:42:43
932
原创 SDRAM
目录:创建博客1.SDRAM简介:2.SDRAM初始化:3.自动刷新:4.写操作:5.读操作:6.仲裁模块:7.添加读写FIFO:创建博客1.SDRAM简介:SDRAM(Synchronous Dynamic Random Access Memory),同步动态随机存储器。同步、动态、随机是其性能特点的外在说明:同步(Synchronous )是指内存工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准动态(Dynamic )是指存储阵列需要不断的刷新来保证数据不丢失随机(Random
2022-05-11 11:35:27
232
原创 AXI (三板斧)
目录:Outstanding / Out-of-order/ Interleaving1.Outstanding:2.Out-of-order:3. Interleaving:Outstanding / Out-of-order/ Interleaving1.Outstanding:从字面理解,outstanding表示正在进行中的,未完成的意思,形象地说就是“在路上”,Outstanding操作是不需要等待前一笔传输完成就可以发送下一笔操作。AXI因为是通道分离的所以master不需要等待前一笔操作
2022-04-06 15:51:29
1472
原创 AXI (Transaction Attributes)
目录:AXI (Transaction Attributes)1.事务类型与属性:2.存储相关属性信号:3.存储类型:4.图片示例:AXI (Transaction Attributes)1.事务类型与属性:现代计算机架构中,对memory的读写有若干种优化,prefetch, cache, write buffer。同时,对host来说,一些其他的外部设备的寄存器或者外部设备的内存也会被映射到host端的地址上。这部分地址常常不能应用以上的优化方式,因此axi需要对不同种类的地址使用不同的策略,Ax
2022-04-06 11:58:34
781
原创 AXI (Atomic Accesses)
目录:AXI (Atomic Accesses)1.Exclusive accesses(独占机制):(1) Exclusive accesses 介绍(2) Exclusive accesses 基本过程(3) 从Master的角度来观察exclusive access(4) 从Slave的角度来观察exclusive access2.Locked accesses:AXI (Atomic Accesses)A7主要描述了AXI协议中的exclusive 访问和locked访问机制。在编程中,原子操
2022-04-02 15:59:13
2010
原创 AXI (Transaction ID & order model)
目录:AXI (Transaction ID & order model)1.Transaction ID:2.Transaction ordering:>对于读事务order而言:>对于写事务order而言:>读写事务对比:3.Width of transaction ID fields:4.Interconnect function:(1)转发功能(2)多机仲裁功能(3)读数据重排序功能AXI (Transaction ID & order model)1.Tra
2022-04-01 15:50:32
1215
原创 AXI协议
目录:AXI protocol1.综述:2.AXI架构:1)AXI通道简述:2)AXI互联结构:3)AXI中使用寄存器切片(Register slices):3.单接口需求:1)时钟2)复位(异步复位,同步释放)3)基本读写事务<1> 握手过程<2> 通道信号需求4.图片示例:5.如何一行插入两张图片:6.插入表格:7.插入Flowchart流程图:AXI protocol1.综述:本文参考AMBA AXI4 Protocol Specification文档并做出分析整理,错误
2022-03-23 20:57:15
641
原创 亚稳态的分析与处理
目录:亚稳态1.亚稳态的详细定义:2.亚稳态的产生原因:3.亚稳态的具体表现:4.亚稳态的解决方法:亚稳态1.亚稳态的详细定义:亚稳态是指 D 触发器无法在某个规定的时间段内(决断时间)达到一个可确认的状态(0 或 1),进而处于一个振荡的不确定状态2.亚稳态的产生原因:D 触发器在时钟上升沿左右定义了一个亚稳态窗口–建立时间+保持时间(较新的逻辑器件会有较小的亚稳态窗口),在这段时间内,输入信号和时钟都应该保持不变。如果 D 触发器的输入数据在这个时间窗口内发生变化(数据更新),那么就违反了建立
2022-03-18 17:20:45
722
原创 AHB_SRAM
目录:AHB_SRAM1.设计规格2.架构3.模块设计(1)AHB总线控制单元 ahb_slave_if.v(2)存储单元sram_core.v4.verificationAHB_SRAM1.设计规格支持8位、16位和32位的SRAM数据读写操作支持SRAM单周期读写支持在多块SRAM组成的存储器中,根据不同地址系统选择一块或者多块SRAM2.架构SRAM在整个系统中作为缓存,SRAM控制器实现SRAM存储器与AHB总线的数据信息交换,其一端连接AHB总线,另一端连接SRAM(8k*8两个
2022-03-18 15:24:26
829
原创 DFT-Bist
内建自测试(Bist)内建自测试(BIST)设计技术通过在芯片的设计中加入一些额外的自测试电路,测试时只需要从外部施加必要的控制信号,通过运行内建的自测试硬件和软件,检查被测电路的缺陷或故障。和扫描设计不同的是,内建自测试的测试向量一般是内部生成的,而不是外部输入的。内建自测试可以简化测试步骤,而且无需昂贵的测试仪器和设备(如ATE设备),但它增加了芯片设计的复杂性。什么是BIST测试技术?内建自测(Built-in Self Test) 简称BIST,是在设计时在电路中植入相关功能电路用于提供自我测
2022-03-17 10:44:06
1883
原创 DFT-scan
前言通俗来讲,制造过程中由于粉尘颗粒,工艺偏差等因素,难免会引入制造缺陷,导致晶体管短路或断路,然后不能正常工作。DFT技术其实就是把DFT逻辑加入到芯片设计中,然后等芯片制造回来,通过事先加入的DFT逻辑对芯片进行体检,挑出体格健壮的芯片,保证送到客户手上的芯片是没有故障的。DFT指的是在芯片原始设计中阶段即插入各种用于提高芯片可测试性(包括可控制性和可观测性)的硬件逻辑,通过这部分逻辑,生成测试向量,达到测试大规模芯片的目的。测试与验证的区别验证(Verification)的目的是检查设计中的
2022-03-17 10:37:48
2988
原创 AHB协议
目录:AHB协议1.AHB简介:2.AHB架构:3.AHB-Lite架构:4.总线操作Flow:5.AHB 重要的ctrl signal:6.基本传输:(1)Basic transfers:(2)With Wait transfers:(3)多个Single Transfer的pipeline操作:(4)four-beat wrapping burst:(5)eight-beat wrapping burst:AHB协议1.AHB简介:AHB总线在AMBA2中就已经定义,AHB总线一开始主要是作为系统
2022-03-15 16:53:54
400
原创 原码,补码,反码概念和计算方法详解
目录:原码,补码,反码概念和计算方法详解一、机器数和真数二、原码,反码,补码的基础概念和计算方法三、为何要使用原码,反码和补码四、Example原码,补码,反码概念和计算方法详解一、机器数和真数1、机器数一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1.比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 100000
2022-01-28 12:59:19
24194
7
原创 跨时钟域CDC总结
目录:1.跨时钟域2.单bit信号的跨时钟域传输(1).慢时钟域到快时钟域(2).快时钟域到慢时钟域3.多bit信号的跨时钟域传输(1).MUX同步器(2).握手协议(3).异步FIFO1.跨时钟域对于跨时钟域的信号传输问题,从信号的性质方面考虑分为两方面:1)控制信号的传输;2)数据信号的传输。从信号的宽度方面考虑又分为以下两方面:1)单bit信号传输;2)多bit信号的传输。{单比特信号一般指单比特控制信号}{多比特信号一般指多比特数据信号}2.单bit信号的跨时钟域传输(1).
2022-01-21 16:27:18
1271
原创 HW3_Report
目录:HW3_Report一.题目要求二.设计思路三.codeHW3_Report一.题目要求对数据处理有三种:保留、求反码、求补码、丢弃对数据传递有四种:分别是重复1次-4次需要一级pipe来存储处理过的输入数据二.设计思路数据处理:1’s Complement表示按位取反;2’s Complement表示按位取反后再加1(其实就是取补码的操作)只要sm_full = 0,若此时有req进来且数据是有效的,下一拍就可以将数据打过去状态机设置state 默认是 RP
2022-01-14 18:10:01
146
原创 HW1-2_Report
目录:HW1-2_Report一.题目要求二.题目分析三.一级pipe设计思路四.codeHW1-2_Report一.题目要求当下一级数据阻塞时,fifo_full信号有效,流水线需要保持当前数据,直到下一级流水线空闲在fifo_full有效时,前级流水线依然需要消除bubble除了pp_full信号,其他所有信号都需要flip-flop out设计完成一个5级流水线结构的应用二.题目分析fifo_full 为高此时当前pipe是否可以传输数据取决于当前pipe状态,则可分为两种
2022-01-14 16:09:07
112
原创 HW5_Report
目录:HW5_Report一.题目要求:二.题目分析:三.设计思路:1.仲裁机制:2.arb_req、arb_rw、arb_wd、arb_addr3.读操作4.arb2clt_ack ( flip-flop output )5.Testbench6. 仲裁机制改进(更加公平的机制)HW5_Report一.题目要求:为3个客户提供服务,通过轮询仲裁方式,仲裁控制器将选择某个客户端进行服务直到正在服务的请求为0时,其他客户端才能获得访问权限仲裁控制器最多可以接收16个不处理的读请求仲裁控制器的所有
2022-01-05 15:46:27
150
原创 HW5_ARB_ctrl
#HW51. Subject : Arbiter control.2. Function description:This exercise is a simple arbiter controller that services 3 clients. All clients have read or write request to this arbiter. Via round robin arbitration method, the arbiter controller would selec
2022-01-05 09:45:30
151
原创 8.Multiple Clocks and Exceptions
多个时钟同步电路同步时钟:一个时钟源产生的时钟或者分频产生所有需要的时钟下面我们来对多时钟同步设计的时序路径进行约束,多时钟电路的模型如下所示:我们要综合的模块的时钟是CLKC,但是前后模块的时钟不一定是CLKC,但是前后模块的时钟跟CLKC是来源于同一个时钟的,比如说经过锁相环分频或者倍频,这里拿分频来举例,比如说CLKA、 CLKB、CLKC、CLKD、CLKE都是由同一个时钟CLK经过分频得来,如下图所示:(虽然上面说是同步电路,但是在传统上看,上面的电路不算...
2021-12-26 16:12:45
251
原创 7.Additional Constraint Options
其他的时序约束选项对timing时序的补充1:占空比不为50%**单沿触发,占空比对综合无影响;双沿触发,占空比对综合有影响(1)通过-wave_form改变占空比;例如 create_clock -period 2 -wave_form {0 0.6} [get_ports CLK](2)通过-wave_form改变初始相位,但是不推荐create_clock -period 2 -wave_form {0.4 1.4} [get_ports CLK]我们通常使用...
2021-12-26 16:10:55
215
原创 6.Timing Analysis
综合后处理时序分析DC时序分析与内部嵌入的时序分析仪(STA)编译及编译后步骤1: 第一次综合 compile_ultra | -no_boundary | -no_autoungroup | -scan | -timing | -retime2: 查看时序report_constraint -all_violation report_timing3: 若第二步时序检查有violation,则可进行group_path增添路径,优化多条路径,改进时序约束等...
2021-12-26 16:09:05
187
原创 5.Synthesis Optimization Techniques
对进行时序路径、工作环境、设计规则等进行约束完成之后,DC就可以进行综合、优化时序了,DC的优化步骤将在下面进行讲解综合策略top-down & bottom-up1:top-down层次化结构,只对顶层设计进行全面约束,针对个别模块有特殊约束;比如管理模块(clock模块,reset模块等)的综合不会与工作模块(顶层模块)放在一起综合的。2:bottom-up对底层的各个模块定为current_design,进行综合,加上dont touch属性;若各层之间有gro...
2021-12-26 16:04:46
109
原创 4.Environment Attributes
工作环境属性约束工作环境约束一方面是设置DC的工作环境,也就是DC要从在什么样的环境下对你的设计进行约束,举个例子,比如你的芯片要在恶劣的环境中进行工作,DC如果在优质的环境中对你的设计进行约束,你的芯片生产出来,就很有可能工作不了。因此一般就要告诉DC,使用恶劣的模型对设计进行约束。另一方面是为了保证电路的每一条时序路径延时计算的精确性,特别是输入/输出路径的精确性,单单靠外部的输入延时和输出延时的约束是不够,还要提供设计的环境属性。1:包括*输入端口,激励驱动*输出端口,驱动负载...
2021-12-26 16:01:55
169
原创 3.Timing Constraints
时序约束1:分类时钟的约束(寄存器-寄存器之间的路径约束),输入延时的约束,输出延时的约束2:时序约束对电路的要求综合工具现在不能很好地支持异步电路,甚至不支持异步电路;single clock,single cycle,单个时钟,单延触发,不要一会posedge,一会negdege3:同步电路常见结构具体路径如下图起点定义:输入端口;(input port)触发器或寄存器的时钟引脚输出端口:输出端口;时序器件的除时钟引脚外的所有输入引脚...
2021-12-26 15:58:42
462
原创 2.Design and Library Objects
什么是object?对象每个设计都有6种对象,方便对设计进行分类包括六类:Design,Clock,Port,Pin(cell里面的引脚),Cell(例化的模块),Net(模块与模块之间的互连线)design可以转换为cellport可以转化为pinobjects名字相同时加在net上,5个单位的电容会覆盖原电容值;加在port上,5个单位电容与原电容值x并联,总电容值为(5+x)个单元。改进:set_load 5 [get_net sum]...
2021-12-26 15:55:42
121
原创 0.DC基础知识_Intro
数字逻辑综合概念概念仿真验证通过,进行逻辑综合。逻辑综合的结果就是把设计实现的HDL代码翻译成门级网表netlist。综合需要设定约束条件,就是你希望综合出来的电路在面积、时序等目标参数上达到标准。逻辑综合需要基于特定的综合库(工艺库),不同的库中,门电路基本标准单元(standard cell)的面积,时序参数是不一样的。所以,选用的综合库不一样,综合出来的电路在时序,面积上是有差异的约束条件是人为加上去的,比如创建时钟,时钟频率等;工艺库是特定厂商提供一般来说,综合完成后需要再次...
2021-12-26 15:51:45
230
原创 1.Design and Technology Data(工艺库)
逻辑综合的概述synthesis = translation + logic optimization + gate mapping1:Translation主要把描述RTL级的HDL语言,转换成DC内部统一用门级描述的电路(布尔等式),以GTECH或者没有映射的ddc形式展现2:logic optimization逻辑优化,就是在约束条件下,对用门级描述的电路进行优化,例如把路径调整一下,门改一下。3:Gate mapping门级映射;DC用别的厂商的工艺库把电路给映射出...
2021-12-26 15:51:06
246
原创 流水线握手协议
什么是流水线流水线设计就是将组合逻辑系统地分割,并在各个部分(分级)之间插入寄存器,并暂存中间数据的方法。目的是将一个大操作分解成若干的小操作,每一步小操作的时间较小,所以能提高频率,各小操作能并行执行,所以能提高数据吞吐率(提高处理速度)使用流水线的优缺点优点: 流水线缩短组合逻辑路径的长度,增加了数据吞吐量,从而可以提高时钟频率,但也导致了数据的延时举例如下:例如:一个 2 级组合逻辑,假定每级延迟相同为 Tpd1.无流水线的总延迟就...
2021-08-08 22:51:45
2211
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人