Quartus常见错误
quartus ii 常见的19个错误、28个警告
(一) Q uartus警告解析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> tomatch size of target (<number>原因:在HDL设计中对目标的位数进行了设定,如:reg[4:0] a;而默认为32位,将位数裁定到合适的大小措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数3.All reachable assignments to data_out(10) assign '0', register removed byoptimization原因:经过综合器优化后,输出端口已经不起作用了4.Following 9 pins have nothing, GND, or VCC driving datain port -changes to thisconnectivity may change fitting results原因:第9脚,空或接地或接上了电源措施:有时候定义了输出端口,但输出端直接赋‘0’,便会被接地,赋‘1’接电源。
如果你的设计中这些端口就是这样用的,那便可以不理会这些warning5.Found pins functioning as undefined clocks and/or memory enables原因:是你作为时钟的PIN没有约束信息。
quartus ii 常见的19个错误28个警告
(一) Q uartus警告解析(二)(三) 1.Found clock-sensitive change during active clock edge at time<time> on register"<name>"(四) 原因:vector source file中时钟敏感信号(如:数据,允许端,清零,同步加载等)在时钟的边缘同时变化。
而时钟敏感信号是不能在时钟边沿变化的。
其后果为导致结果不正确。
(五) 措施:编辑vector source file(六)(七) 2.Verilog HDL assignment warning at <location>: truncated with size <number> tomatch 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’接电源。
学习verilog DHL问题笔记——Quartus常见错误
学习verilog DHL问题笔记——Quartus常见错误我初学verilog语言,很多细节都没注意,按着自己的思想就写了,编译的时候才发现各种问题。
这些都是我在学习中遇到的问题,还是很常见的。
1.Error (10028): Can't resolve multiple constant drivers for net ……解析:不能在两个以上always内对同一变量赋值,这个细节一般看书看资料会看到,但是编程时,就是没想到。
2.Error (10158): Verilog HDL Module Declaration error at clkseg.v(1): port "XXXX" is not declared as port解析:大意了,端口类型还没定义啊!3.Error (10110): variable "en" has mixed blocking and nonblocking Procedural Assignments -- must be all blocking or all nonblocking assignments解析:en在程序中有时用非阻塞赋值,有时用阻塞赋值,这是禁止的。
在初学的时候,可能分得不是很清楚,所以在检查时,一定要一步步观察慢慢来。
4.Error (10161): Verilog HDL error at clkseg.v(36): object "count" is not declared解析:这个错误应该很明显啦,只要能读得懂。
5.Error (10170): Verilog HDL syntax error at clkseg.v(37) near text "***"; expecting ";"解析:意思应该也很简单,就是检查的时候要细心点。
Quartus常见错误警告分析
Quartus常见错误警告分析Quartus常见错误分析ErrorWarning: VHDL Process Statement warning at random.vhd(18): signal reset is in statement, but is not in sensitivity list----没把singal放到process()中2 Warning: Found pins ing as undefined clocks and/or memory enablesInfo: Assuming node CLK is an undefined clock-=-----可能是说设计中产生的触发器没有使能端3 Error: VHDL Interface Declaration error in clk_gen.vhd(29): interface object "clk_scan" of mode outcannot be read. Change object mode to buffer or inout.------信号类型设置不对,out当作buffer来定义4 Error: Node instance "clk_gen1" instantiates undefined entity "clk_gen"-------引用的例化元件未定义实体--entity "clk_gen"5 Warning: Found 2 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s)analyzed as buffer(s) resulting in clock skewInfo: Detected ripple clock "clk_gen:clk_gen1|clk_incr" as bufferInfo: Detected ripple clock "clk_gen:clk_gen1|clk_scan" as buffer6 Warning: VHDL Process Statement warning at ledmux.vhd(15): signal or variable "dataout" may not be assigned a new in every possible path through the Process Statement. Signal or variable "dataout" holdsits previous in every path with no new assignment, whichmay create a combinational loop in the currentdesign.7 Warning: VHDL Process Statement warning at divider_10.vhd(17): signal "cnt" is read inside the Process Statement but isn't in the Process Statement's sensivitity list -----缺少敏感信号8 Warning: No clock transition on "counter_bcd7:counter_counter_clk|q_sig[3]" register9 Warning: Reduced register "counter_bcd7:counter_counter_clk|q_sig[3]" with stuck clock port to stuckGND10 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "class[1]" withclock skew larger than data delay. See Compilation Report for details.11 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "sign" withclock skew larger than data delay. See Compilation Report for details.12 Error: VHDL error at counter_clk.vhd(90): actual port "class" of mode "in" cannot be associated withformal port "class" of mode "out"------两者不能连接起来13 Warning: Ignored node in vector source file. Can't find corresponding node name"class_sig[2]" indesign.------没有编写testbench文件,或者没有编辑输入变量的值testbench里是元件申明和映射14 Error: VHDL Binding Indication error at freqdetect_top.vhd(19): port "class" in design entity does not have std_logic_vector type that is specified for the same generic in the associated component ---在相关的元件里没有当前文件所定义的类型15 Error: VHDL error at tongbu.vhd(16): can't infer register for signal "gate" because signal does nothold its outside clock edge16 Warning: Found clock high time violation at 1000.0 ns on register"|fcounter|lpm_counter:temp_rtl_0|dffs[4]"17 Warning: Compiler packed, optimized or synthesized away node "temp[19]". Ignored vector source filenode.---"temp[19]"被优化掉了18 Warning: Reduced register "gate~reg0" with stuck data_in port to stuck GND19 Warning: Design contains 2 input pin(s) that do not drive logicWarning: No output dependent on input pin "clk"Warning: No output dependent on input pin "sign"------输出信号与输入信号无关,20 Warning: Found clock high time violation at 16625.0 ns on register "|impulcomp|gate1"21 Error: VHDL error at impulcomp.vhd(19): can't implement clock enable condition specified using binaryoperator "or"22 Error: VHDL Association List error at period_counter.vhd(38): actual parameter assigned to formal parameter "alarm", but formal parameter is not declared-------连接表错误,形参"alarm"赋值给实参,形参没定义,可能是形参与实参的位置颠倒了,规定形参在实参之前。
QuartusII常犯错误
设计中从硬件到软件,不断有新的问题出现,先将出现的典型问题罗列如下。
1.Maxplus2功能问题:Maxplus2对用于数组描述的RAM及ROM在编译过程中会出错,有可能是M axplus2在语法支持上不太全面。
该用Quarters II运行或用元件例化的方法解决。
例如:subtype word is std_logic_vector(k-1downto0);type memory is array(0to2**w-1)of word;解决:在QuartusП上运行通过。
2.进行仿真实验时,结束时间设为100us时出现的问题:解决:不改动原状态的时间设置。
3.管脚编辑出现的问题:原因是自己改变了原来的管脚编号4.毛刺信号的产生信号在FPGA器件内部通过连线和逻辑单元时,都有一定的延时。
延时的大小与连线的长短和逻辑单元的数目有关。
同时还受器件的制作工艺、工作电压、温度等条件的影响。
信号的高低电平转换也许要一定的过渡时间。
由于以上因素的影响,多路信号的电平变化时,在信号变化的瞬间,组合逻辑的输出状态不确定,往往会出现一些不正确的尖峰信号。
这些尖峰信号被称为“毛刺”。
许多逻辑电路产生的小的寄生信号,也能成为毛刺信号。
这些无法预见的毛刺信号可通过设计来传播并产生不需要的时钟脉冲。
应该明确的是,任何组合电路都可能是潜在的毛刺信号发生器,而时钟端口、清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错。
5.基本VHDL编程语法错误:①丢失关键字、符号及端口设置。
②前后不能呼应,丢失结尾等,如if对应end if。
③实体与保存名不一致,调用名与实际名不一致,前后应用名不一致。
④从其它机器或U盘转换到另台机器时,由于版本不一致,致使字符及符号出错。
⑤要求的数据位数与程序中数据位数不一致而出错⑥多个源冲突。
⑦设置端口、信号及变量数据类型出错。
⑧调用的文件必须与主文件在同一个文件包内。
⑨对一些运算及运行转换,必须加载库use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;use ieee.numeric_std.all;6.architecture struc of multi16isbeginprocessbeginif(clock'event and clock='1')thenresult<=dataa*datab;end if;end process;end struc;解决:加敏感量。
QuartusII常见错误
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常见错误分析 Error
Quartus常见错误分析ErrorWarning: VHDL Process Statement warning at random.vhd(18): signal reset is in statement, but is not insensitivity list----没把singal放到process()中2 Warning: Found pins ing as undefined clocks and/or memory enablesInfo: Assuming node CLK is an undefined clock-=-----可能是说设计中产生的触发器没有使能端3 Error:VHDL Interface Declaration error in clk_gen.vhd(29): interface object "clk_scan" of mode outcannot be read. Change object mode to buffer or inout.------信号类型设置不对,out当作buffer来定义4 Error:Node instance "clk_gen1" instantiates undefined entity "clk_gen"-------引用的例化元件未定义实体--entity "clk_gen"5 Warning: Found 2 node(s) in clock paths which may be acting as ripple and/or gated cl ocks -- node(s)analyzed as buffer(s) resulting in clock skewInfo: Detected ripple clock "clk_gen:clk_gen1|clk_incr" as bufferInfo: Detected ripple clock "clk_gen:clk_gen1|clk_scan" as buffer6 Warning: VHDL Process Statement warning at ledmux.vhd(15): signal or variable "datao ut" may not beassigned a new in every possible path through the Process Statement. Signal or variable " dataout" holdsits previous in every path with no new assignment, which may create a combinational loo p in the currentdesign.7 Warning: VHDL Process Statement warning at divider_10.vhd(17): signal "cnt" is read i nside the ProcessStatement but isn't in the Process Statement's sensivitity list-----缺少敏感信号8 Warning: No clock transition on "counter_bcd7:counter_counter_clk|q_sig[3]" register9 Warning: Reduced register "counter_bcd7:counter_counter_clk|q_sig[3]" with stuck clock port to stuckGND10 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "class[1]" withclock skew larger than data delay. See Compilation Report for details.11 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "sign" withclock skew larger than data delay. See Compilation Report for details.12 Error:VHDL error at counter_clk.vhd(90): actual port "class" of mode "in" cannot be associated withformal port "class" of mode "out"------两者不能连接起来13 Warning: Ignored node in vector source file. Can't find corresponding node name "clas s_sig[2]" indesign.------没有编写testbench文件,或者没有编辑输入变量的值 testbench里是元件申明和映射14 Error:VHDL Binding Indication error at freqdetect_top.vhd(19): port "class"in design entity doesnot have std_logic_vector type that is specified for the same generic in the associated com ponent---在相关的元件里没有当前文件所定义的类型15 Error:VHDL error at tongbu.vhd(16): can't infer register for signal "gate" because sign al does nothold its outside clock edge16 Warning: Found clock high time violation at 1000.0 ns on register"|fcounter|lpm_counter:temp_rtl_0|dffs[4]"17 Warning: Compiler packed, optimized or synthesized away node "temp[19]". Ignored ve ctor source filenode.---"temp[19]"被优化掉了18 Warning: Reduced register "gate~reg0" with stuck data_in port to stuck GND19 Warning: Design contains 2 input pin(s) that do not drive logicWarning: No output dependent on input pin "clk"Warning: No output dependent on input pin "sign"------输出信号与输入信号无关,20 Warning: Found clock high time violation at 16625.0 ns on register "|impulcomp|gate1"21 Error:VHDL error at impulcomp.vhd(19): can't implement clock enable condition speci fied using binaryoperator "or"22 Error:VHDL Association List error at period_counter.vhd(38): actual parameter assigned to formalparameter "alarm", but formal parameter is not declared-------连接表错误,形参"alarm"赋值给实参,形参没定义,可能是形参与实参的位置颠倒了,规定形参在实参之前。
Quartus常见警告和错误
Quartus常见警告和错误【转】2009-08-07 14:00Quartus常见警告和错误1 Warning: VHDL Process Statement warning at random.vhd(18): signal reset is in statement, but is not in sensitivity list----没把singal放到process()中2 Warning: Found pins ing as undefined clocks and/or memory enables Info: Assuming node CLK is an undefined clock-=-----可能是说设计中产生的触发器没有使能端3 Error: VHDL Interface Declaration error in clk_gen.vhd(29): interface object "clk_scan" of mode out cannot be read. Change object mode to buffer or inout.------信号类型设置不对,out当作buffer来定义4 Error: Node instance "clk_gen1" instantiates undefined entity "clk_gen" -------引用的例化元件未定义实体--entity "clk_gen"5 Warning: Found 2 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in clock skewInfo: Detected ripple clock "clk_gen:clk_gen1|clk_incr" as buffer Info: Detected ripple clock "clk_gen:clk_gen1|clk_scan" as buffer6 Warning: VHDL Process Statement warning at ledmux.vhd(15): signal or variable "dataout" may not be assigned a new in every possible path through the Process Statement. Signal or variable "dataout" holds its previous in every path with no new assignment, which may create a combinational loop in the current design.7 Warning: VHDL Process Statement warning at divider_10.vhd(17): signal "cnt" is read inside the Process Statement but isn't in the Process Statement's sensivitity list-----缺少敏感信号8 Warning: No clock transition on"counter_bcd7:counter_counter_clk|q_sig[3]"register9 Warning: Reduced register "counter_bcd7:counter_counter_clk|q_sig[3]" with stuck clock port to stuck GND10 Warning: Circuit may not operate. Detected 1 non-operational path(s)clocked by clock "class[1]" with clock skew larger than data delay. See Compilation Report for details.11 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "sign" with clock skew larger than data delay. See Compilation Report for details.12 Error: VHDL error at counter_clk.vhd(90): actual port "class" of mode "in"cannot be associated with formal port "class" of mode "out"------两者不能连接起来13 Warning: Ignored node in vector source file. Can't find corresponding node name "class_sig[2]" in design.------没有编写testbench文件,或者没有编辑输入变量的值 testbench里是元件申明和映射14 Error: VHDL Binding Indication error at freqdetect_top.vhd(19): port "class"in design entity does not have std_logic_vector type that is specified for thesame generic in the associated component---在相关的元件里没有当前文件所定义的类型15 Error: VHDL error at tongbu.vhd(16): can't infer register for signal "gate"because signal does not hold its outside clock edge16 Warning: Found clock high time violation at 1000.0 ns on register "|fcounter|lpm_counter:temp_rtl_0|dffs[4]"17 Warning: Compiler packed, optimized or synthesized away node "temp[19]".Ignored vector source file node.---"temp[19]"被优化掉了18 Warning: Reduced register "gate~reg0" with stuck data_in port to stuck GND19 Warning: Design contains 2 input pin(s) that do not drive logic Warning: No output dependent on input pin "clk"Warning: No output dependent on input pin "sign"------输出信号与输入信号无关,20 Warning: Found clock high time violation at 16625.0 ns on register"|impulcomp|gate1"21 Error: VHDL error at impulcomp.vhd(19): can't implement clock enable condition specified using binary operator "or"22 Error: VHDL Association List error at period_counter.vhd(38): actual parameter assigned to formal parameter "alarm", but formal parameter is not declared-------连接表错误,形参"alarm"赋值给实参,形参没定义,可能是形参与实参的位置颠倒了,规定形参在实参之前。
quartuserror (199014)
Quartus是一种用于FPGA设计的集成开发环境(IDE),由英特尔公司开发。
在使用Quartus进行FPGA设计的过程中,用户可能会遇到各种错误代码,其中最常见的就是xxx错误代码。
本文将对这一错误代码进行详细介绍,并提供解决办法。
1. 错误代码xxx的意义错误代码xxx通常表示在编译或者仿真过程中出现了一些问题。
这个问题可能涉及到用户的设计文件,也可能是与Quartus本身相关的。
2. 可能引发错误代码xxx的原因2.1 设计文件错误:设计文件中可能存在语法错误、逻辑错误或者其他与设计规范不符的情况,导致无法顺利编译或者仿真。
2.2 Quartus本身的问题:Quartus软件本身可能存在一些Bug或者不稳定的情况,导致出现xxx错误代码。
2.3 其他未知因素:在某些情况下,错误代码xxx的具体原因可能比较复杂,需要进一步的排查和分析。
3. 解决办法3.1 检查设计文件:用户需要仔细检查设计文件,确保其中没有语法错误、逻辑错误等问题。
可以尝试对设计文件进行逐步的简化,以确定具体是哪一部分代码引发了错误代码xxx。
3.2 更新Quartus版本:如果怀疑是Quartus本身的问题,用户可以尝试更新到最新版本的Quartus软件,看是否可以解决这个问题。
3.3 交流技术支持:如果以上方法都无法解决问题,用户可以选择向Quartus冠方或者相关的技术支持渠道寻求帮助。
他们可能会提供一些针对性的解决方案或者建议。
4. 避免错误代码xxx的方法4.1 编写规范的设计代码:在进行FPGA设计的过程中,用户可以遵循一些编码规范,编写清晰、规范的设计代码,以减少出现错误代码xxx 的可能性。
4.2 注意Quartus的稳定性:在使用Quartus软件的过程中,用户可以注意软件的稳定性表现,及时反馈一些异常情况给Quartus冠方,以帮助他们改进软件的质量。
总结:错误代码xxx是Quartus软件中常见的一个错误代码,通常表示在编译或者仿真过程中出现了一些问题。
Quartus常见错误说明
quartus的功能仿真出错怎么办Error: Run Generate Functional Simulation Netlist (quartus_map and_gate --generate_functional_sim_netlist) to generate functional simulation netlist for top level entity "and_gate" before running the Simulator (quartus_sim)一般如果出现这些错误信息,可以作如下处理功能仿真出错你要运行下processing->Generate Functional Simulation Netlist 下再功能仿真就没有问题一、Quartus 中仿真时出现no simulation input file assignment specify 解决方法翻译成中文就是仿真文件没有被指定,要仿真的话先要建一个仿真文件: file -> new -> 选择Other file 选项卡-> Vector Waveform File 然后把输入输出端口加进去,再设置输入的信号,保存,就可以仿真了。
如果你之前已经建立过了,就打开assignments->settings->simulator settings 看里面的有个文本框simulation input 里面是否为空,为空的话就要找到你所建立的Vector Waveform File 文件,是以*.VWF 结尾的,如果没找到,你又以为你建立了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常见错误
Quartus常见错误1:看看警告:it conflicts with Quartus II primitive name,实体名和QUARTUS 的保留字冲突,楼主把实体名改一下就行了。
有很多这种名字都不能乱起的比如or2 and2 啥的。
为什么还提示“Error: Top-level design entity "and2" is undefined”library ieee;use ieee.std_logic_1164.all;entity and2 isport(a,b:in std_logic;y ut std_logic);end and2;architecture and2_1 of and2 isbeginy<=a nand b;end and2_1;在设置里已经设定top-level entity为and2了怎么还是报错啊!标题:关于quartus中模块的引用2009-05-27 17:10:35quartus中一个工程中可包含一个顶层模块,多个子模块,通过顶层模块引用子模块。
1:顶层模块的实体名必须与建立工程时的实体名一致,否则编译时会出错,如下Error: Top-level design entity "AND" is undefined2,多个实体文件建立后在quartus界面左边的工程文件夹中找到要作为顶层文件的文件点击右键设置为顶层文件3.所有文件设置好后再进行编译,单独编译某个文件的话肯定错误很多。
/Detail/DefaultView.aspx?BookId=ISBN7-115-13204-6里面有一个调用模块的例子,书中间的子模块命名为NAND编译时不能通过,后来改个名字NAND11就通过了,难道NAND是关键词不可用来命名?错误为:Top-level design entity "rojectName" is undefined我已经把项目名称和顶层设计的名称设为一样的而且有时候出现这样的情况,有时候又不出现这样的情况例如下面这个例子//与非门行为描述module NAND(in1,in2,out);input in1,in2;output out;//连续赋值语句assign out=~(in1&in2);endmodule我建工程后就会提示Top-level design entity "NAND" is undefined这个例子是从电子书上直接拷贝过来的,我很好奇的是有的例子可以运行,有的例子不可以。
使用QuartusII常犯的错误
使用QuartusII常犯的错误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"此错误一般是原理图文件的名字和图中一个器件的名字重复所致,所以更改原理图文件的名字保存即可。
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常见问题
Quartus常见错误1.Error (10028): Can't resolve multiple constant drivers for net ……解析:不能在两个以上always内对同一变量赋值,这个细节一般看书看资料会看到,但是编程时,就是没想到。
2.Error (10158): Verilog HDL Module Declaration error at clkseg.v(1): port"XXXX" is not declared as port解析:大意了,端口类型还没定义啊!3.Error (10110): variable "en" has mixed blocking and nonblocking ProceduralAssignments -- must be all blocking or all nonblocking assignments解析:en在程序中有时用非阻塞赋值,有时用阻塞赋值,这是禁止的。
在初学的时候,可能分得不是很清楚,所以在检查时,一定要一步步观察慢慢来。
4.Error (10161): Verilog HDL error at clkseg.v(36): object "count" is notdeclared解析:这个错误应该很明显啦,只要能读得懂。
5.Error (10170): Verilog HDL syntax error at clkseg.v(37) near text "***";expecting ";"解析:意思应该也很简单,就是检查的时候要细心点。
6.Error (10171): Verilog HDL syntax error at ir_ctrl.v(149) near end of file ;expecting an identifier, or "endmodule", or a parallel statement解析:最后上了endmodule。
Quartus常见错误分析Error
Quartus常见错误分析ErrorQuartus常见错误分析ErrorWarning: VHDL Process Statement warning at random.vhd(18): signal reset is in statement, but is not in sensitivity list----没把singal放到process()中2 Warning: Found pins ing as undefined clocks and/or memory enablesInfo: Assuming node CLK is an undefined clock-=-----可能是说设计中产⽣的触发器没有使能端3 Error:VHDL Interface Declaration error in clk_gen.vhd(29): interface object "clk_scan" of mode out cannot be read. Change object mode to buffer or inout.------信号类型设置不对,out当作buffer来定义4 Error:Node instance "clk_gen1" instantiates undefined entity "clk_gen"-------引⽤的例化元件未定义实体--entity "clk_gen"5 Warning: Found 2 node(s) in clock paths which may be acting as ripple and/or gated cl ocks -- node(s) analyzed as buffer(s) resulting in clock skewInfo: Detected ripple clock "clk_gen:clk_gen1|clk_incr" as bufferInfo: Detected ripple clock "clk_gen:clk_gen1|clk_scan" as buffer6 Warning: VHDL Process Statement warning at ledmux.vhd(15): signal or variable "datao ut" may not be assigned a new in every possible path through the Process Statement. Signal or variable " dataout" holds its previous in every path with no new assignment, which may create a combinational loo p in the current design.7 Warning: VHDL Process Statement warning at divider_10.vhd(17): signal "cnt" is read i nside the Process Statement but isn't in the Process Statement's sensivitity list-----缺少敏感信号8 Warning: No clock transition on "counter_bcd7:counter_counter_clk|q_sig[3]" register9 Warning: Reduced register "counter_bcd7:counter_counter_clk|q_sig[3]" with stuck clock port to stuck GND10 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "class[1]" with clock skew larger than data delay. See Compilation Report for details.11 Warning: Circuit may not operate. Detected 1 non-operational path(s) clocked by clock "sign" with clock skew larger than data delay. See Compilation Report for details.12 Error:VHDL error at counter_clk.vhd(90): actual port "class" of mode "in" cannot be associated with formal port "class" of mode "out"------两者不能连接起来13 Warning: Ignored node in vector source file. Can't find corresponding node name "clas s_sig[2]" indesign.------没有编写testbench⽂件,或者没有编辑输⼊变量的值 testbench⾥是元件申明和映射14 Error:VHDL Binding Indication error at freqdetect_top.vhd(19): port "class"in design entity doesnot have std_logic_vector type that is specified for the same generic in the associated com ponent---在相关的元件⾥没有当前⽂件所定义的类型15 Error:VHDL error at tongbu.vhd(16): can't infer register for signal "gate" because sign al does nothold its outside clock edge16 Warning: Found clock high time violation at 1000.0 ns on register"|fcounter|lpm_counter:temp_rtl_0|dffs[4]"17 Warning: Compiler packed, optimized or synthesized away node "temp[19]". Ignored ve ctor source filenode.---"temp[19]"被优化掉了18 Warning: Reduced register "gate~reg0" with stuck data_in port to stuck GND19 Warning: Design contains 2 input pin(s) that do not drive logicWarning: No output dependent on input pin "clk"Warning: No output dependent on input pin "sign"------输出信号与输⼊信号⽆关,20 Warning: Found clock high time violation at 16625.0 ns on register "|impulcomp|gate1"21 Error:VHDL error at impulcomp.vhd(19): can't implement clock enable condition speci fied using binaryoperator "or"22 Error:VHDL Association List error at period_counter.vhd(38): actual parameter assigned to formalparameter "alarm", but formal parameter is not declared-------连接表错误,形参"alarm"赋值给实参,形参没定义,可能是形参与实参的位置颠倒了,规定形参在实参之前。
quartus编译时常见错误和警告
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~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’接电源。
自己整理的:学习verilogDHL问题笔记——Quartus常见错误
⾃⼰整理的:学习verilogDHL问题笔记——Quartus常见错误我初学verilog语⾔,很多细节都没注意,按着⾃⼰的思想就写了,编译的时候才发现各种问题。
这些都是我在学习中遇到的问题,还是很常见的。
1.Error (10028): Can't resolve multiple constant drivers for net ……解析:不能在两个以上always内对同⼀变量赋值,这个细节⼀般看书看资料会看到,但是编程时,就是没想到。
2.Error (10158): Verilog HDL Module Declaration error at clkseg.v(1): port "XXXX" is not declared as port解析:⼤意了,端⼝类型还没定义啊!3.Error (10110): variable "en" has mixed blocking and nonblocking Procedural Assignments -- must be all blocking or all nonblocking assignments解析:en在程序中有时⽤⾮阻塞赋值,有时⽤阻塞赋值,这是禁⽌的。
在初学的时候,可能分得不是很清楚,所以在检查时,⼀定要⼀步步观察慢慢来。
4.Error (10161): Verilog HDL error at clkseg.v(36): object "count" is not declared解析:这个错误应该很明显啦,只要能读得懂。
5.Error (10170): Verilog HDL syntax error at clkseg.v(37) near text "***"; expecting ";"解析:意思应该也很简单,就是检查的时候要细⼼点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Quartus常见错误1:看看警告:it conflicts with Quartus II primitive name,实体名和QUARTUS 的保留字冲突,楼主把实体名改一下就行了。
有很多这种名字都不能乱起的比如or2 and2 啥的。
为什么还提示“Error: Top-level design entity "and2" is undefined”library ieee;use ieee.std_logic_1164.all;entity and2 isport(a,b:in std_logic;y ut std_logic);end and2;architecture and2_1 of and2 isbeginy<=a nand b;end and2_1;在设置里已经设定top-level entity为and2了怎么还是报错啊!标题:关于quartus中模块的引用2009-05-27 17:10:35quartus中一个工程中可包含一个顶层模块,多个子模块,通过顶层模块引用子模块。
1:顶层模块的实体名必须与建立工程时的实体名一致,否则编译时会出错,如下Error: Top-level design entity "AND" is undefined2,多个实体文件建立后在quartus界面左边的工程文件夹中找到要作为顶层文件的文件点击右键设置为顶层文件3.所有文件设置好后再进行编译,单独编译某个文件的话肯定错误很多。
/Detail/DefaultView.aspx?BookId=ISBN7-115-13204-6里面有一个调用模块的例子,书中间的子模块命名为NAND编译时不能通过,后来改个名字NAND11就通过了,难道NAND是关键词不可用来命名?错误为:Top-level design entity "rojectName" is undefined我已经把项目名称和顶层设计的名称设为一样的而且有时候出现这样的情况,有时候又不出现这样的情况例如下面这个例子//与非门行为描述module NAND(in1,in2,out);input in1,in2;output out;//连续赋值语句assign out=~(in1&in2);endmodule我建工程后就会提示Top-level design entity "NAND" is undefined这个例子是从电子书上直接拷贝过来的,我很好奇的是有的例子可以运行,有的例子不可以。
我先创建一个Verilog文件,然后保存成工程,工程名字和顶层文件名字一样的。
问题解决了。
原来定义实体的名称必须与项目顶层文件名称相同。
难怪有时候出现有时候又不出现这个问题咧。
2009-10-17 17:161.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没有约束信息。
可以对相应的PIN做一下设定就行了。
主要是指你的某些管脚在电路当中起到了时钟管脚的作用,比如flip-flop的clk管脚,而此管脚没有时钟约束,因此QuartusII把“clk”作为未定义的时钟。
措施:如果clk不是时钟,可以加“not clock”的约束;如果是,可以在clock setting当中加入;在某些对时钟要求不很高的情况下,可以忽略此警告或在这里修改:Assignments>Timing analysis settings...>Individual clocks...>...6.Timing characteristics of device EPM570T144C5 are preliminary原因:因为MAXII 是比較新的元件在 QuartusII 中的時序并不是正式版的,要等 Service Pack措施:只影响 Quartus 的 Waveform7.Warning: Clock latency analysis for PLL offsets is supported for the current device family, but is not enabled措施:将setting中的timing Requirements&Option-->More Timing Setting-->setting-->Enable Clock Latency中的on改成OFF8.Found clock high time violation at 14.8 ns on register"|counter|lpm_counter:count1_rtl_0|dffs[11]"原因:违反了steup/hold时间,应该是后仿真,看看波形设置是否和时钟沿符合steup/hold时间措施:在中间加个寄存器可能可以解决问题9.warning: circuit may not operate.detected 46 non-operational paths clocked by clock clk44 with clock skew larger than data delay 原因:时钟抖动大于数据延时,当时钟很快,而if等类的层次过多就会出现这种问题,但这个问题多是在器件的最高频率中才会出现措施:setting-->timing Requirements&Options-->Default required fmax 改小一些,如改到50MHZ10.Design contains <number> input pin(s) that do not drive logic原因:输入引脚没有驱动逻辑(驱动其他引脚),所有的输入引脚需要有输入逻辑措施:如果这种情况是故意的,无须理会,如果非故意,输入逻辑驱动.11.Warning:Found clock high time violation at 8.9ns on node'TEST3.CLK'原因:FF中输入的PLS的保持时间过短措施:在FF中设置较高的时钟频率12.Warning: Found 10 node(s) in clock paths which may be acting as ripple and/or gated clocks -- node(s) analyzed as buffer(s) resulting in clock skew原因:如果你用的 CPLD 只有一组全局时钟时,用全局时钟分频产生的另一个时钟在布线中当作信号处理,不能保证低的时钟歪斜(SKEW)。
会造成在这个时钟上工作的时序电路不可靠,甚至每次布线产生的问题都不一样。
措施:如果用有两组以上全局时钟的 FPGA 芯片,可以把第二个全局时钟作为另一个时钟用,可以解决这个问题。
13.Critical Warning: Timing requirements were not met. See Report window for details.原因:时序要求未满足,措施:双击Compilation Report-->Time Analyzer-->红色部分(如clock setup:'clk'等)-->左键单击list path,查看fmax的SLACK REPORT再根据提示解决,有可能是程序的算法问题14.Can't achieve minimum setup and hold requirement <text> along <number> path(s). See Report window for details.原因:时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关,一般是由于多时钟引起的措施:利用Compilation Report-->Time Analyzer-->红色部分(如clock hold:'clk'等),在slack中观察是hold time为负值还是setup time 为负值,然后在:Assignment-->Assignment Editor-->To中增加时钟名(from node finder),Assignment Name中增加多时钟有关的Multicycle 和Multicycle Hold选项,如hold time为负,可使Multicycle hold的值>multicycle,如设为2和1。