在编写的一个监控风扇板的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相关推荐

  1. 【十四】Java IO框架思维导图

    知识章节参考:[十四]Java IO框架

  2. 【c语言】warning C4566

    [c语言]warning C4566 问题 warning C4566: character represented by universal-character-name '\u5E74' cann ...

  3. 【Linux练习生】基础IO(详细)

    本节我们讲解基础IO的部分,将围绕以下内容进行梳理讲解: 复习C文件IO相关操作 认识文件相关系统调用接口 认识文件描述符,理解重定向 对比fd和FILE,理解系统调用和库函数的关系 理解文件系统中i ...

  4. 【SCI征稿】Elsevier旗下中科院2区TOP, 仅1周见刊, 6月11日截稿 (文末有好)~

    一.[期刊简介] 中科院2区智能计算类SCI (TOP/6.11截稿) [期刊概况]IF:8.0-9.0, JCR1区, 中科院2区: [终审周期]走期刊部系统,3-5个月左右录用: [检索情况]SC ...

  5. 【Linux学习】基础IO

    目录 前言 一.C语言文件IO 1. C语言文件接口以及打开方式 2. 对当前路径的理解 3. 默认打开的三个流 二. 系统文件IO 1. 系统接口 open write read close 系统接 ...

  6. 【排序+难题】LeetCode 41. First Missing Positive

    LeetCode 41. First Missing Positive 本博客转载自:[1]http://www.cnblogs.com/grandyang/p/4395963.html [2]htt ...

  7. 【学习笔记】JAVA IO与NIO(new IO)的对比与不同IO模型的理解

    JAVA IO 分类: 几种IO 模型 1. 阻塞 IO 模型 2. 非阻塞 IO 模型 JAVA NIO 多路复用 IO 模型(即Java中的NIO) JAVA IO 思维导图: 分类: 按照流的方 ...

  8. java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...

  9. 【Linux练习生】高级IO

    本文收录于专栏:Linux 关注作者,持续阅读作者的文章,学习更多知识! https://blog.csdn.net/weixin_53306029?spm=1001.2014.3001.5343 高 ...

  10. 【网络编程】同步IO、异步IO、阻塞IO、非阻塞IO

    IO分两阶段: 1.数据准备阶段:在该阶段,根据是否等待数据准备,将IO分成阻塞和非阻塞: 2.内核空间复制回用户进程缓冲区阶段:在该阶段,只要程序需要等待复制完成,才能往下运行(尽管这个时间很短), ...

最新文章

  1. main函数第3个参数envp装的是什么(envp:环境变量)
  2. 作为一枚学生党,如何提升自己华丽转身
  3. 【Git】Git-常用命令备忘录(二)
  4. FreeRTOS源码获取
  5. 风变编程课 囚徒困境 答案_当您对所有这些有用的在线编程课程感到不知所措时,如何摆脱困境...
  6. CSS3质感分析——表面线性渐变
  7. java对象与Json字符串之间的转化(fastjson)
  8. matlab二分类svm高斯核 实例,16 SVM - 代码案例三 - 不同SVM核函数效果比较
  9. spring 全依赖
  10. Openssl s_server命令
  11. linux驱动_设备驱动_问题定位_vivo_pd1932_音量键
  12. 汽车硬件测试基准介绍
  13. 新概念第二册 Lesson 1 句子 结构 分析
  14. 线段树(segment tree),看这一篇就够了
  15. NS3 Tutorial 中文版:第二章 资源
  16. Python3入门教程:Excel 基础操作(上)
  17. WIN10 以管理员权限设置开机启动的问题
  18. jquery服务器文件保存到本地,jQuery本地存储
  19. Set集合及源码分析
  20. 小米装linux系统教程视频,小米5 miui8折腾Linux Deploy经验

热门文章

  1. 数据结构-BitMap
  2. linux uniq 第一列,linux uniq命令用法
  3. Win 10 下运行红警
  4. ums512语音回环测试听筒无声/副MIC回环无效
  5. “ISO专员”资质以及岗位职责范围的说明
  6. pyqt5打包图片等资源文件及使用方法
  7. AliOS-Things--linkkitapp (6)打印日志
  8. 数据结构——“线性表的应用举例“ 深度分析学完线性表工作中应用在哪?
  9. xpath爬取站长素材中的免费简历
  10. java gui 图片标签_Java开发GUI之Label标签