首页 > 其他分享 >时序约束和综合+跨时钟产生的问题+spyglass的使用+SOC设计问题

时序约束和综合+跨时钟产生的问题+spyglass的使用+SOC设计问题

时间:2024-10-19 22:12:31浏览次数:1  
标签:SOC set clock get 时序 sdc spyglass 时钟

时序约束和综合

时钟频率

# 时钟单位为ns,2ns对应500M时钟频率
create_clock -period 2 [get ports clk]

skew

# 设置时钟的skew,即上升沿之间的误差,当前设置为0.3ns
set_clock_uncertainty -setup 0.3 [get_clocks CLK]

image

transition

# 设置时钟上升沿的转化时间
set_clock_transition -max 0.15 [get_clocks CLK]

image

latency

# 设置晶振源到时钟输入端的延时
set_clock_latency -max 0.7 [get clocks CLK]

image

input delay

# 0.6的值为电路M的最大时间,从FF1的Q端到到下一个设计的A端口需要的时间
以Ck的上升沿作为计算的起点。
M和N为两块电路,总延时不变的情况下,M给定约束,则综合工具尽可能减少N部分的时间。
set_input_delay -max 0.6 -clock Clk [getports A]

image

output delay

# 给定了外部电路FF4中的T的延时总为0.8。
以CLk作为时钟参考,上升沿开始计算,信号从S到T的的总时间一定,T已知,那么S最大值可由综合工具得出

set_output_delay -max 0.8 -clock Clk [getports B]

image

input transition

输入的充电时间,从低电平到高电平需要的时间
set_input_transition 0.12 [get_ports A]

image

set load

# 设置电容负载最大值,当前设定为0.03
set load [expr{30.0/1000}] [get ports B]

image

输出sdc

# 输出sdc
write_sdc xxxx.sdc(新思约束文件信息)
# 输出网表和sdc文件
write -f ddc -hier -output xxxx.ddc(网表和sdc文件信息)
# 输出网表
write -f verilog -hier -output xxxx.gv(网表文件,额外的sdf标准延时文件用于反标到gv文件上,做后仿真)

design_version内的约束和输出设置

如设置线载模型
image
如输出报告
image

综合的等级

编译划分为三个部分,

  1. 架构级别的调整
  2. 级别的优化,即使用什么类型的逻辑单元完成功能,与门还是异或门?
  3. 确定好使用的逻辑单元后,使用什么样的器件完成功能,使用型号1的与门,还是型号2的与门?
    编译有两种方式
compile 预编译,普通编译
compile_ultra 超级编译,尽可能优化

跨时钟产生的问题

手册:SpyGlass® CDC Submethodology (for GuideWare 2.0 xxxx)

亚稳态产生

亚稳态产生的根本原因是建立保持时间不够。设计时不可控的外界因素,则是工艺、温度、电压、电磁波等的影响。

设计问题主要是时钟采样频率、采样位置、复位释放时机等不合适,导致无法满足建立保持时间。缓解亚稳态的方法主要是信号打拍。
image
对于多bit信号,采用握手。
image

Reconvergence问题

在多个bit出现反转的时候,从X4到Y4的信息,可能出现多bit采样时候,无法完全同步得到采样,使用格雷码可以解决问题
https://www.elecfans.com/d/2077894.html
image

数据丢失的问题

从快时钟到慢时钟,传递信息,慢时钟采样的时间短,需要额外增补数据保持的时间,即使用与门,或者或门,增加低电平或高电平的持续时间
image

设计意图产生的问题

在一些需要做出跨时钟的设计意图时候,需要采用fifo或者单bit握手方式,实现握手。

image

复位问题

复位需要异步复位,同步释放。果复位是异步释放,则导致异步的数据送出到各种组合逻辑,而时钟采样这些组合逻辑,容易导致亚稳态。同步复位的设计是使用两级同步实现。
image

CDC典型问题

image

时钟频率切换问题

频率切换使用以下方法,可以安全切换
image

spyglass的使用

使用spyglass提前发现CDC的问题,可以减少返工,提高效率,spyglass还可以检查STA

读入文件和类型

spyglass可以读入的文件类型有很多

read_file -type <type> <file-name>

image

选择要检查的位置,使用外部控制

spyglass -batch project Project-1.prj-goal G1

下述代码选择了第一个选项,即set_parameter fa_modulelist {M1 M2}

set_option top T1

current_goal Gl -top T1
set_parameter fa_modulelist {M1 M2}

current_goal G1 -top T2
set_parameter fa_modulelist {M3 M4}

current_goal G1 -alltop
set_parameter fa_modulelistk {Ml M2 M3 M4}

spyglass cdc工具功能

SpyGlass® Constraints Submethodology (for GuideWare 2.0 and 2015.12) 手册
image

SOC设计问题

设计重点

SOC设计的三个重点内容:时钟、接口、复位。称为CIR文件。

DFT功能

SOC有正常工作状态和DFT工作状态。DFT主要用于硅后的检查,良率控制。
DFT对逻辑门的开路和短路进行检查,通过PinMux外部的PAD切换工作状态。
最优的DFT/BIST策略保证产品测试错误覆盖率最大,测试时间最短
image

MBIST

内存内置的自检电路,是DFT的一种实现实例,用于检查内存是否正确。检查错误时立马退出,送出fail信号。
image
March算法是一种较为高效的内存检查算法,其步骤存在变体,一种情况如下:
image

PIN和PAD

PIN是内部的芯片送出信号,外部到PCB板上是PAD
image

FloorPlan

用于规划各个模块的位置
image

电源分布

物理设计部分
image

Layout版图

送入芯片生产前的最后步骤
image

SRAM的大小含义

比如大小为8K*8,则其深度为8K,宽度为8bit。划分为两个bank,每个bank独立的选通信号,一个bank最终的大小是8K*32,。
image

标签:SOC,set,clock,get,时序,sdc,spyglass,时钟
From: https://www.cnblogs.com/bai2022/p/18478119

相关文章

  • 项目模块三:Socket模块
    一、模块设计1、套接字编程常用头文件展示#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include<arpa/inet.h>#include<unistd.h>#include<fcntl.h>2、成员函数设计(1)创建套接字bool Create()intsocket(intdomain,inttype,......
  • POLIR-Society-Organization-Psychology-Training: The Junto Institute: {Relationsh
    POLIR-Society-Organization-Psychology-Emotionhttps://www.thejuntoinstitute.com/Emotionalintelligencetrainingformanagers&leadersintheremoteworkplace.HowYourCompanyBenefitsBettermanagersforimprovedemployeeperformanceHighermanag......
  • TCP-UDP-Socket调试工具以及使用教程(亲测好用!)
    前言TCP-UDP老程序都不陌生吧,面试常问。所以在网络编程与网络应用开发的过程中,调试是一个至关重要的环节,它帮助开发者确保数据能够准确无误地在不同节点之间传输。尤其当涉及到TCP/IP、UDP等底层网络通信协议时,面对复杂的连接建立、数据流控制及错误处理等问题,拥有一款强大且专业......
  • Stratix® 10 SX SoC FPGA结构图— 1SX040HH3F35E2LG 1SX040HH3F35E3XG 1SX040HH3F35I
    Stratix®10SXSoCFPGA结构图英特尔®Stratix®10SoCFPGA结合了四核ARM*Cortex*-A53MPCore*硬处理器系统与革命性的英特尔®Hyperflex™FPGA架构,为嵌入式应用提供了必要的嵌入式性能、功效、密度和系统集成。针对数百万个逻辑元件(LE)FPGA设计优化的全新引擎......
  • 一文说清楚http、tcp、socket、websocket区别
    写在开头阅读本文,需要您对tcp/ip协议簇协议有一定的了解,本文旨在带你了解Socket到底是啥,他与tcp/ip协议簇、WebSocket、Http等协议之间的关系OSI网络七层模型第一层:应用层,定义了用于在网络中进行通信和传输数据的接口;(Http协议位于该层)第二层:表示层,定义不同系统中数......
  • 计算机网络基础(2)---网络传输基本流程与Socket编程预备
    个人主页:C++忠实粉丝欢迎点赞......
  • WebSocket 教程合集指南,从入门到熟练
    WebSocket是一种在单个TCP连接上进行全双工通信的协议,相较于传统的HTTP协议,它减少了通信开销,更适合需要实时数据传输的场景。本文将带你从零开始,逐步掌握WebSocket的基本概念、实现方法和应用场景,通过一系列详细的教程和实践案例,帮助你从入门到熟练地使用WebSocket技术......
  • 对于SOCKS协议的一些误区有哪些?
    代理协议在设备与代理服务器之间的数据交换中起到了关键作用。在这方面,SOCKS代理协议是常见的选择之一,被广泛应用于下载、传输和上传网络数据的场景。然而,关于SOCKS代理协议存在一些常见的误解,让我们来逐一了解。一、使用SOCKS代理可以加密一个普遍的误解是认为使用SOCKS代理......
  • 产品开发01-socket编程
    实验目的:根据提供的TCP协议代码完成具有相关功能的UDP代码的编写,并成功实现功能客户端要求:(1) 客户端可以多次向服务器发送数据;(2) 客户端能够接收服务器端发送数据,并回显正确;服务器端要求:(1) 运行端口可配置(2) 将客户端发送来的消息正确显示,并将该消息发送给客户端;(3) 支持多个客......
  • 【Docker】Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is
    问题描述CannotconnecttotheDockerdaemonatunix:///var/run/docker.sock.Isthedockerdaemonrunning?原因分析尝试运行Docker命令时,系统无法与Docker守护程序(daemon)通信。Docker服务未运行。解决方案确保Docker服务已经启动。通过在终端中运行s......