quartus24.1版本子模块因时钟问题无法综合通过,FPGA过OOC问题复盘

embedded/2025/2/10 9:51:48/

因为只负责一个子模块,所以需要单独对该子模块进行综合和过OOC,这时候已经有一些加虚拟pin文件,敲命令让子模块能过OOC的方法。但这个方法的前提是先过综合,然后再敲命令让虚拟管脚命令成功,最终可以过OOC。

今天负责的这个模块的一个输入时钟是某个IP核的输入,所以这个IP核对这个输入时钟有要求限制。要求必须是PLL IP的输出时钟才可以。所以这个项目总工程能综合通过,但子模块却卡在了综合这里,一直过不了。我呢,太懒,不想改代码。琢磨了一天也没想出来咋办。

 

最后领导建议了。

方法一:自己在这个子模块基础上加个top,然后加上PLL IP,然后把这个时钟输出在作为输入接入子模块。这方案当然不是我想要的,哈哈。就不想写代码。

方法二:直接把整个工程跑综合,过了就算通过了。等于不再单独对这个子模块进行OOC检查了。

 

OOC:概念,out of context 的缩写

上下文无关综合。

这种概念我是来这家公司才知道的,因为之前公司整个项目都是自己做,不涉及子模块问题,但现在公司很系统很细节很螺丝钉,只负责子模块,就有OOC的环节,之前我一直以为就是整个项目跑实现implementation的意思。原来这个OOC是模拟这个过程,在不分配管脚的情况下。

官方解释:FPGA设计通常由多个模块组成,传统综合是将整个设计作为一个整体进行处理。而OOC综合允许独立地对设计中的各个模块进行综合,每个模块的综合过程不依赖于整个设计的上下文信息。

我可是够懒的了,做了好几年了,才理解这个词啥意思……

作用:

提高综合速度:当FPGA设计规模庞大,结构复杂时,整体综合会消耗大量的时间和系统资源。采用OOC综合,不同模块可以并行处理,(也就是不同模块负责人各干各的不用互相等),大大缩短了综合的总时间。例如,一个包含多个复杂IP核和自定义逻辑模块的大型FPGA设计,对各个模块分别进行OOC综合能显著提高效率。很显然小项目可能用不上,大项目甚至是芯片设计的那种可能会用上这种精细的工作。

优化模块性能:在独立综合每个模块时,可以针对该模块的特点进行更精细的优化设置。比如对于一个对时序要求极高的模块,可以单独为其设置更严格的时序约束和优化策略,而不受其他模块的影响,从而提升该模块的性能。

便于模块复用:通过OOC综合得到的模块具有更好的独立性和可移植性。在不同的设计项目中,如果需要复用某个模块,只需将该模块及其相关的OOC综合结果导入即可,无需重新对整个设计进行综合。

使用方式:

模块标记:在设计代码中,需要明确标记哪些模块要进行OOC综合。不同的FPGA开发工具标记方式可能有所不同。例如,在vivado中,可以通过设置属性来指定某个模块为OOC模块。

就我的经验而言,vivado开发这个过程比较容易,在设置中综合设置里面加上命令-mode out_of_context

具体是tools-settings-synthesis more options中输入

-mode out_of_context,然后implementation通过就等于过了OOC单独模块的无上下文综合。

而intel的quartus需要一些脚本操作来完成,相对复杂了一点。需要linux人来配合写个脚本啥的

2025.02.07

 

好啦!这次经验写到这里。说点题外话,这几年我一直没来写,原因是我进了一家外企,安全管理过于严格,电脑随时被监控,我不敢登录这里。最近打算离职了,突然试了一下,电脑上登录了,结果给我发邮件说我在韩国登录了该博客,吓死我。赶紧退出。所以现在是用手机登录来写的,比较麻烦。

这几年也学到了很多,其实如果电脑不被监控,我也会留下很多经验给大家分享,我是个记忆力极差的人,做完就忘。导致我一直有记录的习惯,下次再遇到就来翻一翻。可是这两年多的经验就失传了,遇到很多问题,但无法写下来,也带不出去公司,电脑u盘都不让带,我又记不住,面试的时候把我问的一愣一愣的,好像我是个骗子,都是编的经历一样,其实真的是做过但忘记了,所以人记性差真的吃亏啊。

面试也是给我说我技术深度不够……目前自卑的很。

简单的看到大家给我的评价,很高兴能帮助到大家,大家问我的问题可能也是很久了有些细节我自己也忘了,就不回复了。如果新工作保密要求不高我会再来分享经验的

 

 


http://www.ppmy.cn/embedded/161053.html

相关文章

DPのfor a week

P1734最大约数和 选取和不超过 S S S 的若干个不同的正整数&#xff0c;使得所有数的约数&#xff08;不含它本身&#xff09;之和最大 如取数字 4 4 4 和 6 6 6&#xff0c;可以得到最大值 ( 1 2 ) ( 1 2 3 ) 9 (12)(123)9 (12)(123)9。 #include <iostream>…

ChatGPT提问技巧:行业热门应用提示词案例-文案写作

ChatGPT 作为强大的 AI 语言模型&#xff0c;已经成为文案写作的得力助手。但要让它写出真正符合你需求的文案&#xff0c;关键在于如何与它“沟通”&#xff0c;也就是如何设计提示词&#xff08;Prompt&#xff09;。以下是一些实用的提示词案例&#xff0c;帮助你解锁 ChatG…

本文主要详细讲解ArcGIS中的线、多线段和多边形的结构关系。

在ArcGIS的定义中&#xff0c;线部分的类结构视图如下&#xff1a; 从上图可以非常直观地看到其结构关系。 一、线段&#xff08;ISegment&#xff09; ArcGIS中的线段都继承于ISegment&#xff0c;分四种线段。贝拉曲线&#xff08;IBezierCurve&#xff09;、直线段&…

DeepSeek时代:百度们亟需“深度求索”

文&#xff1a;互联网江湖 作者&#xff1a;刘致呈 眼看着梁文峰被捧上中国AI神坛&#xff0c;科技巨头们的心情一定是复杂的。 就像大刘笔下的《三体》中&#xff0c;当三百年后的人类太空舰队&#xff0c;面对水滴探测器时是五味杂陈的。 当科技大佬们纷纷断言&#xff0c;…

前端框架中 HTML 的应用技巧:React、Vue、Angular 深度解析

系列文章目录 01-从零开始学 HTML&#xff1a;构建网页的基本框架与技巧 02-HTML常见文本标签解析&#xff1a;从基础到进阶的全面指南 03-HTML从入门到精通&#xff1a;链接与图像标签全解析 04-HTML 列表标签全解析&#xff1a;无序与有序列表的深度应用 05-HTML表格标签全面…

Mac本地部署DeekSeek-R1下载太慢怎么办?

Ubuntu 24 本地安装DeekSeek-R1 在命令行先安装ollama curl -fsSL https://ollama.com/install.sh | sh 下载太慢&#xff0c;使用讯雷&#xff0c;mac版下载链接 https://ollama.com/download/Ollama-darwin.zip 进入网站 deepseek-r1:8b&#xff0c;看内存大小4G就8B模型 …

使用Python实现PDF与SVG相互转换

目录 使用工具 使用Python将SVG转换为PDF 使用Python将SVG添加到现有PDF中 使用Python将PDF转换为SVG 使用Python将PDF的特定页面转换为SVG SVG&#xff08;可缩放矢量图形&#xff09;和PDF&#xff08;便携式文档格式&#xff09;是两种常见且广泛使用的文件格式。SVG是…

Mac电脑修改hosts文件内容

背景 mac电脑需要配置ip和域名的映射关系&#xff0c;通过域名访问内部系统 解决 打开终端 输入 sudo su 命令&#xff0c;切换到root用户 输入密码 编辑hosts文件&#xff0c;输入命令 vim /etc/hosts 编辑hosts内容&#xff0c;英文状态下&#xff0c;按键盘字母 i 键&am…