关闭

从TimeQuest角度看set_max_delay

今天开始看特权大大的《实战演练之时序收敛》,看到set_max_delay时跟着做了一下,设置了最大延时为3ns,然后report timing突然自动飘红了,很意外,于是看了看瓢红的路径的waveform,意外的发现set_max_delay中设置的值成了latch edge time,由于E文不好google了半天也没找到原因,于是再次祭法宝(从TimeQuest方向进行猜测)。由于repor...
阅读(17) 评论(0)

FPGA 中 IO 口时序分析(Input Delay /output Delay)

1.1  概述   在高速系统中FPGA时序约束不止包括内部时钟约束,还应包括完整的IO时序约束和时序例外约束才能实现PCB板级的时序收敛。因此,FPGA时序约束中IO口时序约束也是一个重点。只有约束正确才能在高速情况下保证FPGA和外部器件通信正确。 1.2  FPGA整体概念   由于IO口时序约束分析是针对于电路板整个系统进行时序分析,所以FPGA需要作为一个整体分析,其中包括FPGA...
阅读(28) 评论(0)

TimeQuest之delay_fall clock_fall傻傻分不清楚

这篇我想分享一个之前在用TimeQuest约束双边沿模块的input delay时犯得一个错误,有人看了可能会觉得傻傻的,什么眼神,falling delay和 falling clk怎么会分不清呢,字面意思好区分,可要深究在约束里的具体含义,还得花点功夫,下面以ddio接收模块为例说明它们的含义以及碰到的一些问题。 ddio接收模块为双边沿工作模式,如图一所示,ddio_in接入DFFH和...
阅读(21) 评论(0)

TimeQuest约束外设之诡异的Create Generated Clocks用法

最近在altera FPGA里设计一个外设的驱动模块,模块本身逻辑很简单如下图所示,但是模块和外设之间的时序约束问题搞的很头疼,今天先讲讲总结的一些Timequest下外设约束方法,特别是那毫无用户体验而言的Create Generated Clocks用法。 要让外设正确接收FPGA发出的数据,需要dout和clkout满足外设的建立保持时间,如下图所示。   时序分析是基于源reg的...
阅读(16) 评论(0)

FPGA静态时序分析基本概念

1.1延迟因素   第一,FPGA芯片内部的一些固有延迟,包括建立时间Tsu、保持时间Th和数据存入寄存器到输出管脚时间Tco,这些时间是由FPGA芯片决定的,不同的FPGA芯片这些延迟时间不一样。(如图1)   第二,路径延迟,包括时钟路径延迟和数据路径延迟,这两种延迟都与设计的逻辑有关,而最主要的延迟还是数据延迟,所以好的代码设计非常重要。(如图1)   图一 FPGA芯片内部   ...
阅读(11) 评论(0)

静态时序分析的约束命令

Timequest共包括13条约束命令(从timequest工具constrants下拉菜单可选的约束命令,实际不止这么多),分别是:    Creat clock    Creat generated clock    Set clock lantency    Set clock uncertainty    Set clock groups    Remove clocks...
阅读(12) 评论(0)

MATLAB2013a的license过期的解决办法

两种解决办法:自己亲测可以使用 第一种办法:修改系统的时间到你的license未过期的时候,你就依然可以使用MATLAB2013a。但是这种方法治标不治本 第二种方法:彻底解决,强烈推荐。打开text文本编辑器,新建一个license.lic的文件,文件中的内容如下。之后用这个文件覆盖掉MATLAB安装根目录的license文件夹里原来的license.lic文件。关机重启后,...
阅读(469) 评论(0)

状态机跑飞的例子

调这个nrf24l01模块差不多半个月的时间了,期间真是千难万阻,困难重重啊!每每以为调通了时候,一测试,不是发送不行了就是接收不行了,或者是时间一长就莫名其妙地断开了,再也不能自动连接上! 我将发送和接收写在同一个模块里,通过模式切换信号来切换,一开始就是用使能了自动应答的方式来调试的,代码前前后后改写了个无数版本。最痛苦的是刚开始就使用Signaltap II来调试的,谁知signaltap...
阅读(33) 评论(0)

FPGA中状态机的稳定性

第一个:状态机输出信号填写问题,下面是我转载的一些能百度的到的东西。好像都比较正常。这里我还要强调的是,每个状态机的输出信号都需要全面。 举例: always @ (posedge clk or negedge rst_n)              这里的状态机简单的描述,其实还有很多状态。 ...//初始化                                         ...
阅读(26) 评论(0)

FPGA三段式状态机的思维陷阱

用三段式描述状态机的好处,国内外各位大牛都已经说的很多了,大致可归为以下三点: 1.将组合逻辑和时序逻辑分开,利于综合器分析优化和程序维护; 2.更符合设计的思维习惯; 3.代码少,比一段式状态机更简洁。   对于第一点,我非常认可,后两点在Clifford E. Cummings著的(Synthesizable Finite State Machine Design...
阅读(20) 评论(0)

彻底搞懂状态机(一段式、两段式、三段式)

实例:FSM实现10010串的检测 状态转移图:初始状态S0,a = 0,z = 0.如果检测到1,跳转到S1。             下一状态S1,a = 1,z = 0.如果检测到0,跳转到S2。             下一状态S2,a = 0,z = 0.如果检测到0,跳转到S3。             下一状态S3,a = 0,z = 0.如果检测到1,跳转到S4。 ...
阅读(23) 评论(0)

FPGA中状态机实现需要注意的地方

写状态机时需要注意的地方: 1、状态机的状态编码大概有三种:二进制编码,格雷码,独热码。      其中二进制编码就是000、001、010、011、100这类的逐渐加一      格雷码就是相邻两个状态只有一位数不一样,000、001、011、010之类的      独热码的意思是有多少个状态那么状态码就有多少位,比如说状态机有六个状态,那么状态向量就有6位,其状态分别为000001、0...
阅读(12) 评论(0)

Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码

一般的,在Verilog中最常用的编码方式有二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码。 二进制码和格雷码是压缩状态编码。 若使用格雷编码,则相邻状态转换时只有一个状态位发生翻转,这样不仅能消除状态转换时由多条状态信号线的传输延迟所造成的毛刺,又可以降低功耗。      二进制编码也可称连续编码,也就是码元值的大小是连续变化的。如S0=3'...
阅读(21) 评论(0)

verilog编译指令

编译指令  以`(反引号)开始的某些标识符是编译器指令。在Verilog 语言编译时,特定的编译器指令在整个编译过程中有效(编译过程可跨越多个文件),直到遇到其它的不同编译程序指令。完整的标准编译器指令如下: * `define, `undef * `ifdef, `else, `endif * `default_nettype * `include * `resetall * `t...
阅读(23) 评论(0)

无线通信频率分配表(详细)

1、5G NR(标准未完成,建议关注)   2、LTE/LTE-Advanced/LTE-AdvancedPro   3、WCDMA/HSPA/HSPA+   4、TD-SCDMA   5、GSM/GPRS/EDGE/EDGE Evolution/VAMOS 备注: P-GSM,基准GSM-900频带 E-GSM,扩展GSM-900频带(包括基准GSM-9...
阅读(68) 评论(0)
464条 共31页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:460690次
    • 积分:5944
    • 等级:
    • 排名:第4736名
    • 原创:70篇
    • 转载:394篇
    • 译文:0篇
    • 评论:20条
    博客专栏
    最新评论