当前位置:文档之家› 彻底掌握Quartus

彻底掌握Quartus

彻底掌握Quartus
彻底掌握Quartus

彻底掌握Quartus

你可以在EETOP的论坛上面搜索到quartus的下载链接,然后在百度能找到破解方法。

不建议用quartus13以前的版本(旧版带的USB blaster驱动可能在WIN8、WIN10上面安装不了),还有quartus13及以后的版本都把IDE和器件包分成两部分,记得下载器件包。此外,quartus13.0sp1是最后一个支持cyclone II的版本。接下来,介绍Quartus 13最基础的日常使用方法。

如何新建工程就不说了,但是要注意,工程目录和工程名不要有中文和空格,还有,要有一个设计文件(如,.v、.vhd、.bsf 文件)的名称要跟工程名一样,不然会有警告。

一、新建工程,New个设计文件,会出现下图所示。上面那么多种文件有什么卵用?

1、AHDL文件,用于编写Altera发明的AHDL语言,此语言已经被淘汰,可以不管它。

2、Block Diagram/Schematic文件,原理图文件,跟AD、PADS、Cadence等电路图设计软件的用法差不多。

3、EDIF文件,网表文件。

4、Qsys system文件,用于设计软核,Qsys前身是NIOS。

5、State Machine文件,状态机文件。

6、System Verilog文件,用于系统级验证。

7、Tcl script文件,TCL脚本文件。

8和9、常用的HDL文件(包括verilog和VHDL)

10是十六进制文件,11是MIF文件,用于ROM或RAM的初始化。

12、Probe文件,用于观察FPGA内部某一信号,一般用Signaltap

13、逻辑分析仪接口文件,暂时不知道有什么用。

14、VWF文件,用于调用quartus自带的仿真工具QSIM

15、AHDL头文件,可以不管它。

16、原理图的Symbol文件,用于编辑原理图Symbol,跟你用电路图设计软件时,画原理图库差不多。

17、JTAG链描述文件,给一个或多个芯片下载代码时用的。

18、Synopsys约束文件,时序约束用的SDC文件。

19、txt文件。

就算quartus支持那么多种文件,但常用的没几个,一般是原理图.bdf文件或者纯文本的.v或.vhd文件,就算后面需要用逻辑分析仪或者时序约束,也是可以用quartus自动给你生成的。

特别要注意一下,不同类型的文件,名字最好不一样。比如,已经有了test.v,就不要用弄test.vwf,不然你双击test的原理图Symbol的时候,会问你要打开test.v还是test.vwf,让你浪费不必要时间。我一般是除了.v或.vhd文件用test之外,

vwf就用test_vwf.vwf,bdf就用test_top.bdf。二、如何把HDL 文件,转成原理图Symbol

先选中你要转的HDL文件。白色衬底(左边)是被选中的HDL文件,右边是没有选中的,然后在菜单栏File下面。点Create Symbol Files for Current File,即可把HDL转成原理图Symbol了,然后新建一个.bdf的原理图文件。双击红圈位置,在libraries->Project下,已经生成了原理图Symbol了,点OK,可以调用了。(我的机子是高分屏,Symbol显示有点问题,是quartus对高分屏支持得不好)。

如果你觉得原理图的symbol不够大,可以按住Ctrl键,滑动鼠标滚轮,可以使symbol放大/缩小。再来对照一下,原理图Symbol和.vhd文件的实体

entity bin2bcd is

port(

clk_50M

: in std_logic;

add : in std_logic;

sub : in std_logic;

bcdout1

:out std_logic_vector(3 downto 0)

);

end bin2bcd;这是一一对应,输入在左,输出在右,有多个输入的时候,也会按顺序排列,如果不方便连线,可以改一下引脚的顺序,再保存,生成Symbol,再update。右击Symbol,就可以update了,update时,会出现下面的对话框。懂点英语的,都能看懂上面三个选择。1、只update选中的symbol,2、update所有关联(名字一样)的symbol,3、update全部symbol。一般选第一个。

quartus13有个bug,生成的symbol的实例名可能会重名,而报警告。这时,可以右击symbol,选properties。把上图的inst改成其它名字就可以了。三、在刚才调用symbol的位置,还可以调用其它IP核。在Name下面输入input,可以调用输入端口,output就是输出端口了,这些都是quartus自带的一些symbol,把primitives下面的折叠全部打开,你会发现有很多东西,如:与或非门、各种触发器等。当然,还有其它东西,自己去挖掘吧。特别要说明两个symbol,VCC代表高电平,GND代表低电平,可用于使能或者其它用途。

也是在刚才那个对话框,下面有MegaWizard,用来调用quartus自带的IP核,也叫宏功能模块(LPM),有部分是免费,部分是收费,还有部分需要联网下载的。MegaWizard

的使用方法也很简单,写上IP核的名字,一步步next到finish 就可以了,调用也是在上面那个对话框里调用。

其中,原理图symbol之间的连线要注意一下位宽,不然会出错。也可以使用网络标号,先把线引出来,选中线,再输入网格标号就可以了,但是要注意一下格式,如:qout是8位,网络标号就要写成qout[7..0]。也有些特殊用法,如下图所示:这里,引出64位宽的fre信号,而在另一个symbol则只连了[63..32]这几个脚,这是合法的,空出来的引脚,没用的话,可以不管。四、编写好你的设计文件之后,就可以编译(也可以叫综合)了。因为综合很慢,所以先分析一下设计文件有无语法错误之类的,再综合。综合的时候,要注意,哪个是顶层文件。比如你弄一个流水灯,在led_top.bdf里面,有分频模块fre_div的symbol和流水灯控制模块led_ctrl的symbol的话,那么led_top.bdf就是顶层文件,因为它调用了你所有的设计文件。你可以先选中led_top.bdf,再用快捷键Ctrl+Shift+J,把它设置为顶层文件,不然综合出来有很多警告,甚至出错。

上图所示,蓝圈就是分析设计文件了,而红圈就是综合。综合之后,就会生成report,告诉你,你设计出来的电路占用

哪些资源。懂点英文和FPGA的内部结构的,都能看懂上图。现在解释一下:

1、电路占用了62个LE。

2、电路占用了43个组合电路。

3、电路占用了55个专用的寄存器。

4、整个电路占用了55个寄存器。

5、电路使用了31个引脚,我的FPGA是EP2C8Q208C8N,一共有208个引脚,其中138个引脚是可用的。

6、电路使用了0个虚拟引脚,虚拟引脚是前期设计时,预先分配的,可以解决引脚不够用导致无法综合的问题。

7、电路使用的内存为0 bit,这里memory是指FPGA内部的存储单元,包括ROM和RAM,其中RAM指的是块RAM 而不是分布式RAM,因为分布式RAM是用LE实现的。8、电路使用了0个PLL,我这芯片一共有2个PLL,PLL 是固核(也可以认为是硬核,硬核和固核的分界线并不是很明确),可以配置一下就调用,某些FPGA会有4个或更多的PLL固核。五、接下来看看,你综合出来是个什么电路。在菜单栏的Tools下面,点击查看RTL图、状态机图(前提是综合出来有状态机)或者工艺映射表(Technology Map)其中RTL图和工艺映射表,都可以表示你设计出来的电路,区别在于,RTL图抽象层次更高一些,而工艺映射表更接近于门级。

某些时候,RTL并不能完全表示出电路的正确性,因为综合出来,有部分细节出错,在RTL图看不出来,这里得用工艺映射表。六、用Assignment Editor锁管脚。在Value下面输入23,就可以把clk锁定在23号引脚了。如下图所示。七、锁完之后,保存好,还要再综合一次,这样的综合出来的电路才是你需要的。如果不想综合两次,那就要用TCL脚本来锁管脚了。

新建一个TCL脚本文件。输入如下代码:

set_location_assignmentPIN_23 -to clk这样就可以把clk锁定在23号引脚了。如果你的引脚是按键,就要加上拉电阻(不然会容易烧坏IO口),输入如下代码:

set_location_assignmentPIN_208 -to

switch_inputset_instance_assignment -name

WEAK_PULL_UP_RESISTOR ON -to switch_input这样就把switch_input这个锁在208号引脚,同时给208号引脚加了上拉电阻。

保存好你的TCL脚本,然后在菜单栏的tools下,点TCL scripts,点Run,运行一下你的TCL脚本。这样,就只需要综合一次了。八、接好你的JTAG就可以用Programmer下载代码了,由于此步骤太简单了,省略。其中sof文件,是直接JTAG下载的,断电就没了;pof文件是AS下载,断电可保存。但是AS下载需要额外加点电路,而且对电路要求高,

有点问题都无法下载,而且工业上的板子也只有JTAG下载口(节省PCB面积),这样就得用JTAG间接下载,断电可保存。

在菜单栏的file下,转换编程文件:选择jic格式,配置芯片的型号(我这里是EPCQ16),然后改一下jic的名字,默认是output_file。先点一下SOF Data然后add file,把你的SOF 文件添加进去。然后点generate即可生成jic文件。

最后在programmer,添加这个jic文件,就可以下载代码了。下载完之后,FPGA并不直接运行代码,需要先断电,再上电,FPGA才正常工作。

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/2712826700.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

QUARTUSII软件开放性实验报告

开放性实验报告 专业:电子信息工程 班级: *电信*班 姓名: 学号: 指导老师:

实验一:流水灯 一.实验内容 利用QUARTUSII软件,构建NIOSII软核系统,编写程序,实现实验箱上LED灯的流水功能。 二.实验原理 通过提前设定NIOSII软核处理器的相关寄存器,控制led 的IO 口的高低电平输出及响应间隔时间,从而改变LED的亮灭并达到流水灯效果。 三.实验步骤 1.硬件设计 (1).构建NIOSII软核

NIOSII软核处理器包括cpu,sdram控制器,串行flash控制器,jtag_uart,sysid,pio端口。 (2).PLL模块的构建 实验箱的板载有源晶振频率为50MHZ,NIOSII及SDRAM需要100MHZ 的时钟源,因此需要用PLL模块进行倍频。 PLL模块的配置如图所示: 输入时钟频率为50MHZ

输出时钟c0为输入时钟的2倍频 输出时钟c1为输入时钟的2倍频,相位偏移-75度,为SDRAM 提供工作时钟 PLL模块:

(3).系统连线及引脚分配 qsf文件中的引脚分配: set_location_assignment PIN_AF21 -to sdram_addr[0] set_location_assignment PIN_AE20 -to sdram_addr[1] set_location_assignment PIN_AF20 -to sdram_addr[2] set_location_assignment PIN_AE19 -to sdram_addr[3] set_location_assignment PIN_B20 -to sdram_addr[4] set_location_assignment PIN_A21 -to sdram_addr[5] set_location_assignment PIN_B21 -to sdram_addr[6] set_location_assignment PIN_A22 -to sdram_addr[7] set_location_assignment PIN_B22 -to sdram_addr[8] set_location_assignment PIN_A23 -to sdram_addr[9] set_location_assignment PIN_AE21 -to sdram_addr[10] set_location_assignment PIN_B23 -to sdram_addr[11] set_location_assignment PIN_B24 -to sdram_addr[12] set_location_assignment PIN_AE22 -to sdram_ba[0]

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

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

Quartus II 实验报告

Quartus II 实验报告 时间:2014-12-21 地点:行政楼202机房指导老师:王本有 一、实验目的 1、熟悉Quartus II的软件的基本操作。 2、使用Quartus II软件绘制简单原理图电路。 3、使用Quartus II进行VHDL的组合逻辑电路设计。 二、实验内容 1、先打开Quartus II软件,点File菜单→new→Device Design File→ VHDL File,新建一个新的VHDL空白文件,在这个新弹出的空白窗口里输入一个四选一电路的VHDL程序,输入完毕后点击File菜单→Save as…,在弹出的窗口里选择一个纯英文路径,保存刚才写好的VHDL 文件,此处的VHDL文件里面电路的名字MUX41要与文件的保存名字一致,点击保存。然后会弹出一个Do you want to creat a new project with this file?的对话框,点击Yes按钮,会弹出新建工程页面。此处若要详细对芯片的选择进行设置可以点击Next逐步选择,也可直接选择Finish使用默认选项。点击Finish,完成新工程的创建。 编写好VHDL后,对VHDL进行编译,若有错误,可双击错误选项进行修改,通常只需修改第一项后继续编译,修改完成后如下图所示: 图01-01 四选一VHDL程序 程序编译完成没有出错后,就可以进行波形仿真。点击File菜单→new→Other Files→Vector Waveform File,新建一个波形仿真窗口,在新弹出来的窗口空白处点击鼠标右键,弹出一个菜单,选择Insert Node or Bus…选项,在弹出的窗口中选择Node Finder…,然后点击新窗口中的List按钮把VHDL中的引脚全部列出来,然后点击>>按钮把引脚导入到波形仿真窗口中,点击OK。此时波形仿真窗口出现多个引脚,点击保存将波形仿真也保存到刚才VHDL文件的相同路径下,名字也为MUX41,。 然后就可以对波形进行不同的时间段设置,设置好后运行,运行情况如下图所示:

QuartusII基本设计流程

第2章 Quartus Ⅱ应用向导 Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera 在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer

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实验报告

可编程逻辑器件FPGA实验一 组合逻辑电路设计 1、掌握中规模数字集成器件的逻辑功能及使用方法 2、熟悉组合逻辑电路的设计方法 3、了解数字可编程器件的应用设计 4、学会QUARTUS软件的基本使用方法 二.实验器材 1、软件:QUARTUSII 2、硬件:DE-2实验板,PC机 三.实验原理 利用74283芯片进行加减法运算,(M控制加减法,结果为负数时CO和M的异或输出为1,接二极管亮)并再利用另外一个74283芯片将运算得到的补码输出转换为原码。 接着利用7485数据比较器进行数据比较(与9比较),当输出小于9时,利用7485 的AGBO的输出为低电平控制十位输出为0,并控制个位输出为原码输出减0的结果;当输出大于9时AGBO输出为高电平,其可控制十位输出为1,个位输出为原码输出减10的结果。最后十位输出和个位均接7447进行显示。 四.实验内容 1、设计一个两组四位二进制数的加减运算显示电路。要求:一个控制加减运算的功能按键; 两数相加的绝对值不大于15;用两个七段数码管显示算术运算结果(0~15);当运算结果为负数时,红色发光二极管亮。 在QUARTUSII中进行: (1)电路设计 (2)功能仿真

(3)时序仿真 五.实验总结

1、实验故障及解决方法 ①电脑无法连接DE-2板可能是数据线的问题。 ②DE-2板无法使用更换DE-2板。 ③输出结果不对仔细检查并修改电路设计,必要时寻求同学或老师的帮助。 2、实验体会 完成实验的重点是理解实验内容要求,并通过对quartus ii 的学习,根据自己思路自行设计或者和同学共同设计电路原理图。 六.思考题 1、当运算结果大于15时,显示译码电路如何设计? 可以将运算结果输出用7485与15比较,把AGBO输出加非门后再与VCC与门输入两个数码管的BIN端。当结果大于15时,两个数码管全灭,结果小于等于15时,不受影响。2、如何实现两个一位十进制数的加减运算电路? 讲十进制转化为四位二进制就可以用上述电路原理图进行加减法运算。

(完整版)基于QuartusII的数字电路仿真实验报告手册

数字电路仿真实验报告 班级通信二班姓名:孔晓悦学号:10082207 作业完成后,以班级为单位,班长或课代表收集齐电子版实验报告,统一提交. 文件命名规则如“通1_王五_学号” 一、实验目的 1. 熟悉译码器、数据选择器、计数器等中规模数字集成电路(MSI)的逻辑功能及其使 用方法。 2. 掌握用中规模继承电路构成逻辑电路的设计方法。 3. 了解EDA软件平台Quartus II的使用方法及主要功能。 二、预习要求 1. 复习数据选择器、译码器、计数器等数字集成器件的工作原理。 2. 熟悉所有器件74LS153、74LS138、74LS161的功能及外引线排列。 3.完成本实验规定的逻辑电路设计项目,并画出接线图,列出有关的真值表。 三、实验基本原理 1.译码器 译码器的逻辑功能是将每个输入的二进制代码译成对应的高、低电平信号。译码器按功能可分为两大类,即通用译码器和显示译码器。通用译码器又包括变量译码器和代码变换译码器。 变量译码器是一种完全译码器,它将一系列输入代码转换成预知一一对应的有效信号。 这种译码器可称为唯一地址译码器。如3线—8线、4线—16线译码器等。 显示译码器用来将数字或文字、符号的代码译成相应的数字、文字、符号的电路。如BCD-七段显示译码器等。 2.数据选择器 数据选择器也陈伟多路选择器或多路开关,其基本功能是:在选择输入(又称地址输入)信号的控制下,从多路输入数据中选择某一路数据作为输出。因此,数据选择器实现的是时分多路输入电路中发送端电子开关的功能,故又称为复用器。一般数据选择器有n 个地址输入端,2n错误!未找到引用源。个数据输入端,一个数据输出端或反码数据输出端,同时还有选通端。目前常用的数据选择器有2选1、4选1、8选1、16选1等多种类型。 3.计数器 计数器是一个庸医实现技术功能的时序部件,它不仅可以用来对脉冲计数,还常用作数字系统的定时、分频、执行数字运算以及其他一些特定的逻辑功能。 74LS161是4位同步二进制计数器,它除了具有二进制加法计数功能外,还具有预置数、保质和异步置零等附加功能。 四、实验内容

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

EDA实验报告(quartus2仿真)

EDA 设计(Ⅱ) 学号: 姓名: 院系: 指导:谭雪琴 时间:2011年4月8日

目录 1.引言 (03) 2.正文 (03) 2.1.设计要求 (03) 2.2.整体电路工作原理 (04) 2.3.子模块设计原理与仿真 (04) 2.3.1.脉冲发生电路 (04) 2.3.2.计时电路 (07) 2.3.3.译码显示电路 (10) 2.3.4.报时电路 (15) 2.3.5.校时、保持以及清零电路 (16) 2.3.6.总功能电路连接 (20) 2.4.整体电路下载 (21) 2.5.扩展闹铃功能设计 (21) 2.5.1.闹铃时间设定功能 (21) 2.5.2.闹铃显示功能 (22) 2.5.3.闹铃响铃功能 (23) 2.5.4.闹铃总电路连接 (24) 3.结论 (25) 4.致谢 (26) 5.参考资料 (26)

多功能数字钟设计 (南京理工大学) 摘要:本文详细介绍了多功能数字钟的工作原理及设计过程。首先利用 quartus2软件,采用模块化设计方法,分别设计分频器、模计数器、动态显示电路、清零校时电路和报时电路等功能模块,然后观察仿真波形,确认功能实现后进行封装与调用。最后将各功能模块整合起来构成整体电路,仿真和调试通过后下载到EDA实验箱,观察实际运行结果。此外,本文还描述了附加闹铃功能的设计过程,并记述了实验过程中出现的一些问题及解决方案,以及对这次设计的一些经验教训的反思。 关键词:数字钟;校时报时;闹铃;动态显示;消颤;仿真;下载1、引言 该数字钟功能丰富、操作简单,可使人们方便的获取时间信息及相关提醒,在实际生活中广泛应用,具有显著的实用价值。其构成虽较简单,但融合了组合逻辑电路和时序逻辑电路,包括了分频器、计数器、数据选择器、编码器译码器以及锁存器等几乎所有数字逻辑电路的所学内容,是理论联系实际,提高知识技能的绝佳途径。 2、正文 2.1 设计要求 利用quartus2软件设计一个数字钟,并下载到EDA实验系统中。要求可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时(当时钟计到59’53”时开始报时,在59’53”, 59’55”,59’57”时报时频率为512HZ,59’59”时报时频率为1KHZ)等功能。此外,还可以设计闹铃功能或自行添加其他功能。 基本设计要求为: 1、能进行正常的时、分、秒计时功能; 2、分别由六个数码管显示时分秒的计时; 3、 K1是系统的使能开关(K1=0正常工作,K1=1时钟保持不变); 4、 K2是系统的清零开关(K2=0正常工作,K2=1时钟的分、秒全清零); 5、 K3是系统的校分开关(K3=0正常工作,K3=1时可以快速校分); 6、 K4是系统的校时开关(K4=0正常工作,K4=1时可以快速校时);

8位ALU (quartus2设计 & 设计报告)

8位ALU 内容:1)本设计要求该处理器的数据宽度是8bit,可以实现算术加法、算术减法、逻辑与、逻辑或、逻辑非、逻辑与非、逻辑或非和逻辑异或等8 种运算。 2)用选择端Choice[3..0]选择8种运算,2个操作数分别是A[3..0]和B[3..0],运算结果是S[3..0]以及标志位OV(OverFlow)和Cout; 并定义当选择端为000为算术加法、001为算术减法、010为逻辑与、011为逻辑或、100为逻辑非(只对数据A求非)、101为逻辑与非、 110为逻辑或非、111为逻辑异或。 3)整个ALU的设计上均采用补码形式输入和输出,其中第一位为符号位。 4)使用DE-2板上的3个拨码开关要来设置当前ALU的运算功能,再由8个拨码开关给定数据A和数据B,由一个按键手动提供脉冲。 该设计的顶层模块图如下页所示: 设计说明:本设计共有6个模块组成,包括: 1)脉冲输出器,计数依次产生四个脉冲到各个部件; 2)寄存器A,第一个脉冲来时锁存数据A; 3)寄存器B,第二个脉冲来时锁存数据B; 4)8位ALU,由两个4位ALU组成;第三个脉冲来时进行运算; 5)寄存器S,第四个脉冲来时锁存结果S; 6)结果显示器,将结果显示在DE2板上。

其中右上角的test[7..0]输出端是为了仿真方便看结果。 对其进行时序仿真,其中各引脚含义如下: KEY[0] 即一脉冲按键,用于手动给脉冲,在此给一个60ns的时钟脉冲; SW[7..0] 即给定数据A和数据B,第一个脉冲给数据A,第二个脉冲给数据B; choice[3..0] 功能选择端;

LEDR[17] 如上图可知其为进位输出端; LEDR[10] 如上图可知其为溢出输出端; test[7..0] 结果输出端; 时序仿真图如下图一所示:(加法) 图一 现对前四个脉冲进行分析: 第一个脉冲,锁存数据A,由图的SW可知A=0; 第二个脉冲,锁存数据B,由图的SW可知B=1; 第三个脉冲,进行运算 第四个脉冲,锁存结果,由图的test可知S=1 之后的原理同上。 下面给出8位ALU的设计图: 设计说明: 1)其中输出端sub_in当加减模块,且做减法时为高(数据B取非后的加1); 2)其主要由两个4位的ALU串联而成。

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

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

计算机组成原理 实验一 熟悉实验环境(Quartus Ⅱ) 实验报告

大学实验报告成绩 课程名称计算机组成原理指导教师实验日期 2020 院(系) 计算机学院专业班级实验地点 学生姓名学号同组人 实验项目名称实验一熟悉实验环境 一、实验目的和要求 实验目的: 1. 熟悉 QuartusII 环境; 2. 学习在 QuartusII 中新建项目、文件、编译、仿真。 3. 学习使用组成原理实验箱运行 QuartusII 的项目。 实验要求: 1.学习 Quartus II 软件的使用方法。 2. 熟悉实验箱,掌握EDA设计的原理。 二、实验原理 根据指导书第一章熟悉实验软硬件环境,完成反相器或异或门设计。 三、主要仪器设备 1. 操作系统为WINDOWS的计算机一台; 2. 数字逻辑与计算机组成原理实验箱一台; 四、实验方法与步骤 首先进入 QuartusII软件 1.1.1 建立新项目 QuartusⅡ软件的工作对象是项目,一个项目(Project)是一个系统设计的 总和,包含了所有的子设计文件和设计项目中的所有辅助文件,所以在进行一个 逻辑设计时,首先要指定该设计的项目名称,对于每个新的项目应该建立一个单 独的子目录,以后所有与该项目有关的文件都将存在这个子目录下。

大学实验报告(附页) 1.1.2 建立原理图文件 1. 打开原理图编辑器。在图中,单击“File”菜单→单击 New 选项(快捷键:Ctrl+N),弹出如图所示对话框。在该对话框中,双击“Block Diagram/Schematic File”选项,打开原理图编辑器。 大学实验报告(附页)

2. 添加元件。 (1)在上图中,双击图形编辑窗的空白处,弹出如下图所示窗口。

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Ⅱ入门实验报告

实验二QuartusⅡ入门 实验目的 1、学习QuartusⅡ软件的使用方法并熟练运用。 2、根据实验参考内容,用给出的原理图输入方法实验一位全加器。用QuartusⅡ波形 仿真验证并下载到DE0开发板验证。 3、根据实验参考内容,用74138 3-8译码器和7400与非门,设计原理图,实验一位全 减器。用QuartusⅡ波形仿真验证并下载到DE0开发板验证。 实验装置及所用软件 DE0多媒体开发平台、QuartusⅡ软件、计算机 实验内容 1、根据全加器功能表设计原理电路图。如下:

2、启动QuartusⅡ软件,创建工程项目并创建原理图文件。然后绘制出原理电路图。 原理图绘制完成后编译程序并进行仿真。仿真完成后下载到DE0开发板进行逻辑功能测试。 3、设计一位全减器:根据功能表,用72138译码器和7400与非门设计原理电路图。 然后按照以上步骤实现一位全减器,用QuartusⅡ进行波形仿真,并下载到DE0开发板进行验证。功能表和电路图如下:

实验结果 1、一位全加器 实验原理图如下: 仿真结果如下: 仿真完成后,下载到DE0开发板,对照功能表,拨动开关验证无误。 2、一位全减器 实验原理图如下: 仿真结果如下: 仿真完成后,下载到DE0开发板,对照功能表,拨动开关,验证无误。

注意事项 1、创建工程项目时,顶层实体名与项目名应保持一致,避免仿真时出现错误。 2、波形仿真时,波形文件的文件名和仿真的实体名应保持一致。 3、在顶层文件设计并验证完成后,下载到DE0开发板之前,一定要先对目标文件进行 引脚设置。 4、重新打开文件时,要下载到DE0开发板验证前,要重新编译程序

QuartusII操作入门全加器设计

Q u a r t u s I I操作入门全 加器设计 Newly compiled on November 23, 2020

实验1 QuartusII操作入门——全加器设计 友情提示: 实验做完后请保存到您的U盘中,以便后续实验要用。另外,请保存实验报告 中要用到的屏幕截图。 1.1 实验目的 熟悉使用QuartusII的基本操作方法,利用原理图输入设计方法设计1位全加器。1.2 实验内容 1位全加器原理如图1(A)所示,图1(B)是其逻辑符号图。 图1(A)原理图图1(B)符号图按照QuartusII基于逻辑符号图的设计方法,完成图1(A)的输入、编译、波形仿真。 1.3实验步骤: (1)启动QuartusII,为本设计建立一个工程的框架。 ?在QuartusII中,任何一项设计任务都是一项工程(PROJECT)。点击“File / New Project Wizard”,弹出如下图对话框。点击“Next”…… ?接着,弹出如下图对话框。 ?在第一栏(工程的工作路径)中,输入一个路径及文件夹名。本工程产生 的各种设计文件将存放在该文件夹下。注意,不要用中文作路径名和工程 名。 ?在工程名称一栏中,输入工程名称。此处将其命名为Fulladd。 ?在工程的顶层设计名一栏中输入顶层设计名。注意,顶层设计名要与工程 名相同。

?点击“Finish”,完成建立工程的框架。如果你输入的工作路径不存在,将弹出对话框,询问是否创建此工作路径。点击“是”即可。 (2)在工程中加入顶层设计文件。一个工程必须有一个顶层设计,在顶层设计中可以调用底层设计,从而形成一种逐层调用的层次结构。 点击“File/New”,弹出对话框。选择“Block Diagram/Schematic File”,点击“OK”,于是新建了一个图形文件,其临时名称为。 点击“File/Save as”,将其保存为“”,如下图所示。“”就是顶层设计文件。 (3)在“”中绘制逻辑原理图。 ?放置元件 以放置一个异或门为例,双击编辑区空白处,弹出如下对话框,在“Name”栏输 入xor ,点击“OK”。 ?连接导线:直接拖动鼠标即可将需要连接的端点连接起来。 按图1(A)原理图完成编辑,结果如下图。将其存盘。 (4)编译工程。点击对工程进行编译的快捷键“”,开始对工程进行编译。如果有错,则应根据错误报告的提示改正错误,再编译,直到无错。 (5)仿真 ?建立仿真需要的波形文件。选择菜单“FILE/NEW”,弹出如下对话框。按图选择, 并点击“OK”。结果打开波形编辑窗。它对应于波形文件,将其存盘为“”。注意,仿真波形文件的主名必须与工程名相同。 ?输入信号结点。

Quartus II实验报告

××××大学实验报告 自学院(系)专业班成绩评定 实验题目:第周星期 一、实验目的 1. 熟悉译码器、数据选择器、计数器等中规模数字集成电路(MSI)的逻辑功能及其使 用方法。 2. 掌握用中规模继承电路构成逻辑电路的设计方法。 3. 了解EDA软件平台Quartus II的使用方法及主要功能。 二、预习要求 1. 复习数据选择器、译码器、计数器等数字集成器件的工作原理。 2. 熟悉所有器件74LS153、74LS138、74LS161的功能及外引线排列。 3.完成本实验规定的逻辑电路设计项目,并画出接线图,列出有关的真值表。 三、实验基本原理 1.译码器 译码器的逻辑功能是将每个输入的二进制代码译成对应的高、低电平信号。译码器按功能可分为两大类,即通用译码器和显示译码器。通用译码器又包括变量译码器和代码变换译码器。 变量译码器是一种完全译码器,它将一系列输入代码转换成预知一一对应的有效信号。 这种译码器可称为唯一地址译码器。如3线—8线、4线—16线译码器等。 显示译码器用来将数字或文字、符号的代码译成相应的数字、文字、符号的电路。如BCD-七段显示译码器等。 2.数据选择器 数据选择器也陈伟多路选择器或多路开关,其基本功能是:在选择输入(又称地址输入)信号的控制下,从多路输入数据中选择某一路数据作为输出。因此,数据选择器实现的是时分多路输入电路中发送端电子开关的功能,故又称为复用器。一般数据选择器有n 个地址输入端,2n个数据输入端,一个数据输出端或反码数据输出端,同时还有选通端。 目前常用的数据选择器有2选1、4选1、8选1、16选1等多种类型。 3.计数器 计数器是一个庸医实现技术功能的时序部件,它不仅可以用来对脉冲计数,还常用作数字系统的定时、分频、执行数字运算以及其他一些特定的逻辑功能。 74LS161是4位同步二进制计数器,它除了具有二进制加法计数功能外,还具有预置数、保质和异步置零等附加功能。

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