Quartus 2 使用错误集锦
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 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常见问题集锦
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口上加载正确的上拉/下拉电阻。
Quartus II 报错集锦
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有关错误和警告的编译信息总结
在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’接电源。
quartus2 问题汇总
Warning: Clock multiplexers are found and protected
Warning: Found clock multiplexer fenpinqi2:inst16|mc16~synth
解释1:取消你的时钟mux。如果不能取消,那么就用专门的时钟mux单元。如果时钟不是特别高要求,别管他。
就是对时钟做了多路选择。一般的来说,系统时钟树的处理要特别注意。最好不要有组合逻辑掺杂其中。如果非得要有,对于FPGA来说,一般的会使用专用的时钟选择器来做,驱动能力比较强,所以也不要太担心。如果是特别高频的,要注意处理了。时序报告要好好检查。
解释4:这个warning就是说你第二个always块是纯组合逻辑,但mosi作为输入没有被包含在敏感列表中,这样的话你的mosi变化不会影响你这段组合逻辑的输出,一定会生成锁存器,也就是latch 。
Warning (10230): Verilog HDL assignment warning at verilog_ctrl.v(111): truncated value with size 10 to match size of target (8)
解释4:原先的警告说明,你没有在所有状态给csn赋值,在这些状态csn将保持。
Warning: Output pin "pre_syn.bp.inst8_DATA_13_" driven by bidirectional pin "SRAM_DATA[13]" cannot be tri-stated
两个进程里都有同一个条件判断的话,会产生并行信号冲突的问题。
QuartusII有关错误和警告的编译信息总结
在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 Ⅱ中仿真出现错误解决方案汇总
一、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 Ⅱ中仿真出现错误解决方案汇总
一、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)之类的错误。
quartusII常见错误
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
outside clock edge
28 Error: Can't elaborate top-level user hierarchy
29 Error: Can't resolve multiple constant drivers for net "cs_in" at
led_key.vhd(32) ----------有两个以上赋值语句,不能确定“cs_in”的值
cannot be associated with formal port "class" of mode "out"
------两者不能连接起来
13 Warning: Ignored node in vector source file. Can't find corresponding node
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]"
quartus 2 软件常见问题集
措施:如果结果正确,无须加以修正,如果不想看到这个警告,可以改变设定的位数
3.All reachable assignments to data_out(10) assign '0', register removed by optimization
15.Can't achieve minimum setup and hold requirement <text> along <number> path(s). See Report window for details.
原因:时序分析发现一定数量的路径违背了最小的建立和保持时间,与时钟歪斜有关,一般是由于多时钟引起的
14.Warning: Can'tபைடு நூலகம்find signal in vector source file for input pin |whole|clk10m
原因:这个时因为你的波形仿真文件( vector source file )中并没有把所有的输入信号(input pin)加进去, 对于每一个输入都需要有激励源的
措施:在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
注意在Applies to node中只用选择时钟引脚一项即可,required fmax一般比所要求频率高5%即可,无须太紧或太松。
Quartus II使用常见问题
在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’接电源。
QuartusII常见错误分析
bjxiong 发表于 - 2007-8-24 10:43:00
0
推荐1 Warning: VHDL Process Statement warning at random.vhd(18): signal reset is in statement, but is not in sensitivity list
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"
------两者不能连接起来
26 Error: Can't resolve multiple constant drivers for net "datain_reg[22]" at shift_reg.vhd(19)
27 can't infer register for signal "num[0]" because signal does not hold its outside clock edge
-------连接表错误,形参"alarm"赋值给实参,形参没定义,可能是形参与实参的位置颠倒了,规定形参在实参之前。
23 Error: Ignored construct behavier at period_counter.vhd(15) because of previous errors
Info: Detected ripple clock "clk_gen:clk_gen1|clk_incr" as buffer
QUARTUS II常见错误解决方法
1.多模块或多进程驱动同一信号
Error (10028): Can't resolve multiple constant drivers for net "FLASH_A[7]" at led.v(32)
用Verilog描述电路时,一个信号只能在一个进程中驱动,如果在多个进程中对其驱动的话将产生如上错误。解决方法为可以另加一个信号,通过在另一个进程中监视这个信号做出相应的动作。
3.CLK 连接
SOPC综合后资源占用LE只有几百,警告数量数百。
原因一般是CLK的连接有问题。CPU在没有时钟的情况下形同虚设,在综合时被综合掉,产生大量警告。
4.负载电容(load capacitance)警告
Warning: Found 8 output pins without output pin load capacitance assignment
关于全局时钟,再多说几句。23,24,27,28是EP2C8Q208的四个全局时钟管脚。他们比一般的IO管脚驱动能力更强,通常建议将时钟信号绑定在这些管脚上,以保证时钟信号的驱动质量.4个管脚是等效的,可以用不同时钟同时驱动他们,这样FPGA内部可以工作在多个时钟域下,不同电路由不同时钟来驱动.
6.仿真时存储器初始化
在使用FPGA内部的RAM时,会有一个初始化文件.mif,给RAM加上初始值或当作ROM用,因此仿真时必须把相应数据导入,首先要把mif文件转换为.hex文件或.rif文件。
在Quartus II环境下,打开mif文件,点Save As,选择Hexadecimal(Intel-Format) File(*.hex),或者点击Export,用Save as type选择RAM Initialization File (*.rif),也可能在命令行下输入:
Quartus 2 使用错误集锦
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)原因:赋值语句的等号两端数据的位宽不一致。
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’接电源。
QuartusII常犯错误
设计中从硬件到软件,不断有新的问题出现,先将出现的典型问题罗列如下。
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常见的错误
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没有约束信息。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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。