【CPLD Verilog】WARNING - IO buffer missing for top level port
在编写的一个监控风扇板的TACH信号的程序中
module FanTachMonitor (input sys_clk
,input auxgood
,input [31:0] fan_count_num // fan_count_num * 20ns = fan_time
,input fan_tach
,output reg [15:0] fan_rps
);
综合之后报了一组warning
WARNING - IO buffer missing for top level port i_CPLD_FAN1_TACH0...logic will be discarded.
WARNING - IO buffer missing for top level port i_CPLD_FAN1_TACH1...logic will be discarded.
WARNING - IO buffer missing for top level port i_CPLD_FAN2_TACH0...logic will be discarded.
WARNING - IO buffer missing for top level port i_CPLD_FAN2_TACH1...logic will be discarded.
WARNING - IO buffer missing for top level port i_CPLD_FAN3_TACH0...logic will be discarded.
WARNING - IO buffer missing for top level port i_CPLD_FAN3_TACH1...logic will be discarded
从网上搜了一下这个warning,发现了一个案例是说这个warning是综合器在综合的时候将部分net优化掉了。通过RTL发现相关的net根本没有连到任何模块,实际上整个FanTachMonitor都没有被综合!
相应的检查FanTachMonitor的输出端口,发现本应输出给RAM模块的信号,在RAM中只是接了一个0的常数寄存器。
回到程序中,检查发现在顶层模块存在这样的一组语句:
wire [15:0] w_CPLD_FAN1_RPS0=16'b0; //mean round per second
wire [15:0] w_CPLD_FAN1_RPS1=16'b0;
wire [15:0] w_CPLD_FAN2_RPS0=16'b0;
wire [15:0] w_CPLD_FAN2_RPS1=16'b0;
wire [15:0] w_CPLD_FAN3_RPS0=16'b0;
wire [15:0] w_CPLD_FAN3_RPS1=16'b0;
猜测是否是这里将wire型的变量的“赋初始值”的动作,导致综合器在综合的时候认为这里的wire型变量和常数寄存器相连,从而综合器在优化时认为,FanTachMonitor这个模块无法输出任何东西(输出的wire锁死为常数),因此将整个FanTachMonitor给优化掉了。
将上面的代码中的赋值动作去掉后,RTL正确生成的该部分的电路,并且warning也消除了。
总结:
(1)wire型变量别乱赋初始值;
(2)综合器有时候会优化掉一些模块,但是这种情况会被认为是warning,而不是error,有可能出错。
【CPLD Verilog】WARNING - IO buffer missing for top level port相关推荐
- 【十四】Java IO框架思维导图
知识章节参考:[十四]Java IO框架
- 【c语言】warning C4566
[c语言]warning C4566 问题 warning C4566: character represented by universal-character-name '\u5E74' cann ...
- 【Linux练习生】基础IO(详细)
本节我们讲解基础IO的部分,将围绕以下内容进行梳理讲解: 复习C文件IO相关操作 认识文件相关系统调用接口 认识文件描述符,理解重定向 对比fd和FILE,理解系统调用和库函数的关系 理解文件系统中i ...
- 【SCI征稿】Elsevier旗下中科院2区TOP, 仅1周见刊, 6月11日截稿 (文末有好)~
一.[期刊简介] 中科院2区智能计算类SCI (TOP/6.11截稿) [期刊概况]IF:8.0-9.0, JCR1区, 中科院2区: [终审周期]走期刊部系统,3-5个月左右录用: [检索情况]SC ...
- 【Linux学习】基础IO
目录 前言 一.C语言文件IO 1. C语言文件接口以及打开方式 2. 对当前路径的理解 3. 默认打开的三个流 二. 系统文件IO 1. 系统接口 open write read close 系统接 ...
- 【排序+难题】LeetCode 41. First Missing Positive
LeetCode 41. First Missing Positive 本博客转载自:[1]http://www.cnblogs.com/grandyang/p/4395963.html [2]htt ...
- 【学习笔记】JAVA IO与NIO(new IO)的对比与不同IO模型的理解
JAVA IO 分类: 几种IO 模型 1. 阻塞 IO 模型 2. 非阻塞 IO 模型 JAVA NIO 多路复用 IO 模型(即Java中的NIO) JAVA IO 思维导图: 分类: 按照流的方 ...
- java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流
IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...
- 【Linux练习生】高级IO
本文收录于专栏:Linux 关注作者,持续阅读作者的文章,学习更多知识! https://blog.csdn.net/weixin_53306029?spm=1001.2014.3001.5343 高 ...
- 【网络编程】同步IO、异步IO、阻塞IO、非阻塞IO
IO分两阶段: 1.数据准备阶段:在该阶段,根据是否等待数据准备,将IO分成阻塞和非阻塞: 2.内核空间复制回用户进程缓冲区阶段:在该阶段,只要程序需要等待复制完成,才能往下运行(尽管这个时间很短), ...
最新文章
- main函数第3个参数envp装的是什么(envp:环境变量)
- 作为一枚学生党,如何提升自己华丽转身
- 【Git】Git-常用命令备忘录(二)
- FreeRTOS源码获取
- 风变编程课 囚徒困境 答案_当您对所有这些有用的在线编程课程感到不知所措时,如何摆脱困境...
- CSS3质感分析——表面线性渐变
- java对象与Json字符串之间的转化(fastjson)
- matlab二分类svm高斯核 实例,16 SVM - 代码案例三 - 不同SVM核函数效果比较
- spring 全依赖
- Openssl s_server命令
- linux驱动_设备驱动_问题定位_vivo_pd1932_音量键
- 汽车硬件测试基准介绍
- 新概念第二册 Lesson 1 句子 结构 分析
- 线段树(segment tree),看这一篇就够了
- NS3 Tutorial 中文版:第二章 资源
- Python3入门教程:Excel 基础操作(上)
- WIN10 以管理员权限设置开机启动的问题
- jquery服务器文件保存到本地,jQuery本地存储
- Set集合及源码分析
- 小米装linux系统教程视频,小米5 miui8折腾Linux Deploy经验
热门文章
- 数据结构-BitMap
- linux uniq 第一列,linux uniq命令用法
- Win 10 下运行红警
- ums512语音回环测试听筒无声/副MIC回环无效
- “ISO专员”资质以及岗位职责范围的说明
- pyqt5打包图片等资源文件及使用方法
- AliOS-Things--linkkitapp (6)打印日志
- 数据结构——“线性表的应用举例“ 深度分析学完线性表工作中应用在哪?
- xpath爬取站长素材中的免费简历
- java gui 图片标签_Java开发GUI之Label标签