FPGA程序编译后逻辑单元数为0
问题
FPGA代码写完后编译不报错,但是显示使用的逻辑单元数(Total logic elements)为0。当然程序也不工作。
我用的是Intel Altera FPGA,verilog语言,在Quartus下开发。
原因
顶层模块没有有效的输出。或者输出非常简单,无需逻辑单元。而这往往不是你的真实意图,说明代码有问题。
例如输出没有赋值,或者输出连接着子模块的输出,但是子模块的输出出现问题。
如果没有正确地设置顶层模块的输出,或者输出非常简单。则编译时被优化,认为模块无输出,或者输出无需逻辑单元。
举例1:
简单输出,或输出端口未连接
module test
(
input clk,
input rst,
output out1,
output out2,
output out3
);
assign out1 = clk;
assign out2 = ~clk;
endmodule
out1直接将时钟信号输出,未做任何处理;out2将时钟信号反相输出,只需要一个非门,不需要逻辑单元;而out3没有任何处理。
因此上述代码编译得到的逻辑单元数为0。
举例2:
由于程序错误,导致输出始终不变。
module test
(
input clk,
input rst,
input [3:0] data,
output [15:0] out
);
reg [3:0] store [3:0];
reg [1:0] k; // 0~3
// 把连续4次收到的数据组合成一个数据发送出去
always @ (posedge clk or negedge rst)
begin
if (!rst)
k <= 1'b0;
else
begin
store[k] <= data;
if (k == 2'd4) // 这里写错了,应该是 2'b3
begin
k <= 0;
out <= {data[0], data[1], data[2], data[3]};
end
else
k <= k + 1'b1;
end
end
endmodule
这个模块是有输出的。但是由于条件语句写错了,导致永远无法执行。也就使得output始终是恒定的初始的值。编译时会被优化为接GND或VCC,同样逻辑单元数为0。
解决方法
检查代码,特别是与顶层模块输出相关的部分,看顶层模块是否有有效的输出。
FPGA程序编译后逻辑单元数为0的更多相关文章
- c++ 程序编译后运行时的内存分配
程序编译后运行时的内存分配 太好的文章了,看到不得不转,转自:http://blog.sina.com.cn/s/blog_5420e0000101a0w1.html 一.编译时与运行时的内存情况 1 ...
- .NET混合开发解决方案15 WebView2控件集成到WinForm程序编译后的文件及结构说明
系列目录 [已更新最新开发文章,点击查看详细] WebView2控件应用详解系列博客 .NET桌面程序集成Web网页开发的十种解决方案 .NET混合开发解决方案1 WebView2简介 .NE ...
- Linux下objdump查看C程序编译后的汇编代码
http://m.blog.csdn.net/article/details?id=47747047 Uboot中start.S源码的指令级的详尽解析 http://www.crifan.com/fi ...
- VS 设置编译后的程序可以以管理员身份运行
1.首先,创建一个文件命名为 XXX.exe.manifest, 并将以下内容复制到文件 <?xml version="1.0" encoding="UTF-8&q ...
- Delphi XE2及以后的版本编译后的程序大小问题
说说Delphi XE2及以后的版本编译后的程序大小问题. 其实最终得到的程序并不大,由于编译器的变化,XE2里Debug版程序比Release版程序大很多,要减小程序体积,就使用Release版.下 ...
- 应用程序启动后修改自身EXE文件或自删除EXE文件(附VC++6.0源码)
在CSDN论坛看到这么一个问题:如何为第三方工具加上使用限制次数?问题的答案很简单,重新做一个应用程序,将第三方程序打包进这个应用程序,启动应用程序时可以检查第三方工具的使用次数,检查通过,可运行第三 ...
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”
首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用. 通常,在模块的头文件中对本模块提供给其它模块 ...
- 运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such file or directory
运行编译后的程序报错 error while loading shared libraries: lib*.so: cannot open shared object file: No such f ...
- 问题-某个程序改了ICO图标后编译后还是显示老图标?
问题现象:某个程序改了ICO图标后编译后还是显示老图标? 问题原原:可能是因为系统的缓存问题. 问题处理:把程序的EXE放在别的路径下打开就可以了. 问题相关人员:QQ253120114(朋友) Q ...
随机推荐
- P1856 [USACO5.5]矩形周长Picture[扫描线]
题目背景 墙上贴着许多形状相同的海报.照片.它们的边都是水平和垂直的.每个矩形图片可能部分或全部的覆盖了其他图片.所有矩形合并后的边长称为周长. 题目描述 编写一个程序计算周长. 如图1所示7个矩形. ...
- Centos7 Rsync怎么实现热备份笔记
应用场景:备份Web服务器相关目录下的数据文件,确保指定目录下的所有文件同步. 操作系统:Centos 7 服务器两台:web服务器 172.19.242.70 备份服务器 172.19.242.7 ...
- Java学习 从0.1开始(一)
写在前面: 之前从事过.NET,C,C++相关的开发,Java是一直没有学习的新领域.最近,应工作需要,开始学习Java相关的知识.又因为新公司并没有完整的系统架构,所以学习方向会侧重架构方向(Cod ...
- template_constructor_function
#include <iostream> using namespace std; template <class T> class MyClass{ public: templ ...
- Android Studio3.0的下载及其安装详解加eclipse下载安装配置jdk9
关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 今天我们来讲解如何下载android studio 3.0及其 ...
- 【00NOIP普及组】税收与补贴问题(信息学奥赛一本通 1911)( 洛谷 1023)
[题目描述] 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给 定的最高价位后,销量以某固定 ...
- mysql 创建联结
mysql> select * from user; +------+----------+-----------+ | id | name | address | +------+------ ...
- AT1879 2 つの山札
题面 题解 直接求解比较麻烦,考虑将问题进行转化. 设序列\(a = \{3, 1, 4, 2, 5\}, b = \{3, 2, 4, 1, 5\}\),那么我们构造一个正方形方格,将\(a\)放在 ...
- SDN上机第四次作业
1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 安装ODL后安装插件 2.3用Python脚本搭建如下拓扑,连接OpenDayLight控制器 拓扑如图: Py ...
- (未完成)catalyst-system WriteUp(2019暑假CTF第一周reverse)
目录 预备学习--Linux实践:ELF文件格式分析 一.概述 二.分析ELF文件头(ELF header) 三.通过文件头找到section header table,理解其内容 四.通过secti ...