Quartus 2 使用错误集锦
- 格式:doc
- 大小:29.00 KB
- 文档页数:3
1.Found clock-sensitive change during active clock edge at time<time> on register "<name>"原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后果为导致结果不正确。
措施:编辑vector source file2.Verilog HDL assignment warning at <location>: truncated value with size <number> to match size of target (<number>原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,将位数裁定到合适的大小措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数3.All reachable assignments to data_out(10) assign '0', register removed by optimization原因:经过综合器优化后,输出端口已经不起作用了4.Following 9 pins have nothing, GND, or VCC driving datain port -- changes to this connectivity may change fitting results原因:第9脚,空或接地或接上了电源措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。
如果你的设计中这些端口就是这样用的,那便可以不理会这些warning5.Found pins functioning as undefined clocks and/or memory enables 原因:是你作为时钟的PIN没有约束信息。
Quartus II常见问题集锦1、【问题】Pin Planner 的使用问题:在QuartusII 7.2 ,时序仿真都通过,但是,一旦使用Pin Planner设定引脚后,时序仿真就发生变化,与功能仿真结果不一致,不是理想的结果。
使用Pin Planner时要注意些什么问题呢?【解答】如果在没有设定引脚时就进行时序仿真,那么在后仿真就会不准确。
因为当设定引脚以后,需要重新进行布局布线,这和没有设定引脚是不同的,因此,布线的改变自然会影响到时序的改变。
通常的做法是:先做好所有的设定,生成网表文件和延时文件,再加上激励文件进行仿真,这个时候的仿真结果是最接近实际情况的。
通常的pin设定没有特定要求,差分信号是成对的。
所以请不要搞错。
时钟信号尽量使用专用的时钟引脚;普通I/O没有什么限制,做好时序约束就可以了。
2、【问题】怎样配置cyclone FPGA的管脚功能?【解答】FPGA芯片的引脚分为好多类,有通用IO,有时钟网络,有复位网络,这些引脚的具体功能是在布线时由用户选择的。
你可以自由的配置这些引脚的功能,但最好根据芯片的数据手册进行选择,如将时钟配置到专用时钟引脚上,将复位配置到专用复位引脚上,否则会影响最终的布线结果。
3、【问题】分配fpga管脚时该怎么选择,引脚有什么属性需要考虑,quartus2中引脚有几个属性:Reserved,Group,I/O Bank,Vref Group,I/O standard( 3.3-V LVTTL(default) )分别是什么意思,要怎么设置?【解答】首先说IO standard:这个是用于支持对应不同的电平标准。
FPGA IO 口的电压由IO bank上的VCC引入。
一个bank上引入3.3V TTL电平,那么此时整个bank上输出3.3V的TTL电平。
设置这个第一是为了和current strength 一起计算功率。
第二个是用于在IO口上加载正确的上拉/下拉电阻。
FPGA/CPLD在Quartus II中报错集锦1) QuartusII对代码进行时序仿真时出现Error: Can't continue timing simulation because delay annotation information for design is missing.原因:如果只需要进行功能仿真,不全编译也是可以进行下去的,但时序仿真就必须进行全编译(即工具栏上的紫色实心三角符号那项)。
全仿真包括四个模块:综合器(Synthesis)、电路装配器(Fitter)、组装器(Assember)和时序分析器(Timing Analyzer),任务窗格中会有成功标志(对号)。
2) 在下载运行的时候,出现下面的错误:Warning: The JTAG cable you are using is not supported for Nios II systems. You may experience intermittent JTAG communicationfailures with this cable. Please use a USB Blaster revision B.在运行之前已经将.sof文件下载到开发板上面了,但是依然出现上面的问题。
解决:在配置的时候,在run之后,进行配置,选择target connection,在最后一项:NIOS II Terminal Communication Device中,要选择none(不要是Jtag_uart)如果采用USB Blaster,可以选择Jtag_uart。
之后再run就ok了!3)Error: Can't compile duplicate declarations of entity "count3" into library "work"此错误一般是原理图文件的名字和图中一个器件的名字重复所致,所以更改原理图文件的名字保存即可。
在QuartusII下进行编译和仿真的时候,会出现一堆warning,有的可以忽略,有的却需要注意,虽然按F1可以了解关于该警告的帮助,但有时候帮助解释的仍然不清楚,大家群策群力,把自己知道和了解的一些关于警告的问题都说出来讨论一下,免得后来的人走弯路.下面是我收集整理的一些,有些是自己的经验,有些是网友的,希望能给大家一点帮助,如有不对的地方,请指正,如果觉得好,请版主给点威望吧,谢谢1.Found clock-sensitive change during active clock edge at time <time> on register "<name>"原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后果为导致结果不正确。
措施:编辑vector source file2.Verilog HDL assignment warning at <location>: truncated value with size <number> to match size of target (<number>原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,将位数裁定到合适的大小措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数3.All reachable assignments to data_out(10) assign '0', register removed by optimization原因:经过综合器优化后,输出端口已经不起作用了4.Following 9 pins have nothing, GND, or VCC driving datain port -- changes to this connectivity may change fitting results原因:第9脚,空或接地或接上了电源措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。
在QuartusII下进行编译和仿真的时候,会出现一堆warning,有的可以忽略,有的却需要注意,虽然按F1可以了解关于该警告的帮助,但有时候帮助解释的仍然不清楚,大家群策群力,把自己知道和了解的一些关于警告的问题都说出来讨论一下,免得后来的人走弯路.下面是我收集整理的一些,有些是自己的经验,有些是网友的,希望能给大家一点帮助,如有不对的地方,请指正,如果觉得好,请版主给点威望吧,谢谢1.Found clock-sensitive change during active clock edge at time <time> on register "<name>"原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后果为导致结果不正确。
措施:编辑vector source file2.Verilog HDL assignment warning at <location>: truncated value with size <number> to match size of target (<number>原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,将位数裁定到合适的大小措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数3.All reachable assignments to data_out(10) assign '0', register removed by optimization原因:经过综合器优化后,输出端口已经不起作用了4.Following 9 pins have nothing, GND, or VCC driving datain port -- changes to this connectivity may change fitting results原因:第9脚,空或接地或接上了电源措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。
一、Quartus中仿真时出现no simulation input file assignment specify 解决方法(转载)今天使用quartusII做了一下功能仿真,但是文件出现了问题 Error: Run Generate Functional Simulation Netlist (。
) to generate functional simulation netlist for top level entity bmg_control before running the Simulator (quartus_sim)在网上查了一下又解决的方法,在此转载此文长:翻译成中文就是仿真文件没有被指定,要仿真的话先要建一个仿真文件:file -> new -> 选择Other file选项卡 -> Vector Waveform File然后把输入输出端口加进去,再设置输入的信号,保存,就可以仿真了。
如果你之前已经建立过了,就打开assignments->settings->simulator settings看里面的有个文本框 simulation input 里面是否为空,为空的话就要找到你所建立的Vector Waveform File 文件,是以*.VMF结尾的,如果没找到,你又以为你建立了Vector Waveform File ,很可能粗心的你还没保存Vector Waveform File ,保存了才会在project里面找到。
找到之后进行仿真,如果是functional simulation,要做processing>generate functional simulation netlist..不然会出现Error: Run Generate Functional Simulation Netlist (quartus_map bmg_control--generate_functional_sim_netlist) to generate functional simulation netlist for top level entity bmg_control before running the Simulator (quartus_sim)之类的错误。
一、Quartus中仿真时出现no simulation input file assignment specify 解决方法(转载)今天使用quartusII做了一下功能仿真,但是文件出现了问题 Error: Run Generate Functional Simulation Netlist (。
) to generate functional simulation netlist for top level entity bmg_control before running the Simulator (quartus_sim)在网上查了一下又解决的方法,在此转载此文长:翻译成中文就是仿真文件没有被指定,要仿真的话先要建一个仿真文件:file -> new -> 选择Other file选项卡 -> Vector Waveform File然后把输入输出端口加进去,再设置输入的信号,保存,就可以仿真了。
如果你之前已经建立过了,就打开assignments->settings->simulator settings看里面的有个文本框 simulation input 里面是否为空,为空的话就要找到你所建立的Vector Waveform File 文件,是以*.VMF结尾的,如果没找到,你又以为你建立了Vector Waveform File ,很可能粗心的你还没保存Vector Waveform File ,保存了才会在project里面找到。
找到之后进行仿真,如果是functional simulation,要做processing>generate functional simulation netlist..不然会出现Error: Run Generate Functional Simulation Netlist (quartus_map bmg_control--generate_functional_sim_netlist) to generate functional simulation netlist for top level entity bmg_control before running the Simulator (quartus_sim)之类的错误。
在Quartus II下进行编译和仿真的时候,会出现一堆warning,有的可以忽略,有的却需要注意,虽然按F1可以了解关于该警告的帮助,但有时候帮助解释的仍然不清楚,大家群策群力,把自己知道和了解的一些关于警告的问题都说出来讨论一下,免得后来的人走弯路.下面是我收集整理的一些,有些是自己的经验,有些是网友的,希望能给大家一点帮助,如有不对的地方,请指正,如果觉得好,请版主给点威望吧,谢谢1.Found clock-sensitive change during active clock edge at time <time> on register "<name>"原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后果为导致结果不正确。
措施:编辑vector source file2.Verilog HDL assignment warning at <location>: truncated value with size <number> to match size of target (<number>原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,将位数裁定到合适的大小措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数3.All reachable assignments to data_out(10) assign '0', register removed by optimization原因:经过综合器优化后,输出端口已经不起作用了4.Following 9 pins have nothing, GND, or VCC driving datain port -- changes to this connectivity may change fitting results原因:第9脚,空或接地或接上了电源措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。
Quartus 2 使用错误集锦4月24日更新....1.Error: Top-level design entity "test" is undefined原因:顶层模块的module名没有和工程名同名解决方法:把顶层模块的module名改成和工程名同名2.Error (10278): Verilog HDL Port Declaration error at test.v(4): input port "clk_in" cannot be declared with type "reg"原因:输入变量不能定义成reg型,必须是wire型,我们做的一个芯片的输入引脚需要是实时采集输入数据的,所以必须是wire(导线),不能是寄存器型解决方法:把输入信号定义成线型wire3.Error (10137): Verilog HDL Procedural Assignment error at test.v(12): object "led" on left-hand side of assignment must have a variable data type原因:数据类型定义错误或者赋值类型错误解决方法:在always 过程块中被赋值的变量必须是reg (寄存器型),用assign 连续赋值的对象必须定义成wire(线型)4.Error: Can't place multiple pins assigned to pin location Pin_108 (IOC_X34_Y2_N0)原因:PIN_108是一个多功能管脚,还有一个功能是nCEO,也是默认的功能。
如果要用它当普通IO,需要提前设置一下解决方法:assignments>device>device and pin options>dual-purpose pins里面把nCEO 设置成use as regular i/o就可以了5.Error (10028): Can't resolve multiple constant drivers for net "key_flag" at clock.v(33)原因:一个变量不能同时被在两个always 过程块中被赋值解决方法:在两个always过程块中用两个不同的变量名,可以在module最后用assign 把变量的值作最后的统一,但是注意wire型和reg型的变量类型定义6.Warning (10230): Verilog HDL assignment warning at SMG_1S.v(21): truncated value with size 32 to match size of target (8)原因:赋值语句的等号两端数据的位宽不一致。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1编译常见错误和警告~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~2在QuartusII 下进行编译和仿真的时候,会出现一堆warning ,有的可以忽略,有的却需要注意。
虽然按F1可以了解关于该警告的帮助,但有时候帮助解释的仍然不清楚,大家群策群力,把自己知道和了解的一些关于警告的问题都说出来讨论一下,免得后来的人走弯路。
1.Found clock-sensitive change during active clock edge at time <time>on register "<name>"原因:vector source file 中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后果为导致结果不正确。
措施:编辑vector source file2.Verilog HDL assignment warning at <location>:truncated value with size <number>to match size of target (<number>原因:在HDL 设计中对目标的位数进行了设定,如:reg[4:0]a ,而默认为32位,将位数裁定到合适的大小。
措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数。
3.All reachable assignments to data_out(10)assign '0',register removed by optimization 原因:经过综合器优化后,输出端口已经不起作用了。
4.Following 9pins have nothing,GND,or VCC driving datain port --changes to thisconnectivity may change fitting results results..原因:第9脚,空或接地或接上了电源措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。
设计中从硬件到软件,不断有新的问题出现,先将出现的典型问题罗列如下。
1.Maxplus2功能问题:Maxplus 2对用于数组描述的RAM及ROM在编译过程中会出错,有可能是M axplus 2在语法支持上不太全面。
该用Quarters II运行或用元件例化的方法解决。
例如:subtype word is std_logic_vector(k-1 downto 0);type memory is array(0 to 2**w-1)of word;解决:在Quartus П上运行通过。
2. 进行仿真实验时,结束时间设为100us时出现的问题:解决:不改动原状态的时间设置。
3.管脚编辑出现的问题:原因是自己改变了原来的管脚编号4.毛刺信号的产生信号在FPGA 器件内部通过连线和逻辑单元时,都有一定的延时。
延时的大小与连线的长短和逻辑单元的数目有关。
同时还受器件的制作工艺、工作电压、温度等条件的影响。
信号的高低电平转换也许要一定的过渡时间。
由于以上因素的影响,多路信号的电平变化时,在信号变化的瞬间,组合逻辑的输出状态不确定,往往会出现一些不正确的尖峰信号。
这些尖峰信号被称为“毛刺”。
许多逻辑电路产生的小的寄生信号,也能成为毛刺信号。
这些无法预见的毛刺信号可通过设计来传播并产生不需要的时钟脉冲。
应该明确的是,任何组合电路都可能是潜在的毛刺信号发生器,而时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错。
5. 基本VHDL编程语法错误:①丢失关键字、符号及端口设置。
②前后不能呼应,丢失结尾等,如if对应end if。
③实体与保存名不一致,调用名与实际名不一致,前后应用名不一致。
④从其它机器或U盘转换到另台机器时,由于版本不一致,致使字符及符号出错。
⑤要求的数据位数与程序中数据位数不一致而出错⑥多个源冲突。
⑦设置端口、信号及变量数据类型出错。
⑧调用的文件必须与主文件在同一个文件包内。
FPGA常见的错误Quartus II常见错误1.Found clock-sensitive change during active clock edge at time <time> on register "<name>"原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后果为导致结果不正确。
措施:编辑vector source file2.Verilog HDL assignment warning at <location>: truncated with size <number> to match size of target (<number>原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,将位数裁定到合适的大小措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数3.All reachable assignments to data_out(10) assign '0', register removed by optimization原因:经过综合器优化后,输出端口已经不起作用了4.Following 9 pins have nothing, GND, or VCC driving datain port -- changes to this connectivity may change fitting results原因:第9脚,空或接地或接上了电源措施:有时候定义了输出端口,但输出端直接赋…0‟,便会被接地,赋…1‟接电源。
如果你的设计中这些端口就是这样用的,那便可以不理会这些warning5.Found pins ing as undefined clocks and/or memory enables原因:是你作为时钟的PIN没有约束信息。
Quartus 2 使用错误集锦
分类:嵌入式
1.Error: Top-level design entity "test" is undefined
原因:顶层模块的module名没有和工程名同名
解决方法:把顶层模块的 module名改成和工程名同名
2.Error (10278): Verilog HDL Port Declaration error at test.v(4): input port "clk_in" cannot be declared with type "reg"
原因:输入变量不能定义成reg型,必须是wire型,我们做的一个芯片的输入引脚需要是实时采集输入数据的,所以必须是wire(导线),不能是寄存器型解决方法:把输入信号定义成线型 wire
3.Error (10137): Verilog HDL Procedural Assignment error at test.v(12): object "led" on left-hand side of assignment must have a variable data type
原因:数据类型定义错误或者赋值类型错误
解决方法:在always 过程块中被赋值的变量必须是 reg (寄存器型),用assign 连续赋值的对象必须定义成 wire(线型)
4.Error: Can't place multiple pins assigned to pin location Pin_108 (IOC_X34_Y2_N0)
原因: PIN_108是一个多功能管脚,还有一个功能是nCEO,也是默认的功能。
如果要用它当普通IO,需要提前设置一下
解决方法:assignments>device>device and pin options>dual-purpose pins 里面把nCEO设置成use as regular i/o就可以了
5.Error (10028): Can't resolve multiple constant drivers for net "key_flag" at clock.v(33)
原因:一个变量不能同时被在两个 always 过程块中被赋值
解决方法:在两个always过程块中用两个不同的变量名,可以在module最后用assign 把变量的值作最后的统一,但是注意wire型和reg型的变量类型定义6.Warning (10230): Verilog HDL assignment warning at SMG_1S.v(21): truncated value with size 32 to match size of target (8)
原因:赋值语句的等号两端数据的位宽不一致。
例如:sec <= sec + 1; sec 定义是8位的寄存器型,而表达式中的“1”,默认为32位的十进制数,等式右边是32位数据,等式左边是8位变量,所以赋值时会有警告。
解决方法:把 "sec <= sec + 1; " 规范化,改写成" sec <= sec + 1'd 1 " 。
7.Warning: Found 8 output pins without output pin load capacitance assignment
原因:负载电容警告。
load capacitance和IO输出结构有关的设置,用来控制波形的上升下降沿的控制,用于阻抗匹配防止产生过冲.低速电路一般不需要考虑。
解决方法:Assignments --> Assignment Editor 中的Assignment Name 栏中进行设置。
一般可以忽略此警告...
8.Error (10818): Can't infer register for "dis_data[0]" at key_down.v(56) because it does not hold its value outside the clock edge
原因:赋值语句的逻辑混乱,由于条件判断语句采用了非阻塞赋值,容易产生逻辑混乱。
解决方法:将非阻塞赋值“<=”改成阻塞赋值“=”,并不是任何情况下都是用非阻塞赋值好,阻塞和非阻塞适用于不同环境,根据环境要求选择赋值方式
9.Error (10200): Verilog HDL Conditional Statement error at shumaguan.v(23): cannot match operand(s) in the condition to the corresponding edges in the enclosing event control of the always construct
原因:条件判断语句逻辑不匹配。
always @ ()括号内的敏感信号,与begin end 块中的判断语句逻辑不匹配。
例如always @ (negedge xxx)
begin
if(xxx)
....
end
敏感信号列表中判断的是xxx的下降沿,但是if语句判断的xxx是否为“1”,这样if语句将永远不可能执行,不符逻辑
解决方法:注意always @ 括号内的敏感信号列表,到底是上升沿还是下降沿,还是两个都要,根据不同场合选择合适的敏感信号
10.不能生成 .sof 文件,pof文件,无法下载程序到开发板
原因:licence没破解完全
解决方法:重新破解quartus2 或者采用其他方式获得完全版的 license。