dc综合的sdc约束
单周期时序约束 时序约束的内容 所有输入逻辑路径(从输入端口开始) 内部(寄存器到寄存器)路径 所有输出路径(结束于输出端口) DC将设计分成时序路径,每个路径都有一个: 起始 Input port 触发器或寄存器的时钟引脚 终点 + output port + 顺序设备的任何输入引脚,时钟引脚除外 对时钟进行约束 创建时钟 12# 设置时钟的周期约束create_clock -period 2 [get_ports clk] 模仿时钟到寄存器的时钟延时,clk到两个触发器的时间是不一样的 表示组合路径的最大延迟只能是1.78,必须将clock的uncertainty考虑进来 1set_clock_uncertainty -setup 0.14 [get_clocks clk] 设置时钟到达的latency,-source表示外部源时钟的延迟 12set_clock_latency -source -max 3 [get_clocks clk] # source latency 约束set_clock_latency ...
spyglass使用
参考链接: spyglass使用教程-CSDN博客 Spyglass介绍 SPYGLASS是很高效的RTL分析和CDC检查工具,可以有效的帮助规避设计中的难以察觉的问题,帮助设计人员提高设计质量 SpyGalss是目前业界唯一可靠的RTL Sign off解决方案,可以帮助客户在设计早期发现潜在问题,保证产品质量,极大的减少设计风险,降低设计成本。 包含五大模块:lint, CDC(跨时钟域检查), LP(低功耗),Constraint(约束),DFT(可测试性) Spyglass的重要性 图形化界面使用 设计导入和编译 导入设计 打开界面,在终端输入spyglass add file添加设计文件 为了方便,可以将所有文件先整合到filelist.f中 12find ../rtl/ -name "*.v" >> filelist.ffind ../rtl/ -name "*.sv" >> filelist.f 之后再add files中直接添加list文件即可 注意事项 对于一些macro,...
axi总线
参考文章链接: AMBA总线3-AXI 咸鱼IC 深入理解AMBA总线(十五)AXI-stream - 知乎 基本概述 AMBA3版本推出了AXI协议,它支持高性能、高频率的系统设计,其主要特点如下所示: 分离的地址/控制和数据阶段 通过字节选通方式支持非对齐的数据传输 使用基于突发的事务,只需其实地址发出。(Burst不得跨4KB边界,防止跨越Slave边界) 单独的读写数据通道,这可以提供低成本的直接内存访问(DMA) 支持发布多个超前地址(outstanding) 支持完成乱序事务(out-of-oder) 易于添加register stage达成时序收敛 AXI协议包括涵盖低功耗操作的可选扩展信号 AXI协议是基于突发的,并定义了五个独立的事务通道。地址通道携带着控制信息,用于描述传输数据的性质。五个独立通道都由一组信息信号、以及提供双向握手机制的VALID和READY信号组成。 Master使用VALID信号来显示信道上的addr、data或ctrl信息何时可用 Slave使用READY信号来显示它何时可以接受信息 读数据通道和写数据通道还包括LAST信号,以指...
同步FIFO设计
verilog设计 同步FIFO设计 [!note] 同步FIFO可以解决位宽,速率的匹配 [!note] 重点在于读写指针的控制 [!important] 怎么具体判断FIFO是空还是满: 方法1 设计fifo_cnt,当为深度的时候,为满 wr_en的时候+1,rd_en的时候-1,wr_en和rd_en同时为高的时候counter不变 当fifo_cnt等于DEPTH的时候为满,否则为空 方法2 指针多扩展1bit,当标志位不一样的时候就是满标志,否则是空标志 补充 当FIFO的读写位宽不匹配的时候 16to8,即写是16bit,读是8bit的时候 [!important] mem声明的时候应该声明成8bit的位宽 单次写入的时候,wr_ptr一次不是加1,而是加2,单次读出的时候,cnt-1 同时读写的时候,cnt+1 实现代码示例 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505...
web网站搭建
环境搭建 版本控制工具:git Node:JavaScript运行环境 npm、cnpm、yarn:包管理工具 hexo博客搭建 hexo安装 1234# 全局安装hexonpm install hexo -g# 检查安装的版本hexo version 如果正常安装的话,输出内容如下: 12345678hexo-cli: 4.3.2os: linux 6.6.87.2-microsoft-standard-WSL2 Rocky Linux 8.10 (Green Obsidian)node: 22.21.1acorn: 8.15.0ada: 2.9.2amaro: 1.1.4ares: 1.34.5... 新建博客 进入工作目录 1cd /home/icer/workspace/web/hexo_dir 初始化工作区 1hexo init blog 安装依赖 12cd blognpm install 预览查看网站 1234shell > hexo serveINFO Validating configINFO Start processing...
异步FIFO设计
异步FIFO设计 同步器 异步FIFO的作用: 用于在不同时钟域之间安全地传输数据 同步器 对于跨时钟阈之间的信号传输,需要进行同步处理 一般来讲,我们可以采用同步器(2-3级FF组成)对单bit的信号进行同步操作 由于异步FIFO也涉及了跨时钟域,因此在具体的设计中需要用到同步器的相关内容 异步FIFO结构图 具体设计中存在的重要点和注意事项: 在读写指针中,不同时钟域之间要注意同步问题,bin和gray码之间的转换 对于FIFO的标志信号,full对应的是写时钟域的,empty对应是读时钟域的 二进制/格雷码 二进制转格雷码 使用格雷码的最高位作为二进制的最高位,二进制次高位产生过程是使用二进制的高位和次高位格雷码相异或得到,其他位的值与次高位产生过程类似 12345678910module bin2gray#( parameter DATA_WIDTH = 8)( input [DATA_WIDTH-1: 0] bin_data , output [DATA_WIDTH...
apb总线
APB发展 APB2 该规范定义了接口信号,基本的读写传输以及APB的两个组件APB bridge和APB slave APB3 定义了下面两个附件功能 等待状态,参见Transfer 错误报告,参见Error response 对应增加的信号如下 PREADY:准备就绪信号,表示APB传输完成 PSLVERR:传输失败的错误信号 APB4 定义了以下附加功能: 事务的保护,参见Protection unit support 稀疏数据传输,参见Write stobes 对应的信号如下 PPROT:一种保护信号,用于支持非安全事务和安全事务 PSTRB:一种写掩码信号,用于在写数据总线上实现稀疏数据传输 APB5 定义了以下附加功能 PWAKEUP信号 User信号 Parity protection and check信号 Reaml Management Extension(RME)支持 APB信号 数据总线 APB协议有两个独立的数据总线,一个用于读取数据,一个用于写入数据 总线可以达到32位宽 由于总线没有各自的握手信号,...
axi总线进阶内容
参考链接: https://www.cnblogs.com/qianbinbin/p/17476071.html 有关cache axlock详细解析 锁访问 主要使用LOCK信号,锁住一笔传输,拒绝其它传输的干扰,只有这笔传输完成之后释放Lock信号,才可以进行其它笔传输。 在M0想要发起一笔锁定传输前,需要确保是否还有在进行的传输,必须要确保之前进行的传输都已完成。 M0使用AxLOCK发起locked transaction,interconnect通过内部仲裁器确保只有M0能够访问S0,其它主机的访问都会被阻塞掉,直到锁定传输完成。 AXI3支持锁定访问,但AXI4已经不支持了 独占访问 AXI4取消锁定访问的原因是新增了独占访问,比锁定访问效率更高,还是使用AxLOCK信号。 锁定访问是不允许其它主机访问正在锁定访问的从机,而独占访问允许访问该从机,只是不允许其它主机访问相同的内存范围(memory range)。 这样既不会出现两个主机对同一块内存空间进行更改,导致数据错误;还可以一定程度保证了总线的最大带宽和总线延迟。 从机内部需要实现一个独占访问...
系统与架构级低功耗设计
参考链接: https://www.cnblogs.com/IClearner/p/6903204.html 系统与架构层次的低功耗设计,可以节省70%以上的功耗。这个层次上的设计往往是由系统和架构设计人员进行的,这些人员往往是有着丰富经验的设计人员。他们制定了低功耗设计方案,由下一级的设计人员(比如做前端设计、做Flow的人员)进行具体实现 多电压设计技术(Multi-VDD) 多电压设计介绍 从前面的功耗方程中,我们可以知道,电压与功耗有着密切的联系。因此功耗的降低可以考虑使用低一点的电压。多电压设计技术有三种方式: A:各电压区域有固定的电压,如上图(a)所示 B:各电压区域具有固定的多个电压,由软件决定选择哪一个电压,如上图(b)所示 C:自适应的方式,各电压域具有可变的,由软件决定选择哪一个电压,如上图(c)所示 [!note] A是固定分配的电压;而B和C为动态电压管理,涉及到软硬件协同设计,这里我们放到后面进行介绍。这里主要是从整体上进行介绍多电压设计技术及其要求,然后给出A方式的一个例子以及一个多电压低功耗设计的脚本示例 多电压综合库及电压模式控制...
ahb总线
AHB信号 AHB协议相比APB协议更加复杂,性能更加优越,手册上也清楚写明了它的特点:高性能、流水线、突发、多主机、分段传输,原文如下所示: 注意这是AHB2中的描述,到了AHB-lite和AHB5中,AHB协议本身不再支持多主机操作,也去除了仲裁相关的若干信号,但可通过添加Multi-layer interconnect组件实现多主机功能。也不再支持分段传输Split,去除了HSPLITx信号。因此和APB相比,最大的不同是AHB支持流水线操作和突发操作。 目前AHB协议有AHB2、AHB-lite、AHB5协议,AHB-lite的变化是在AHB2的基础上做了减法,而AHB5的变化是在AHB-lite的基础上做了加法。实际使用时可能不会分得太清,系统中需要某些信号可能就直接加上去了,不需要的可能直接就删除了,并不会太严格的说这是第几代AHB协议。但本着学习的目的,我还是想做下三代AHB协议的对比。 AHB协议使用一种读数据多路复用器互连方案。管理器向所有从属设备发出地址和控制信号,而在数据传输的数据阶段,解码器会选取适当的从属设备。来自所选从属设备的任何响...
