Nios II系统在Quartus II编译后Timing requirements for slow timing model timing analysis were not met. See Report window for details
前言:
在DE2-70,随便一个Nios II系统在Quartus II编译后,几乎都会遇到1个critical warning:“Critical Warning: Timing requirements for slow timing model timing analysis were not met. See Report window for details.”,该如何解决呢?
说明:
使用環境:Quartus II 8.1 + Nios II EDS 8.1 + DE2-70 (Cyclone II EP2C70F896C6N)
在研究Nios II系统的过程中,在从DE2平台转移到更强大的DE2-70平台时,有一个很恼人的问题,随便一个Nios II系统,编译几乎都会有1个critical warning:
Quartus II的warning尚可忽略,但critical warning就没办法再装做不看到了吧?虽然Nios II执行结果正确,但看到这个critical warning总是很碍眼。
经仔细研究发现,原来是经过Quartus II合成后,时序无法满足要求。
原本以为是自己的code有问题,可是将DE2-70 CD 4个包含Nios II系统的范例拿来编译,除了DE2_70_SD_Card_Audio_Player正常外,其他3个范例也都有critical warning。
DE2_70_NET
DE2_70_NIOS_DEVICE_LED
DE2_70_NIOS_HOST_MOUSE_VGA
DE2_70_SD_Card_Audio_Player (正常)
看到连DE2-70 CD的范例本身都有这个问题时,可以确定不是自己的code有问题。
“为什么这个时序无法满足的需求,在DE2都不会遇到呢?而且在Quartus II也增加了constraint,希望Quartus II能合成出Fmax为100MHz的系统,但是Quartus II怎么也合不出需要的100MHz?”
Pipeline Bridge与Altera提出的架构,可以解决这个恼人的问题。
Pipeline Bridge是什么东西?
Bridge的观念是Quartus II 7.1之后才提出的,就是为了解决Nios II系统Fmax低落的问题,由上图可知,一些较慢的slave都透过Pipeline Bridge与master沟通,而不像传统一样,每个master都与slave有专属的通道。
为什么这样就能增加Fmax呢?
主要有两个原因:
1.传统的master与slave因为有专属通道,所以有最大的concurrency,只要master不要同时存取同一个slave即可,但也增加了系统的复杂度,所以Fmax拉不高,若系统对于慢速的slave没有大量concurrency的要求,使用bridge可以降低系统的复杂度,并且提高Fmax。
2.Pipeline Bridge对于Avalon Bus的信号,如address、writedata、write、read、byteenable、chipselect、burstcount、readdata、readdatavalid与waitrequest都加上了pipeline register,所以可以拉高Fmax。
这只是最初步的解释而以,更详细的解释可以在Quartus II Handbook 8.1 vol.4的Chap.11 Avalon Memory-Mapped Bridges找到。
最后Fmax达到102.44MHz,critical warning也不见了。
原来没有使用pipeline bridge,尽管constraint已经调到100MHz,但Quartus II最后只能合成出68.35MHz
“哇!!竟然一行code都没改,Fmax就从68.35MHz变成102.44MHz,真是太神奇了”。
结论:
Bridge是个很有弹性的东西,巧妙的使用bridge架构整个系统,将有助于整体效率,在的ch.6,也提到Bridge使用的一些guideline,又兴趣的人可以参考。
Nios II系统在Quartus II编译后Timing requirements for slow timing model timing analysis were not met. See Report window for details的更多相关文章
- Quartus II中的Waring(转)
1.Found clock-sensitive change during active clock edge at time <time> on register "<n ...
- Quartus II 中 Verilog 常见警告/错误汇总
Verilog 常见错误汇总 1.Found clock-sensitive change during active clock edge at time <time> on regis ...
- [转载]Quartus ii 一些Warning/Eeror分析与解决
我会在此基础上继续添加 原文地址:ii 一些Warning/Eeror分析与解决">Quartus ii 一些Warning/Eeror分析与解决作者:yanppf 注:http:// ...
- quartus II Warning 好的时序是设计出来的,不是约束出来的
一.Warning (15714): Some pins have incomplete I/O assignments. Refer to the I/O Assignment Warnings r ...
- DE1-SOC开发板上搭建NIOS II处理器运行UCOS II
DE1-SOC开发板上搭建NIOS II处理器运行UCOS II 今天在DE1-SOC的开发板上搭建NIOS II软核运行了UCOS II,整个开发过程比较繁琐,稍微有一步做的不对,就会导致整个过 ...
- Nios II 系统时钟timestamp的应用
在用Nios II做外设时序驱动的时候,经常会用延时函数.有时会常使用某个FPGA芯片和时钟,比如笔者一直使用的芯片是cyclone系列 EP2C35F484C8N,PLL输入SOPC时钟是50M.因 ...
- 关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法
关于Quartus II 13.0对应开发NIOS II软件程序时报错Symbol 'NULL' could not be resolved问题的解决方法 近期在评估使用NIOS II处理器进行项目的 ...
- Nios II IDE代码优化,quartus ii 11.0版本IDE
开发Altera Nios II软件可使用Nios II IDE或 Nios II Software BuildTools for Eclipse(即:Nios II SBT for Eclipse) ...
- Quartus ii 12.1软件破解之后编译原有的工程出现报警错误的解决办法
在Quartus ii 12.1软件破解之后,想用来编译原来编译过的工程,但是编译到最后出现下面两个错误警告: 原来以为没有破解成功或者安装的时候有文件被杀毒软件吃了,导致安装错误,又重新安装了两次都 ...
随机推荐
- Linux Python2 升级到 Python3
国内企业服务器用 CentOS 系统的比较多,CentOS8 系统已经将系统默认 Python 版本调整为了 Python3,但是 CentOS7 的存量还是很大,毕竟对企业生产服务来说稳定大于一切, ...
- Git命令太多记不住?有了这个神器,从此告别输入命令行
一 .SourceTree简介 SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作.同时它也是Mercurial和Subve ...
- sqli-labs系列——第五关
less5 更改id后无果,不能用union联合查询 此处用报错注入 报错注入的概念:(1). 通过floor报错 and (select 1 from (select count(*),concat ...
- [源码解析] 并行分布式框架 Celery 之架构 (2)
[源码解析] 并行分布式框架 Celery 之架构 (2) 目录 [源码解析] 并行分布式框架 Celery 之架构 (2) 0x00 摘要 0x01 上文回顾 0x02 worker的思考 2.1 ...
- 【JVM进阶之路】七:垃圾收集器盘点
在前面,我们已经了解了JVM的分代收集,知道JVM垃圾收集在新生代主要采用标记-复制算法,在老年代主要采用标记-清除和标记-整理算法.接下来,我们看一看JDK默认虚拟机HotSpot的一些垃圾收集器的 ...
- 学一手,知乎大V(轮子哥)当年靠它进微软亚洲研究院
前言 vczh本名陈梓瀚,不过大家更愿意叫他「轮子哥」,毕业于华南理工大学软件学院.vczh大学时代就在微软实习,毕业后即加入微软.开始时是在微软上海,后来进入北京的微软亚洲研究院.现已移居美国西雅图 ...
- Node.js 包管理器 NPM 讲解
包管理器又称软件包管理系统,它是在电脑中自动安装.配制.卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用.对于我们业务开发也很受益,相同的东西不必重复去造轮子. 每个工具或 ...
- Distributed | ZooKeeper
ZooKeeper与之前看的论文不太一样,它主要是描述了一个分布式协调服务,提供了wait-free的api,可以让用户自己设计要求更高的原语.通过Zab协议保证sever之间的一致性,同时让读请求在 ...
- MyBatis-Plus笔记(入门)
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 官方文档 https://mybatis.plus/guide/ 本篇基于springboot,mybatis Plus的版本为3.4.2 本篇对应 ...
- 日志收集之filebeat使用介绍
此系列文章一共分为三部分,分为filebeat部分,logstash部分,es部分.这里会按照每天几百亿条的数据量来考虑,去设计.部署.优化这个日志系统,来最大限度的利用资源,并达到一个最优的性能.本 ...