写在前面 全系列:《基于Xilinx的时序分析、约束和收敛》目录与传送门 之前文章讨论的时序约束可以说都是对时钟的理想特征进行约束,为了更精确地进行时序分析,设计者还必须设定一些与运行环境相关的可预测变量和随机变量,这部分也称作时钟的不确定性特征,包括时钟抖动ClockJitter、时钟不确定性ClockUncertainty和时钟延迟ClockLatency。1、时钟抖动ClockJitter 理想的时钟信号是完美的方波,但是实际的方波却是存在一些时钟抖动的。那么什么是时钟抖动呢?相对于理想时钟沿,实际时钟存在不随时间积累的、时而超前、时而滞后的偏移
当我在开发ZYNQ过程中使用PL-PS的IP核之间相互使用,那么就得需要对IP核中所定义的寄存器进行读和写,那么在软件端有这么一个叫XSCT的工具来进行操作。例子1:接下来使用XSCT来调试串口对数据上下行传输读/写。以下是官方AXIUARTLiteip核的寄存器列表xsct%:mwr0x42c000040xfe串口助手将打印0xfexsct%:mrd0x4200000读取串口接收到在数据例如2:对LED寄存器的读和写2.如图0x4120_0FFF是控制四个LED灯的寄存器2.1在xsct输入mwr0x041200020x01引脚输出高电平反之为低电平2.2在xsct读取mrd0x041200
1、4种基本的时序路径 全系列:《基于Xilinx的时序分析、约束和收敛》目录与传送门 下图是一张典型的FPGA与上游器件、下游器件通信的示意图: 其可以划分为4条基本的数据路径,这4条路径也是需要进行时序约束的最基本路径。(1)寄存器到寄存器 路径2,FPGA内部的寄存器到另一个寄存器,即reg2reg(寄存器到寄存器),需要对其进行约束以满足FPGA端寄存器的建立时间和保持时间要求。 路径2约束的是FPGA内部源寄存器(起点)和FPGA内部目的寄存器(终点)的数据路径,其目的是要通过提供要求的方式来使得综合工具vivado满足所有FPG
1、4种基本的时序路径 全系列:《基于Xilinx的时序分析、约束和收敛》目录与传送门 下图是一张典型的FPGA与上游器件、下游器件通信的示意图: 其可以划分为4条基本的数据路径,这4条路径也是需要进行时序约束的最基本路径。(1)寄存器到寄存器 路径2,FPGA内部的寄存器到另一个寄存器,即reg2reg(寄存器到寄存器),需要对其进行约束以满足FPGA端寄存器的建立时间和保持时间要求。 路径2约束的是FPGA内部源寄存器(起点)和FPGA内部目的寄存器(终点)的数据路径,其目的是要通过提供要求的方式来使得综合工具vivado满足所有FPG
1DDR内存控制器介绍DDR内存控制器支持DDR2,DDR3,DDR3L和LPDDR2设备,包括三个主要块:AXI存储器端口接口(DDRI),带有交易调度器(DDRC)的核心控制器和具有数字PHY(DDRP)的控制器。它具有四个64位同步AXI接口的DDRI块接口,可同时为多个AXI主机提供服务,每个AXI接口都有自己的专用交易FIFO。DDRC包含两个32输入内容可寻址存储器(CAM),以执行DDR数据服务调度,以最大限度地提高DDR内存效率。它还包含用于低延迟通道的飞频通道,以允许访问DDR存储器而不通过凸轮。PHY处理来自控制器的读/写请求,并将它们转换为目标DDR内存的时序约束中的特定
写在前面 全系列:《基于Xilinx的时序分析、约束和收敛》目录与传送门 在《基于Xlinx的时序分析、约束和收敛(3)----基础概念(下)》文章中写了一些时序分析的基础概念,同时还说了文章中提到的公式根本就不需要记忆,因为综合工具vivado会帮你把所有时序路径都做详尽的分析,你所需要做的就是理解概念。 光说不练云玩家,今天就通过一个简单的工程来看下如何在vivado软件中查看时序报告。1、建立工程与添加时序约束 首先新建一个vivado的RTL工程,再添加一个Verilog文件,内容如下:moduletest(inputsys_clk ,i
写在前面 全系列:《基于Xilinx的时序分析、约束和收敛》目录与传送门 在《基于Xlinx的时序分析、约束和收敛(3)----基础概念(下)》文章中写了一些时序分析的基础概念,同时还说了文章中提到的公式根本就不需要记忆,因为综合工具vivado会帮你把所有时序路径都做详尽的分析,你所需要做的就是理解概念。 光说不练云玩家,今天就通过一个简单的工程来看下如何在vivado软件中查看时序报告。1、建立工程与添加时序约束 首先新建一个vivado的RTL工程,再添加一个Verilog文件,内容如下:moduletest(inputsys_clk ,i
写在前面 全系列:《基于Xilinx的时序分析、约束和收敛》目录与传送门 最近研究vivado里的时序分析路径时,发现了3个很有意思的问题。经过一番查找资料后,总算把问题搞明白了,在这里分享给大家。1、为什么同一条时序路径在报表里的值不一样? 在如下文件建立的工程中:moduletest(inputsys_clk ,inputrst ,outputreg[7:0] cnt);always@(posedgesys_clk)beginif(rst)cnt 时序约束只做了主时钟约束,约束时钟100M:create_clock-period10.
写在前面 全系列:《基于Xilinx的时序分析、约束和收敛》目录与传送门 最近研究vivado里的时序分析路径时,发现了3个很有意思的问题。经过一番查找资料后,总算把问题搞明白了,在这里分享给大家。1、为什么同一条时序路径在报表里的值不一样? 在如下文件建立的工程中:moduletest(inputsys_clk ,inputrst ,outputreg[7:0] cnt);always@(posedgesys_clk)beginif(rst)cnt 时序约束只做了主时钟约束,约束时钟100M:create_clock-period10.
衍生时钟约束语法 全系列:《基于Xilinx的时序分析、约束和收敛》目录与传送门 衍生时钟(GeneratedClocks,又称为生成时钟)是指由设计中已有的主时钟通过倍频、分频或者相移等操作后产生的新的时钟信号,如由MMCM或PLL或由组合逻辑生成的倍、分频时钟信号。 衍生时钟约束必须指定时钟源,在对衍生时钟进行约束时,并不指直接对其周期、相位等进行描述,而是描述其与源时钟的关系,如倍频因子、分频因子、相位关系等。衍生时钟与源时钟之间的关系可以是:简单的频率分频简单的频率倍频频率倍频与分频的组合,获得一个非整数的比例,通常由MMCM或PLL完成相移或