实验一 Quartus II使用与基本逻辑电路的设计

更新时间:2024-07-04 17:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验一 Quartus II使用与基本逻辑电路的设计

[实验目的]

1、熟悉Quartus II的文本输入方式, 掌握其编辑、编译综合、仿真的操作方法; 2、学习Quartus II环境下的编程下载及硬件测试方法; 3、学习应用QuartusII完成基本时序电路设计; 4、应用QuartusII完成基本组合电路的设计。* [实验仪器]

PC机 、 EDA实验箱 一台 Quartus II 6.0软件

[实验内容]

(1) 实验内容1:在QuartusⅡ上输入该设计的文本,并进行编辑、编译、综合、适配、仿真。说明设计中各语句的作用,详细描述设计的功能特点,给出其所有信号的时序仿真波形。

(2) 实验内容2:引脚锁定以及硬件下载测试。引脚锁定后进行编译、下载和硬件测试实验。将实验过程和实验结果写进实验报告。

* (3) 实验内容3:使用SignalTap II对此计数器进行实时测试,流程与要求参考4.3节。 * (4) 实验内容4:从设计中去除SignalTap II,要求全程编译后生成用于配置器件EPCS1编程的压缩POF文件,并使用ByteBlasterII,通过AS模式对实验板上的EPCS1进行编程,最后进行验证。

*(5) 实验内容5:为此项设计加入一个可用于SignalTap II采样的独立的时钟输入端(采用时钟选择clock0=12MHz,计数器时钟CLK分别选择256Hz、16384Hz、6MHz),并进行实时测试。 [实验原理]

数字逻辑电路中,根据逻辑功能的不同特点,可以把数字逻辑电路分成组合逻辑电路和时序逻辑电路两大类用。在组合逻辑电路中,任意时刻的输出仅仅取决于该时刻的输入,与电路的原来状态无关;在时序逻辑电路中,任一时刻的输出信号不仅取决于当时的输入信号,而且还取决于电路原来的状态,也就是与电路原来的状态有关。在数字系统中使用的最多的时序电路要算是计数器了。计数器应用非常广泛,可以以用于对时钟脉冲的计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列等。在一些测试设备中也有很重要的作用。计数器是数字系统中的重要组成部分,本实验拟设计一个同步加计数的十进制计数器。要求设计具有如下功能:1、有同步时钟使能(即只有在使能信号作用下才允许计数),2、异步清0(只要清零信号有效则计数器变为全0)功能。 [实验步骤]

一、建立设计项目文件夹并编辑文本文件

建立和编辑一个图形文件,是数字系统或数字逻辑电路设计的第一步,该软件运行在Windows NT或Windows XP环境下。 1、 建立工作库文件夹

首先利用Windows资源管理器在D盘新建一个文件夹,存放EDA实验的所有项目,可以取名为EDA,并在此文件夹中再建一个文件夹,作为第一次实验的项目文件夹,取名为cnt10b,(自建文件夹名由设计者自定义)。 注意:文件夹名不能用中文,也最好不要用数字。本次实验建立的项目文件夹为:d:\\EDA\\cnt10b。然后点击Windows桌面上的图标 ,进入Quartus II设计环境。 2、 编辑VHDL文本

① 打开Quartus II,选择菜单File→New。在New窗口中的Device Design Files中选择硬

件设计文件类型为VHDLFile,单击OK按钮后进入Quartus II文本编辑窗口。

图1-1 选择编辑文件的语言类型,键入源程序并存盘

3、 建立新工程项目

如果选“是”则直接进入以刚保存的文件名为实体的创建工程流程;如在前一步操作中选择“否”的话,可按下面的操作建立新工程项目。建立工程项目包括工程名、目标器件、综合器、仿真器等的设置。

(1) 在Quartus II主窗口,选择菜单File→New Project Wizard命令,即弹出New Project Wizard:Introduction窗口,点击Next按钮进入“工程设置”对话框(见图1-2),第一栏表示工程所在的工作库文件夹;第二栏表示此项工程的工程名,直接用顶层文本文件文件为工程名。本次实验将CNT10b作为工程名。第三栏是当前工程文件的文件名。也可单击对话框右侧的“?”按钮,选中已存盘的文件填入。单击下方的Next按钮。进入下一级设置。

图1-2 建立新工程项目

(2) 在弹出的Add File对话框中(见图1.3)加入需编译的工程文件,此工程文件加入的方

法有两种:单击Add All按钮,将设定的工程目录中的相关文件(.bdf, .vhd等设计源文件)加入到工程文件栏中;第二种方法是:单击Add?按钮,从工程目录中选择需加入该工程项目中的设计文件。

图1.3 将所有相关的文件都加入进此工程 (如果有)

(3) 选择目标芯片。单击Next按钮,选择目标芯片(见图1.4)。首先在Family栏选择

ACEX1K系列,然后选择此系列的具体芯片:EP1K30TC144-3。

图1.4 选择EP1K30TC144-3目标芯片设置窗口

(4) 工具设置。单击当前对话框中的Next按钮,在弹出的EDA工具设置窗口(EDA Tool

Settings),此窗口有三个选择项,将这三个选择项都设置为默认”NONE”即不选(不打钩),表示选Quartus II中自带的所有设计工具(若在相关选项前打钩表示要选用第三方工具,需要安装相关工具软件并有合法授权方可以使用)。

(5) 结束设置。再单击Next按钮后即弹出“工程设置统计”窗口,上面列出了与该工程相

关的设置情况。最后按Finish按钮,此工程设计完毕。在左边的Compilation Hierarchies窗口将显示本工程项目的层次结构和各层次的实体名等。

二、 编译综合

选择主窗口的Processing菜单→Start Compilation项,启动全程编译。注意观察工程管理窗口下方的Processing处理栏中的编译信息,双击该栏中的错误提示行,在弹出的VHDL文件中加以修改,反复如此,直到编译成功为止。

编译成功后,可以见到工程管理窗的左上角显示了工程的层次结构等,在此栏下是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析等;最下栏是编译处理信息中栏(Compilation Report栏)是编译报告项目选择菜单,单击其中各项可以仔细了解编译与分析结果。 三、时序仿真

工程编译通过后,必须对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。

1 打开波形编辑器。点击菜单File→New项,在New窗口中Other Files中的 Vector

Waveform File,单击OK按钮,即出现空白的波形编辑器,扩大此窗口,以利观察。 2 设置仿真时间区域(图1.7)。点击Edit→End Time项, 在弹出的窗口中的Time栏处输入整个仿真域 的时间,通常设置的时间范围在数十微秒间, 本次实验设置结束时间为2us。单击OK按钮,

结束设置。

图1.7

3 将工程项目的端口信号节点选入波形编辑器中。

(1) 选择View菜单→Utility Windows→Node Finder选项。在弹出的Node Finder框内选

Pins: all(通常已默认此项),然后单击List按钮,于是在下方的Node Found窗口中出现设计工程的所有端口引脚名。

(2) 移动鼠标光标将10进制计数器的时钟输入信号clk和输出信号Q拖至波形编辑器内,

方法:将鼠标光标移到clk信号行点击鼠标左键,使该行变色,再将光标移到Q信号行,按住键盘的shift键点击鼠标左键这两个信号所在行都变色,然后将鼠标点住这两个信号的前端不放将这两个信号拖至波形编辑器窗口(也可以将信号逐个拖入波形编辑窗口),关闭Node Finder窗口,单击波形窗口左侧的“全屏显示”图标,然后点击“放大缩小”图标,将鼠标移到波形编辑区域(点击鼠标左键为放大,右键为缩小)调整到适当位置。 4 激励信号的设置。

将鼠标的光标移到需设置的信号上,单击该行使之变色,再进行激励信号设置,对常用的激励信号设置键介绍如下: 点击点击

图标,在弹出的clock窗口的Time Period栏设置clk的时间周期为100ns; 图标,在弹出的Count Value窗口的Radix栏内首先选择十六进制数Hexadecimal表

达方式,然后点击Timing命令进入Timing窗口,在Count every栏内输入100ns, 即计数时间为每100ns一次,点击OK按键退出。

注:也可以在波形编辑窗口,选择”CLK”或”Q”信号,使其行变色,然后点击鼠标右键,在弹出的菜单栏中选择Value项 (Value项包含有多种激励信号设置方法), 再在下级菜单中选择Clock或Count Value命令进行激励设置(这种方法与上面的方法是等同的)。 5 波形文件存盘。选择File→SaveAs项,以默认名为波形文件存入己建立的工程文件夹中。

6 仿真器参数设置。选择执行的仿真类型、仿真所需的时间周期、向量激励源以及其他仿真选项。具体步骤如下:

选择菜单Assignment→ Settings,在Settings窗口中(见图1.8)

图1.8 仿真设置

图1.8 (1) 选择Category →Simulator Settings,在Simulation mode栏内选择Timing ,即进行

时序仿真;

(2) 在Simulation input栏内输入仿真激励文件名.vwf文件,我们在此输入CNT10.vwf; (3) 在simulation period栏,选中 Run simulation until all vector stimuli are used ,进行全

程仿真;

(4) 选定 Simulation coverage reporting项,同时也选定毛刺检测 Glitch detection 项,并

设定宽度为1ns;

7 启动仿真器。设置完毕后,点击主菜单Processin →Start Simulation项开始仿真,直至出

现Simulation was successful消息框时,仿真结束。

8 观察仿真结果。仿真结束后会自动弹出“Simulation Report”仿真波形文件,该文件中

包括波形编辑文件(*.vwf)和波形仿真报告文件。

注意:Quartus II中的波形图文件(该文件应是未仿真过但激励信号已设置的波形文件)与最后出现的波形图是两个不同的文件(这是仿真报告及已仿真的波形文件)。 四、观察RTL电路图

QuartusII 可实现硬件描述语言或网表文件 (VHDL、Verilog、BDF、TDF、EDIF、VQM) 对应 的RTL电路图的生成, 其操作方法: 选中Tools→ Netlist Viewers项, 在出现的下拉菜单中选择 “RTL Viewer HDL”项。选择 RTL Viewer, 可以打开工程的RTL电路图。双击图形中有关模块, 或选择左侧各项,可逐层了解各层次的电路结构。

图1.9 CNT10的RTL电路图

对于较复杂的RTL电路,可利用功能过滤器Filter Destinations,由此产生相应的简化电路。 五、 引脚锁定设置和下载文件生成

为了能对10进制计数器进行硬件测试,应将其输入、输出信号锁定在芯片确定的引脚上,编译后生成的下载文件中就含有引脚锁定设置信息。引脚锁定:

1 打开需下载的工程项目管理器,并打开该工程项目管理器中已设计好的工程文件; 2 选择Assignment菜单中的Assignment Editor项,进入Assignment Editor编辑窗口。

在Category栏中选择Pin,或直接单击右上侧的Pin按钮(见);

3 双击TO栏的《new》,在出现的下拉栏中分别选择本工程要锁定的端口信号名;然后

双击对应的Location栏的《new》,在出现的下拉菜单栏中选择对应端口信号名的器件引脚号(按图1.10设置)。

4 最后点击File→Save存储这些引脚锁定的信息,并且启动Start Compilation再编译一

次,才能将引脚锁定信息编译进编程下载文件CNT10.sof中。

图1.10 Assignment Editor编辑器及引脚锁定对话框

图1.10 六、配置文件配置下载至FPGA中,并进行硬件测试

将编译产生的SOF格式配置文件配置进FPGA中,并进行硬件测试的步骤如下: 1 打开编程窗口和配置文件。首先将实验系统和并口通信线连好,打开电源。

在菜单Tool中选择Programmer项,在弹出的编程窗口(见图1.11)的Mode栏中选择:选JTAG();单击左侧Add File按钮,手动选择扩展名为CNT10.sof的配置文件(d:\\EDA\\cnt10b \\cnt10.sof)。并选中下载文件右侧的第一小方框(在该框内打钩)。

图1.11 选择编程下载文件

2 选择编程器

点击Tool→Programmer后,窗口第一行的第二项(见图1.11)显示ByteBlasterMV[LPT1]。 3 设置编程器 若是初次安装的QuartusII,在编程前必须进行编程器选择操作。

Hardware Setup可设置下载接口方式,这里选择Byte BlasterMV[LPT1]。方法:单击编程窗左上角的Hardware Setup按钮(见图1.11),即弹出Hardware Setup 对话框(见图1.12);选择此框的Hardware settings页,双击此页中的选项ByteBlasterMV或ByteBlasterII,再单击Close按钮,关闭对话框即可。

图1.12 加入编程下载方式 图1.13 双击选中的编程方式

如果打开图1.12所示的窗口,在Currently selected hardware 栏显示No Hardware,则必须加入下载方式。即单击 Add Hardware 按钮,在弹出的窗口中单击OK,再在图1.3所示的窗口双击 ByteBlasterMV,使Currently selected hardware栏显示ByteBlasterMV[LP1]。

4 十芯编程线一端接EDA实验箱适配板上的JTAG插口, 另一端接实验箱主板上的ByteBlasterMV口。 5 文件下载

检查以上连接无误后, 单击下载标符Start按钮,即进入对目标器件下载操作。当Progress显示出100%,以及在底部的处理栏中出现“Configuration Succeeded”时,表示编程成功。 5 硬件测试,

实验系统GW48-PK2TM选择电路模式No.7,10进制计数器的时钟CLK接键1(单脉冲输入键),Q0~Q7顺序接发光二极管D8~D1。测试初始状态D8亮D7~D1暗,键1每按一次亮管顺序右移一位,周而复始直至回到初始态。

六、完成了上述实验步骤后,有时间的同学设计一个4选1选择器,并下载到实验箱上验证。 [实验报告要求]

1总结Quartus II 6.0的文本文件设计流程(包括编辑、编译综合、仿真、引脚锁定、下载文件生成、下载及硬件测试)。

2 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试实验结果写进实验报告。 思考:1、本设计中复位功能的实现是否依赖时钟信号?

2、在设计中是否可以不定义信号 CQI,而直接用输出端口信号完成加法运算,即: CQ <= CQ + 1?为什么? [参考设计文本描述]

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS

PORT (CLK,RST,EN : IN STD_LOGIC;

CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);

COUT : OUT STD_LOGIC );

END CNT10;

ARCHITECTURE behav OF CNT10 IS BEGIN

PROCESS(CLK, RST, EN)

VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN

IF RST = '1' THEN CQI := (OTHERS =>'0') ; --计数器异步复位 ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿

IF EN = '1' THEN --检测是否允许计数(同步使能)

IF CQI < 9 THEN CQI := CQI + 1; --允许计数, 检测是否小于9 ELSE CQI := (OTHERS =>'0'); --大于9,计数值清零 END IF; END IF; END IF;

IF CQI = 9 THEN COUT <= '1'; --计数大于9,输出进位信号 ELSE COUT <= '0'; END IF;

CQ <= CQI; --将计数值向端口输出 END PROCESS;

END behav;

本文来源:https://www.bwwdw.com/article/pxl.html

Top