当前位置:文档之家› Quartus 2 使用错误集锦

Quartus 2 使用错误集锦

Quartus 2 使用错误集锦
Quartus 2 使用错误集锦

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

Quartus常见错误

Quartus常见错误 为什么还提示“Error: Top-level design entity "and2" is undefined” library ieee; use ieee.std_logic_1164.all; entity and2 is port(a,b:in std_logic; y ut std_logic); end and2; architecture and2_1 of and2 is begin y<=a nand b; end and2_1; 在设置里已经设定top-level entity为and2了 怎么还是报错啊! 标题:关于quartus中模块的引用 2009-05-27 17:10:35 quartus中一个工程中可包含一个顶层模块,多个子模块,通过顶层模块引用子模块。 1:顶层模块的实体名必须与建立工程时的实体名一致,否则编译时会出错,如下 Error: Top-level design entity "AND" is undefined 2,多个实体文件建立后在quartus界面左边的工程文件夹中找到要作为顶层文件的文件点击右键设置为顶层文件 3.所有文件设置好后再进行编译,单独编译某个文件的话肯定错误很多。

https://www.doczj.com/doc/3f15794347.html,/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:16 1.Found clock-sensitive change during active clock edge at time

Quartus_II使用教程-完整实例

Quartus Ⅱ入门教程 (一个Verilog 程序得编译与功能仿真) Quartus Ⅱ 就是Altera 公司推出得专业EDA 工具,支持原理图输入、硬件描述语言得输入等多种输入方式。硬件描述语言得输入方式就是利用类似高级程序得设计方法来设计出数字系统。接下来我们对这种智能得EDA 工具进行初步得学习。使大家以后得数字系统设计更加容易上手。 第一步:打开软件 快捷工具栏:提供设置(setting),编译(pile)等快捷方式,方便用户使用,用户也可以在菜单栏得下拉菜单找到相应得选项。● 菜单栏:软件所有功能得控制选项都可以在其下拉菜单中找到。 ● 信息栏:编译或者综合整个过程得详细信息显示窗口,包括编译通过信息与报错信息。 第二步:新建工程( Project Wizard ) 1 工程名称: 快捷工具栏 菜单栏 所建工程得保存路径 工作区 资源管理窗口 任务管理窗口

dqgxo 。 2添加已有文件(没有已有文件得直接跳过next ) 3 选择芯片型号(我们选择MAX3000A 系列下得EPM3256AQC208-10芯片) (注:如果不下载到开发板上进行测试,这一步可以不用设置) 工程名称 顶层模块名(芯片级设计为实体名),要求与工程名称相同 如果有已经存在得文 件就在该过程中添加, 软件将直接将用户所添加得文件添加到工程中。

4 选择仿真,综合工具(第一次实验全部利用quartus 做,三项都选None,然后next) 5 工程建立完成(点finish ) 所选得芯片得系列型号 快速搜索所需得芯片 选择芯片 选择第三方综合工具,如果使用Quartus 内部综合工具则选择none 选择第三方仿真工具,如果使用Quartus 内部仿真工具则选择none 选择时序分析仪

quartus ii 常见的19个错误、28个警告

(一) Q uartus警告解析 1.Found clock-sensitive change during active clock edge at time

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会按照你的电平标准自动布线。 第二是IO Bank:你在quartus pin planner 的top view下右键然后点击 show IO banks,这个时候就会看到FPGA的管脚被几种颜色划分开了。一种颜色下的IO口代表一组bank。你在吧管脚的location约束完成以后。IO Bank会自动填

Quartus_II使用方法

第1章QUARTUS II 2.1 QUARTUSII概述 设计输入是设计者对系统要实现的逻辑功能进行描述的过程。设计输入有多种表达方式,常用的用原理图输入、硬件描述语言输入、网表输入等。 1、原理图输入: 原理图设计输入方式是利用软件提供的各种原理图库,采用画图的方式进行设计输入。这是一种最为简单和直观的输入方式。原理图输入方式的效率比较低,半只用于小规模系统设计,或用于在顶层拼接各个以设计完成的电路子模块。 2、硬件描述语言输入: 这种设计输入方式是通过文本编辑器,用VHDL,Verilog或AHDL等硬件描述语言进行设计输入。采用语言描述的有点事效率较高,结果容易仿真,信号观察方便,在不同的设计输入库之间转换方便,适用于大规模数字系统的设计。但语言输入必须依赖综合器,只有好的综合器才能把语言综合成优化的电路。 3、网表输入: 现代可编程数字系统设计工具都提供了和它第三方EDA工具相连接的接口。采用这种方法输入时,可以通过标准的网表把它设计工具上已经实现了的设计直接移植进来,而不必重新输入。一般开发软件可以接受的网表有EDIF格式、VHDL 格式及Verilog格式等。在用网表输入时,必须注意在两个系统中采用库的对应关系,所有的库单元必须一一对应,才可以成功读入网表[6]。 2.2 QUARTUSII建立工程项目 在Quartus II 中,用户的每个独立设计都对应一个工程项目,每个工程项目可包含一个或多个设计文件。其中一个是顶层文件,编译器是对项目中的顶层文件进行编译的,项目同时还管理编译过程中产生的各种中间文件,这些中间文件的文件名相同,但后缀名不同。为了便于管理,对于每个新的项目应该建立一个单独的子目录。指定项目名称的步骤如下: 1. 打开Quartus II,在File 菜单中选择New Project Wizard 项,将出现工程项目建立向导对话框。如图2-1 (a)所示。 2. 点击“Next”,进入到如图2-1 (b)所示的工程项目命名对话框,在最上面的

QuartusII教程(完整版)

Quartus II 的使用 (1) 1 工程建立 (1) 2 原理图的输入 (4) 3 文本编辑(verilog) (14) 4 波形仿真 (17)

Quartus II 的使用 在这里,首先用最简单的实例向读者展示使用Quartus II软件的全过程。进入WINDOWS XP后,双击Quartus II图标,屏幕如图1.1所示。 图 1.1 Quartus II 管理器 1.1 工程建立 使用New Project Wizard,可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称。还可以指定要在工程中使用的设计文件、其它源文件、用户库和EDA 工具,以及目标器件系列和器件(也可以让Quartus II 软件自动选择器件)。 建立工程的步骤如下:

(1)选择File菜单下New Project Wizard ,如图1.2所示。 图 1.2 建立项目的屏幕 (2)输入工作目录和项目名称,如图1.3所示。可以直接选择Finish,以下的设置过程可以在设计过程中完成。 图 1.3 项目目录和名称

(3)加入已有的设计文件到项目,可以直接选择Next,设计文件可以在设计过程中加入,如图1.4所示。 图 1.4 加入设计文件 (4)选择设计器件,如图1.5所示。 图 1.5 选择器件

(5)选择第三方EDA综合、仿真和时序分析工具,如图1.6所示。 图 1.6 选择EDA 工具 (6)建立项目完成,显示项目概要,如图1.7所示。 图 1.7 项目概要 1.2 原理图的输入 原理图输入的操作步骤如下:

(1)选择File 菜单下New ,新建图表/原理图文件,如图1.8 所示。 图 1.8 新建原理图文件 (2)在图1.9的空白处双击,屏幕如图1.10所示: (3)在图1.10的Symbol Name 输入编辑框中键入dff后,单击ok按钮。此时可看到光标上粘着被选的符号,将其移到合适的位置(参考图 1.11)单击鼠标左键,使其固定;(4)重复(2)、(3)步骤,给图中放一个input、not、output 符号,如图1.11所示;在图1.11中,将光标移到右侧input 右侧待连线处单击鼠标左键后,再移动到D触发器的左侧单击鼠标左键,即可看到在input和D触发器之间有一条线生成;

QUARTUS 7常见错误剖析

QUARTUS II常见错误剖析 made by lingfeng 1,Error (10053): Verilog HDL error at ADDBCD.v(13): can't index object "out" with zero packed or unpacked array dimensions 这个错误是由于OUT是个寄存器变量,在程序的开始忘记定义reg out 或者out寄存器变量的宽度定义错误。 2,编写好程序并进行编译后,把文件作为顶层文件然后进行波形仿真,出现对应引脚与程序中的引脚不符。 这个错误是因为把文件作为顶层文件后还要再编译一次,顶层文件才能够进行波形仿真。否则仿真对应的文件永远是上一个顶层文件。3,在给寄存器赋初值时,应该通过在进程中设置一个复位的单元来给寄存器变量赋初值。 4,项目导航窗口被关闭了,怎样重新打开? 点击主菜单的VIEW->utility windows->project navigator(工程文件) and status(编译状态) 5,Error: Can't elaborate top-level user hierarchy 解决办法:看看Always中的敏感表达式是否与之后的程序相矛盾。6,Error: Can't compile duplicate declarations of entity "class_design" into library "work" 解决办法:把文件名修改成和别的文件不重复的名字。 7,Error (10219): Verilog HDL Continuous Assignment error at adder.v(9): object "cout" on left-hand side of assignment must have a net type

FPGA入门及Quartus II使用教程(内部资料)

FPGA入门及Quartus II使用教程FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)等可编程器件的基础上上进一步发展的产物。 可以这样讲,ASIC(Application Specific Integrated Circuit )内部的所有资源,是用积木堆积起来的小房子,可以是一个欧美风情的房子,还可以是一个北京四合院…….而FPGA内部就可以说是一个个小积木,也就是内部有大量的资源提供给我们,根据我们的需求进行内部的设计。并且可以通过软件仿真,我们可以事先验证设计的正确性。 第一章FPGA的基本开发流程 下面我们基于Altera 公司的QuantusII 软件来说明FPGA 的开发流程。 下图是一个典型的基于Quartus II的FPGA开发整体流程框图。

1、建立工程师每个开发过程的开始,Quartus II以工程为单位对设计过程进行管 理。 2、建立顶层图。可以这样理解,顶层图是一个容器,将整个工程的各个模块包 容在里边,编译的时候就将这些模块整合在一起。也可以理解为它是一个大元件,比如一个单片机,内部包含各个模块,编译的时候就是生成一个这样的大元件。 3、采用ALTERA公司提供的LPM功能模块。Quartus软件环境包含了大量的常 用功能模块,比如计数器、累加器、比较器等等。 4、自己建立模块。由于有些设计中现有的模块功能不能满足具体设计的要求, 那就只能自己设计。使用硬件描述语言,当然也可以用原理图的输入方法,可以独立的把它们当成一个工程来设计,并且生成一个模块符号(Symbol),类似于那些LPM功能模块。这里可以理解为,如果我们需求的滤波器,没有现成的合适的,那我们可以通过LC自己来搭建一个滤波器。 5、将顶层图的各个功能模块连线起来。这个过程类似电路图设计,把各个芯片 连起来,组成电路系统。 6、系统的功能原理图至此已经基本出炉了,下一步就是选择芯片字载体,分配 引脚,设置编译选项等等。 7、编译。这个过程类似软件开发里德编译,但是实际上这个过程比软件的编译 复杂的多,因为它最终要实现硬件里边的物理结构,包含了优化逻辑的组合,综合逻辑以及布线等步骤。 8、编译后会生成2个文件,一个是*.sof文件,一个是*.pof文件,前者可以通过 JTAG方式下载到FPGA内部,可以进行调试,但断电后数据丢失;后者通过AS或者PS方式下载到FPGA的配置芯片里边(EEPROM或者FLASH),重新上电后FPGA会通过配置将数据读出。 9、对于复杂的设计,工程编译好了,我们可以通过Quartus软件或者其他仿真 软件来对设计进行反复仿真和验证,直到满足要求。(主要是时序仿真)。 第二章基于Quartus II的实例 一、建立工程 首先,打开Quartus II软件。

Quartus使用问题及解决方法总结

Quartus使用问题及解决方法总结(转载) 在QuartusII下进行编译和仿真的时候,会出现一堆warning,有的可以忽略,有的却需要注意,虽然按F1可以了解关于该警告的帮助,但有时候帮助解释的仍然不清楚,大家群策群力,把自己知道和了解的一些关于警告的问题都说出来讨论一下,免得后来的人走弯路. 下面是我收集整理的一些,有些是自己的经验,有些是网友的,希望能给大家一点帮助,如有不对的地方,请指正,如果觉得好,请版主给点威望吧,谢谢 1.Found clock-sensitive change during active clock edge at time

Modelsim使用常见问题及解决办法

Modelsim使用常见问题及解决办法 在ISE启动modelsim时遇到问题 1。我在ISE中启动modelsim时出现了下面的错误 Loading work.tb_ic1_func # ** Error: (vsim-19) Failed to access library 'xilinxcorelib_ver' at "xilinxcorelib_ver". # No such file or directory. (errno = ENOENT) # ** Error: (vsim-19) Failed to access library 'unisims_ver' at "unisims_ver". # No such file or directory. (errno = ENOENT) # Loading work.fifoctlr_ic_v2 # ** Error: (vsim-19) Failed to access library 'xilinxcorelib_ver' at "xilinxcorelib_ver". # No such file or directory. (errno = ENOENT) # ** Error: (vsim-19) Failed to access library 'unisims_ver' at "unisims_ver". # No such file or directory. (errno = ENOENT) # ** Error: (vsim-3033) fifoctlr_ic_v2.v(126): Instantiation of 'BUFGP' failed. The design unit was not found. 是什么原因? “点到仿真模式,在source里面选中你建立工程选择的芯片,然后看Processes,点开,有个compile HDL simulation library,运行一下就OK了” 2.ISE用modelsim仿真提示:# ** Error: (vish-4014) No objects found matching '*'.结果仿真时老是报错: # ** Error: (vish-4014) No objects found matching '*'. # Error in macro ./test_top_tb.fdo line 10 # (vish-4014) No objects found matching '*'. # while executing # "add wave *" 解决办法,改modelsim.ini文件中的一个参数:VoptFlow = 0 # ** Error: (vish-4014) No objects found matching 'XXXX'. 在之前的设计里有一个信号XX, 并且保持在wave.do文件里 现在这个信号在你的设计你被去掉了,modelsim仍然调用旧的wave.do,找不到对应的信号XX, 就报错误这个错误可以忽略 3.当对IP核修改后,用Modelsim仿真显示:No entity is bound for inst 或CE is not in the entity。(CE是改动后添加的一个管脚),从而仿真无结果。 解决办法:首先选中该IP核的.xco文件点击右键->属性将属性改为"Synthesis/Imp + Simulation." 然后将其对应的.v或.vhd文件的属性也改为"Synthesis/Imp + Simulation." 4.启动modelsim后,没有出错,但是有warning:(vsim-3009) [TSCALE] - Module 'ODDR' does not have a `timescale directive in effect, but previous modules do.输入信号均正确,调用的IP core或原语的输出为高阻态。

Quartus II常见错误

1.Found clock-sensitive change during active clock edge at time

Quartus 2 使用错误集锦

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)

Quartus 中仿真出现错误解决方案汇总

一、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)之类的错误。最后在进行仿真,就可以看到波形图了 二、Error (10137): Verilog HDL Procedural Assignment error at SHIFT.v(16): object "Data" on left-hand side of assignment must have a variable data type 错误:对Data未定义其变量类型,比如reg [3:0] Data 三、Quartus II常见错误 1.Found clock-sensitive change during active clock edge at time

Quartus II教程

第3章 Altera Quartus II软件开发向导 基于Altera Quartus II软件的设计方法有模块编辑法、文本编辑法、宏模块编辑法和包含前三种方法的混合编辑法。宏模块设计法放在第6章讲述,本章通过实例简单介绍使用Quartus II软件的模块原理图编辑法、文本编辑法和包含前两种方法的混合编辑法。 3.1模块编辑及设计流程 Quartus II软件的模块编辑器以原理图的形式和图标模块的形式来编辑输入文件。每个模块文件包含设计中代表逻辑的框图和符号。模块编辑器可以将框图、原理图或符号集中起来,用信号线、总线或管道连接起来形成设计,并在此基础上生成模块符号文件(.bdf)、AHDL Include文件(.inc)和HDL 文件。 3.1.1 原理图输入文件的建立 在这里我们设计非常简单一个二输入的或门电路。它只包含一个或门、两个输入引脚和一个输出引脚。首先创建一个原理图形式的输入文件。步骤如下: (1)打开模块编辑器 单击【File】|【New】,弹出新建文件对话框,如图3.1所示。 图3.1 新建文件对话框 选择文件类型【Block Diagram/Schematic File】,打开模块编辑器,如图3.2所示。使用该编辑器可以编辑图标模块,也可以编辑原理图。

图3.2 模块编辑器 Quartus II提供了大量的常用的基本单元和宏功能模块,在模块编辑器中可以直接调用它们。在模块编辑器要插入元件的地方单击鼠标左键,会出现小黑点,称为插入点。然后鼠标左键,弹出【Symbol】对话框,如图3.3 所示。或者在工具栏中单击图标,也可打开该对话框。 在Symbol对话框左边的元件库【Libraries】中包含了Quartus II提供的元件。它们存放在\altera\quartus60\libraries\的子目录下,分为primitives、others、megafunctions三个大类。 基本逻辑函数(primitives) 基本逻辑函数存放在\altera\quartus60\libraries\ primitives\的子目录下,分别为缓冲逻辑单元(buffer)、基本逻辑单元(logic)、其它单元(other)、引脚单元(pin)和存储单元(storage)五个子类。Buffer子类中包含的是缓冲逻辑器件,如alt_in buffer、alt_out_buffer、wire等;logic子类中包含的是基本逻辑器件,如and、or、xor等门电路器件;other子类中包含的是常量单元,如constant、vcc和gnd等;pin子类中包含的是输入、输出和双向引脚单元;storage子类中包含的是各类触发器,如dff、tff等。

vhdl设计中的常见错误

一Vhdl语言中 1 提示:VHDL syntax error:expected choice in case statement Case语句中没覆盖到所有的情况,要加whe n others=> null; 二.在verge hdl语句中 在QuartusII下进行编译和仿真的时候,会出现一堆warning,有的可以忽略,有的却需要注意,虽然按F1可以了解关于该警告的帮助,但有时候帮助解释的仍然不清楚,大家群策群力,把自己知道和了解的一些关于警告的问题都说出来讨论一下,免得后来的人走弯路? 下面是我收集整理的一些,有些是自己的经验,有些是网友的,希望能给大家一点帮助,如有不对的地方,请指正,如果觉得好,请版主给点威望吧,谢谢 1. Found clock-sensitive change during active clock edge at time

相关主题
文本预览
相关文档 最新文档