LUT查表法乘法器所犯下错误。。。。
程序参见黑金时序篇一章实验五LUT查表法实验,不同的是LUT我用了一个ROM来实现,word depth 256,word size 16,数据用matlab生成,发现matlab确实好强大,不用操作文件,直接在查看数组的值即可将一堆所需的数据复制出来。最终将问题解决,不是大问题,但力求每次都能从中学到些什么。
各模块建立初始出现了以下错误:
1、Error: Can't synthesize current design,Top partition does not contain any logic
2、Warning: Synthesized away the following node(s):
Warning: Synthesized away the following DSP element node(s):
3、Warning: Using design file convert.v, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project
本想将错误调出来贴图上来加深印象,但试了几次都是综合成功的就不费事了。整个过程中我找出自身的错误以及所做修改如下:
1、实例化ROM,自己用向导生成的ROM生成的数据输出是14位的,顶层需要的是16位的,修改为16位宽。
2、.v文件名和其内实体名字不一样,修改文件名和实体名字一样。
3、通过Project->Add/Remove file in Project..将自己编辑的文件加载到工程,用不到的从文件列表中移除。
都是很简单的错误,但叠加到一起就出现了很诡异的警告。。
最后转载wang668的quartus常见错误分析,原文地址:http://home.eeworld.com.cn/my/space.php?uid=271163&do=blog&id=75012
1、Warning (10227): Verilog HDL Port Declaration warning at PRESS_MODELE.v(29): data type declaration for "iR" declares packed dimensions but the port declaration declaration does not.
解释:
2、Warning: PLL "DE2_TV:inst1|Sdram_Control_4Port:u6|Sdram_PLL:sdram_pll1|altpll:altpll_component|pll" output port clk[0] feeds output pin "DRAM1_CLK" via non-dedicated routing -- jitter performance depends on switching rate of other design elements. Use PLL dedicated clock outputs to ensure jitter performance
解释:PLL的输出用在了非专属的PLL_OUT
措施:设计电路板的时候最好将PLL_OUT用在相关的时钟信号上,如果没有使用,则这个警告不理会也可。
3、Warning: Using design file cpu.v, which is not specified as a design file for the current project, but contains definitions for 25 design units and 25 entities in project
解释:模块不是在本项目生成的,而是直接copy了别的项目的原理图和源程序生成的,不是用QUARTUS将文件添加进本项目
措施:无须理会,不影响使用
4、Warning (10240): Verilog HDL Always Construct warning at I2C_V_Config.v(153): inferring latch(es) for variable "LUT_DATA", which holds its previous value in one or more paths through the always construct
解释:信号被综合成了latch,锁存器的EN和数据输入端口存在一个竞争的问题
措施:将计数器从里面抽出来
5、Warning: 12 hierarchies have connectivity warnings - see the Connectivity Checks report folder
解释:实例化的时候,有一些端口没用,让没用的端口的位置空着,
措施:不用理会
6、Warning: Synthesized away the following node(s)
解释:以下节点被综合优化掉
措施:不用理会
7、Warning:Found xx output pins without output pin load capacitance assignment
解释:没有给输出管教指定负载电容
措施:该功能用于估算TCO和功耗,可以不理会,也可以在Assignment Editor中为相应的输出管脚指定负载电容,以消除警告
8、Warning: The following nodes have both tri-state and non-tri-state drivers
解释:该用三态逻辑驱动的信号,被用非三态逻辑驱动了
措施:在子信息中定位到警告所在,改用三态逻辑驱动
9、Warning: Latch DE2_TV:inst1|I2C_V_Config:I2C_AV_Config|LUT_DATA[8] has unsafe behavior
Warning: Ports D and ENA on the latch are fed by the same signal DE2_TV:inst1|I2C_V_Config:I2C_AV_Config|LUT_INDEX[4]
解释:产生了latch
措施:用时序代替组合电路,或者是用完备的if/else,和case语句
10、Warning: TRI or OPNDRN buffers permanently enabled
解释:输出要加三态控制
11、Warning: Output pins are stuck at VCC or GND
解释:这几个输出管脚直接接地了
措施:如果这符合你的设计要求这种警告可以不管
12、Warning (15400): WYSIWYG primitive "DE2_TV:inst1|Sdram_Control_4Port:u6|Sdram_WR_FIFO:write_fifo2|dcfifo:dcfifo_component|dcfifo_21m1:auto_generated|altsyncram_1l81:fifo_ram|altsyncram_drg1:altsyncram5|ram_block6a15" has a port clk1 that is stuck at GND
解释:这里是采用的SDRAM的读写方式为1入2出的模式,将fifo2的输入信号给接GND了
措施:不用理会。
另外:如果出现跟RAM相关的WYSIWYG primitive错误或者是警告,则是RAM的输入端信号不通导致。
13、Warning: Design contains 2 input pin(s) that do not drive logic
解释:有2个输入没有驱动任何逻辑,也就是说,只定义了2个输入管脚,但在逻辑中并没有使用这2个输入信号
措施:将这2个输入管脚的定义去掉即可
14、Warning: At least one of the filters had some problems and could not be matched.
解释:
措施:
15、Warning: Node: XXX was determined to be a clock but was found without an associated clock assignment.
解释及措施:
(1). 这个信号是不是你期望的时钟信号?还是被综合器误将普通信号综合成了时钟信号?有没有在代码中用过这个信号的上升沿/下降沿?
(2). 如果是期望的时钟信号,那么是否有可能调整管脚位置约束到专用时钟管脚?如果不行的话,这条时钟线上的延时会比较大。但是整个布局布线还是可以进行下去的。
16、Warning: PLL "DE2_TV:inst1|Sdram_Control_4Port:u6|Sdram_PLL:sdram_pll1|altpll:altpll_component|pll" is in normal or source synchronous mode with output clock "compensate_clock" set to clk[0] that is not fully compensated because it feeds an output pin -- only PLLs in zero delay buffer mode can fully compensate output pins
解释:
措施:
17、Warning: PLL "DE2_TV:inst1|Sdram_Control_4Port:u6|Sdram_PLL:sdram_pll1|altpll:altpll_component|pll" output port clk[0] feeds output pin "DRAM1_CLK" via non-dedicated routing -- jitter performance depends on switching rate of other design elements. Use PLL dedicated clock outputs to ensure jitter performance
解释:这是说没有使用FPGA专用的PLL输出引脚
措施:同2
18、Warning: Ignored locations or region assignments to the following nodes
Warning: Node "FIELD" is assigned to location or region, but does not exist in design
解释:有些引脚做了分配,但是在设计中没有使用
措施:可以不用理会
19:Warning: Following 1 pins have no output enable or a GND or VCC output enable - later changes to this
connectivity maychange fitting results
解释:下面有1个管脚没有输出使能,或者仅仅是GND,VCC使能
措施:给其配置一个使能即可
20、Warning: Following 4 pins have nothing, GND, or VCC driving datain port -- changes to this connectivity may
change fitting results
解释:同11
措施:同11
21、Warning: The Reserve All Unused Pins setting has not been specified, and will default to 'As output driving
ground'.
解释:所有没有用到的管脚都直接接GND
措施:可以不用理会,也可以在 Assignments 里做修改
转载于:https://www.cnblogs.com/fkl523/p/3407847.html
LUT查表法乘法器所犯下错误。。。。相关推荐
- FPGA之道(63)“万能”的查表法
文章目录 前言 "万能"的查表法 正弦波发生器示例 前言 又好几天没更新了,这就是又停止了读书的节奏,终于在毕业论文可以稍微舒缓下来的时候更新了博客,完成一个系列,读完一本书等等都 ...
- 数组---进制转换(查表法)
package com.shuzu; public class shuzuJinZhiZhuanHuan { * @param a 所要转换的十进制数,b 不同进制所要与(&)的数不同,wei ...
- 查表法实现反正切_关于python实现CRC32的应用和总结
关于python实现CRC32的应用和总结 目前使用的Crc计算包含Crc32和Crc32mpeg2两种计算方式. 循环冗余检验 CRC 差错检测技术能够证明数据是完整的,是无差错的(只是非常近似的认 ...
- 空间换时间,查表法的经典例子
前言 上一篇分享了:C语言精华知识:表驱动法编程实践 这一篇再分享一个查表法经典的例子. 我们怎么衡量一个函数/代码块/算法的优劣呢?这需要从多个角度看待.本篇笔记我们先不考虑代码可读性.规范性.可移 ...
- 常用crc查表法_请教查表法计算CRC的原理
自己写过的, 希望对你有帮助 Cyclic Redundancy Check(CRC) 原理及实现 /// 1: 需求 在数据传送过程中,为了能够进行错误检测, 往往在数据后追加一些检测码, 当接受方 ...
- CRC查表法——表的由来及Java实现CRC8校验算法
转载请标明出处: http://blog.csdn.net/xx326664162/article/details/51718857 文章出自:薛瑄的博客 你也可以查看我的其他同类文章,也会让你有一定 ...
- 步进电机S(SigMoid)曲线加减速【查表法】
首先感谢以下博客的博主提供的参考公式:https://blog.csdn.net/pengzhihui2012/article/details/52228822?locationNum=6 首先在本设 ...
- CRC校验查表法原理及实现(CRC-16)
绪论 在网上浏览了很多关于CRC校验的文章,基本上都是针对CRC校验原理的阐述以及关于CRC校验查表法的实际应用以及具体软件实现方法. 至于查的表是怎么来的,软件为什么要这样实现很多文章并没有说明.本 ...
- CRC查表法运算原理
CRC校验是依据多项式模2运算进行的,这里有两点: 1. 一个二进制串总可以表示为多项式,例如: 10101 表示为 10111 表示为 ,依次类推更长数据的表示方法. 2. 模2运算的基本规则如下 ...
最新文章
- python3里的pillow怎么安装_“python安装pillow教程“python3.4怎么安装pil
- Django学习记录-1
- 浏览器更改实现webstrom等前端编辑器的同步更新
- mysql语句性能开销检测profiling详解
- java.equal例子_Java中的== 和equals()方法详解与实例
- 12届毕业生回顾我的2012年,给2013届同学一点启迪
- 连续数字及数字串识别技术
- BZOJ_2243 [SDOI2011]染色 【树链剖分+线段树】
- 排序 不用order by_Sort Techniques:介绍九种排序算法
- React使用详解(学习笔记)
- 突发奇想!自动化测试在测试过程中该怎样提升效率?
- 苹果本的vscode菜单栏不见了,怎么回事
- 8月英语——知耻而后勇
- 让WiFi变“4G”?Hotspot2.0来了
- 2021年中级消防设施操作员(操作与维护),模拟真题及答案
- 「普通人VS程序员」电脑还可以这样关机,神操作 建议阅读
- 基于百度paddlehub多种海洋鱼类的智能分类识别
- Kali linux修改源文件
- 行业认证标准:如何达到DISA ASD STIG规范进行软件开发
- 绘制思维导图的技巧与绘制方法