SOPC Quartus Ⅱ作业
QuartusII操作指南
6.3 Quartus II操作指南6.3.1简介Altera技术领先的Quartus II设计软件配合一系列可供客户选择的IP核,可使设计人员在开发和推出FPGA、CPLD和结构化ASIC设计的同时,获得无与伦比的设计性能、一流的易用性以及最短的市场推出时间。
这是设计人员首次将FPGA移植到结构化ASIC 中,能够对移植以后的性能和功耗进行准确的估算。
Quartus II软件支持VHDL和Verilog硬件描述语言(HDL)的设计输入、基于图形的设计输入方式以及集成系统级设计工具。
Quartus II软件可以将设计、综合、布局和布线以及系统的验证全部都整合到一个无缝的环境之中,其中还包括和第三方EDA工具的接口。
Quartus II的主要特性有:<1>基于模块的设计方法提供工作效率<2>更快集成IP<3>在设计周期的早期对I/0引脚进行分配和确认<4>存储器编译器<5>支持CPLD、FPGA和基于HardCopy 的ASIC<6>使用全新的命令行和脚本功能自动化设计流程<7>高级教程帮助深入了解Quartus II的功能特性。
Altera公司的Quartus II软件提供了可编程片上系统(SOPC)设计的一个综合开发环境,是进行SOPC设计的基础。
Quartus II集成环境包括以下内容:系统级设计,嵌入式软件开发,可编程逻辑器件(PLD)设计,综合,布局和布线,验证和仿真。
Quartus II设计软件根据设计者需要提供了一个完整的多平台开发环境,它包括整个FPGA和CPLD设计阶段的解决方案。
有关Quartus II的典型设计流程如图6-43所示。
1图6-43 Quartus II的典型设计流程此外,Quartus II软件为设计流程的每个阶段提供了Quartus II图形用户界面、EDA 工具界面和命令行界面。
QuartusII软件使用及设计流程
Quartus II 设计流程
一、 设计输入
1.建立工程Project
任何一项设计都是一项工程(Project),都必须首先为 此工程建立一个放置与此工程相关的所有设计文件的文件 夹。此文件夹将被EDA软件默认为工作库(Work Library)。一般,不同的设计项目最好放在不同的文件夹 中,而同一工程的所有文件都必须放在同一文件夹中。
(2)选择元件。在原理图编辑窗中的任何一个位置上双
击鼠标的左键将跳出一个元件选择窗。
参数可设置的强函数元件库
MAX+plus库
基本逻辑元件库
基本逻辑元件库中的元件
由此输入所需要的元件名
(3)连接各元器件并命名。
在图1-39中,将光标移到input右侧,待变成十字形光标 时,按下鼠标左键(或选中工具栏中的 工具,光标自动 会变成十字形的连线状态),再将光标移动到异或门的左 侧,待连接点上出现蓝色的小方块后释放鼠标左键,即可 看到input和异或门之间有一条连线生成。 重复上面的方法将1-39图中各种符号连接起来,如图1-40 所示。
(4)第三方工 具选择。 如图1-7所示ቤተ መጻሕፍቲ ባይዱ 用户可以选择所 用到的第三方工 具,比如 ModleSim、 Synplify等。在 本例中并没有调 用第三方工具, 可以都不选.
(5)确认信息对话框。 图1-8所示。建立的工程的名称、选择的器件和 选择的第三方工具等信息,如果无误的话就可 以单击“Finish”按钮,弹出如图1-9所示的窗口, 在资源管理窗口可以看到新建的工程名称 half_add。
(1)打开建立新工程管理窗。选择菜单File→New Preject Wizard 命令,即弹出“工程设置”对话框(图1-3),以 此来建立新的工程。
QuartusII实验过程示范
QuartusII实验过程⽰范实验⼆⼗进制计数器实验该实验将使⽤Verilog 硬件描述语⾔在DE2-70 开发平台上设计⼀个基本时序逻辑电路——1 位⼗进制计数器。
通过这个实验,读者可以了解使⽤Quartus ⼯具设计硬件的基本流程以及使⽤Quartus II 内置的⼯具进⾏仿真的基本⽅法和使⽤SignalTap II 实际观察电路运⾏输出情况。
SignalTap II 是Quartus ⼯具的⼀个组件,是⼀个⽚上的逻辑分析仪,可以通过JTAG 电缆将电路运⾏的实际输出传回Quartus 进⾏观察,从⽽省去了外界逻辑分析仪时的很多⿇烦。
实验步骤3.1建⽴⼯程并完成硬件描述设计1. 打开Quartus II ⼯作环境,如图3-1 所⽰。
图3-1 Quartus II⼯作环境界⾯2. 点击菜单项File->New Project Wizard 帮助新建⼯程。
参看图3-2。
图3-2 选择New Project Wizard打开Wizard 之后,界⾯如图3-3 所⽰。
点击Next,如图3-3。
第23 页共208 页图3-3 New Project Wizard界⾯3. 输⼊⼯程⼯作路径、⼯程⽂件名以及顶层实体名。
这次实验会帮助读者理解顶层实体名和⼯程名的关系,记住⽬前指定的⼯程名与顶层实体名都是Counter10,输⼊结束后,如图3-4 所⽰。
点击Next。
图3-4输⼊设计⼯程信息4. 添加设计⽂件。
界⾯如图3-5 所⽰。
如果⽤户之前已经有设计⽂件(⽐如.v ⽂件)。
那么再次添加相应⽂件,如果没有完成的设计⽂件,点击Next 之后添加并且编辑设计⽂件。
图3-5添加设计⽂件5. 选择设计所⽤器件。
由于本次实验使⽤Altera 公司提供的DE2-70 开发板,⽤户必须选择与DE2-70 开发板相对应的FPGA 器件型号。
在Family 菜单中选择Cyclone II,Package 选FBGA,Pin Count 选896,Speed grade 选6,确认Available devices 中选中EP2C70F896C6,如图3-6。
QuartusII软件操作教程
时单击next按钮,进入到最后的汇总窗口,单击finish返回
主界面。
Quartus II 软件操作
2. 使用电路图绘制工具产生设计输入
常用的设计输入方法包括使用电路图绘制工具 和使用VHDL代码。这里先说明使用电路图绘制工 具的输入方法。该工具称为模块编辑器(Block Editor)。
示例:对于逻辑函数
Quartus II 软件操作
第三步 对设计的电路进行仿真 Quartus II包含仿真工具,它 们用于仿真已设计电路的行为功能。 在电路仿真之前,必须先创建输入 波形文件。 1) 使用波形编辑器。 选择File/New命令,在弹出的对 话框中选择Vector Waveform File 选项,单击OK按钮。将文件 命名为example_schematic.vwf并保 存。
Quartus II 软件操作
一. 简介 Altera公司的Quartus II软件提供了可编程片上 系统(SOPC)设计的一个综合开发环境,是进 行SOPC设计的基础,Quartus II集成环境包括 1.系统级设计 2.嵌入式软件开发 3.可编程逻辑器件(PLD)设计 4.综合 5.布局和布线 6.验证和仿真
Quartus II 软件操作
使用Waveform Editing(波形编辑)工具,该工具位于竖 直工具栏内,其形状类似于分别指向左侧和右侧的箭头,也可 以改变输入波形。选择该工具的时候,如果原始波形对应的 值等于0,那么拖过后波形对应的值变为1,如果原始波形对 应的值等于1,那么拖过后波形对应的值变为0。
画出相应的电路图。
f x1 x2 x2 x3
Quartus II 软件操作
第一步 画电路图 在Quartus II 界面中,选择File/new命令,在弹出的窗 口中,选择Design Files中的Block Diagram/Schematic File选项并单击ok按钮。此操作打开了模块编辑器窗口。在 该窗口中画出电路图,可以产生设计中需要的模块图文件。 1)导入逻辑门符号。 双击模块编辑器的空白区域,或者选择Edit/insert symbol,或者在工具栏中单击与门符号,在左面的libraries 方框内,列出了Quartus II 提供的若干库。单击 c:\quartus\libraries旁边的“+”号,然后单击primitives 旁边的“+”号,最后单击logic旁边的“+”号,选中and2, 放置到模块编辑器窗口。用同样的方法再放置一个两输入与 门,一个非门,一个两输入或门。
QUARTUSII实验
在“Program Device”对话框 中,选择合适的编程文件和编 程方式,如JTAG或AS模式。
通过观察测试平台的输出结果 ,可以验证设计的正确性和实 际硬件性能。
04
Quartus II 实验内容
数字钟设计
总结词:通过 Quartus II 软件实现数字 钟设计,掌握数字钟的工作原理和实现 方法。
解决方案
首先,需要确保开发板与计算机连接正确。然后,根据 开发板的型号和Quartus II软件的版本,选择合适的配 置参数进行下载。
对 Quartus II 的建议和展望
优化软件界面和操作流程,提高用户 的使用体验。
期待Quartus II软件在未来能够提供 更多的高级功能和优化选项,以满足 更复杂的设计需求。
首先,需要仔细阅读编译错误提示,了解错误的具体原 因。然后,检查代码是否存在语法错误或逻辑错误,并 尝试修改代码以解决问题。
问题2
仿真结果与预期不一致,怎么办?
解决方案
首先,需要仔细检查代码是否存在逻辑错误或时序问题 。然后,调整仿真参数或修改代码以优化仿真结果。
问题3
如何将设计下载到FPGA开发板?
使用 Quartus II 软件 进行编译和仿真,确 保设计正确无误。
将设计下载到 FPGA 开发板,通过串口与 计算机或其他设备进 行数据交换。
05
Quartus II 实验总结
实验收获和体会
掌握Quartus II软件的基本操作
通过本次实验,我掌握了如何使用Quartus II软件进行FPGA设计,包括项目的新建、设 计输入、编译、仿真以及下载等步骤。
理解数字电路设计流程
通过实验,我深入理解了数字电路设计的整个流程,包括需求分析、设计、仿真、调试和 实现等环节。
Quartus II 8.0 SOPC实例讲解
在SOPC Builder主界面左侧组件列表中选中Interval Timer ,按鼠标右键,在弹出的菜单中选择Add New Interval Time,显示如图30所示的定时器配置界面。按照默认的设置。配置不作改变,即可生成一个初始周期为1ms的定时器,单击Finish按钮完成定时器的设置。
图1 sopc系统设计流程
2
用SOPC系统在DE2平台上实现一个计数器。先在DE2平台上建立SOPC系统的硬件,这个系统包括一个NIos II/s嵌入式处理器、存储器、一个JTAG UART及一个定时器,一个ID模块。另外,我们将加入一个自定义组件,实现对DE2平台上七段数码管的控制。
1.
启动Quartus II软件,用New>New Project Wizard…菜单在Quartus II中新建一个工程,本例中将工程的工作目录设定在G:\DE2,工程的名称为niosii,如图4所示,如果是希望使用自己已有的工程,则点击图4中所示的Using Existing Project Setting按钮,,但是在本例中不需要添加已有工程的配置。按下next后,器件中选择EP2C35F672C6,向导完成后的汇总界面如图8所示。
图24
图25
图26
图27
6.
在SOPC Builder主界面左侧的组件列表中,选择JTAG UART,按鼠标右键,在弹出的菜单中选择Add New JTAG UART,显示如图28所示的JTAG UART配置界面。按照默认设置,配置不作改变,单击Finish按钮完成JTAGUART的设置。
图28
图29
图13
图14
图15
4.
在SOPC Builder左侧的组件列表中,选择Nios II Processor,,按鼠标右键,在弹出的菜单中选择Add New Nios II Processor,显示如图17所示的Nios II处理器的配置界面。选择Nios II/s作为本设计的处理器,从界面上可以看到,Nios II/s占用约1200~1400个逻辑单元,2个M4K RAM块。由于可以添加指令缓存,缓存需要占用额外的M4K RAM块,因此Nios II/s比Nios II/e相比,增加了指令缓存、分支预测、硬件乘法器及硬件除法器。Nios II/s的最好性能可达25MIPS.
实验一 Quartus II的使用1
实验一、Quartus II的使用一、实验目的:(1)熟悉Quartus II开发环境的使用(2)掌握利用Quartus II进行简单数字电路设计的基本流程及方法(3)掌握Quartus II开发环境中建立电路图的方法(4)了解Quartus II下简单设置输入激励的方法二、实验步骤下面以1位全加器为例介绍如何使用Altera Quartus II设计软件来对可编程逻辑器件进行编程。
(1)双击桌面上Quartus II 图标,运行Quartus II 软件,如图所示:图1 Quartus II 软件界面(2)建立工程。
选择菜单File→New Project Wizard,如图2所示图2 选择建立新工程向导菜单项单击菜单项New Project Wizard 后,出现向导提示框,单击按钮Next,出现如图3所示New Project Wizard 对话框界面,在该界面中输入相应工程名称和存放路径,然后单击按钮Next。
图3 New Project Wizard对话框界面出现如图4所示的Add Files 对话框界面,在File name 栏中输入文件名称,如“Adder”。
图4 Add Files对话框界面出现如图 5 所示的器件设置对话框界面,实验系统使用的是MAXII 系列的EPM1270T144C5 芯片,找到该器件后选中它,然后一直单击按钮Next,完成新工程的建立图5 器件设置对话框界面(3)新建设计文件建立新工程后,选择菜单File→New,弹出如图6 所示的新建设计文件选择窗口。
选择框中的Device Design Files 页下的项目Block Diagram/Schematic File,使用图形设计方式,单击按钮OK,则打开了图形编辑器窗口。
图6 新建设计文件选择框选择菜单File→Save As,在文件保存对话框中输入文件名,如Adder,然后单击按钮“保存”,则创建了图形设计文件Adder(4)设计逻辑电路。
实验一QuartusII软件的使用和练习
一.实验目的
1.熟悉掌握QuartusII软件的使用
二.实验仪器
1.仪器:EDA实验箱和电脑QuartusII软件
三.实验内容
1、一个电路系统要建立几个项目文件?
只能建立一个项目文件
2、我们应该把设计系统的所有文件都放在哪里?
项目文件夹内
3、项目文件可以起中文名字吗?起什么样的名字比较好?
不可以起中文名字;一般情况下,采用所要设计的工程的英文名称比较好
4、系统可以有几个顶层文件?可以反复设定吗?怎样设定?
一个系统只能有一个顶层文件;可以反复设定;设定的步骤:进入界面,点击project,选择下拉菜单下的set as top_level entity即可完成设定
5、我们实验箱用的目标芯片是什么型号?
Cyclone系列ep1c6q240c8
6、一个项目文件里可以包含多个文件吗?
可以
7、分配管脚后,需要做什么才能把信息存储下来?
需要进行编译、下载
8、试验箱按键按下是什么电平?指示灯亮为什么电平?
按键按下是低电平;指示灯亮是低电平
9、如果系统中存在多个波形文件,怎样设定要仿真的文件?
设定步骤:进入界面,点击assignments,然后选择settings,接着选择simulator,之后右边界面会出现Add Multiple Files选项,然后就可以添加所需要进行仿真的波形文件。
QuartusII操作简略入门
5. 将设计项目设置成工程和时序仿真
f_adder.bdf工程设置窗
5
5. 将设计项目设置成工程和时序仿真
加入本工程所有文件
6
5. 将设计项目设置成工程和时序仿真
全加器工程f_adder的仿真波形
7
步骤6:引脚锁定
8
4.4 设计实例
第5步:给输入、输出引脚分配引脚号码,编程下载
(1)对顶层图形文件counter_7seg.bdf 进行引脚锁定;
键2则对应 10K10的第 6脚,可输 入ain,依 次 类推。
13
根据电路结构模式NO.5 查上表,EPF10K10器件对应:
加数 ain : PIO1 -> 键2 \D10对应引脚 -> 6 被加数 binB : PIO0 -> 键1 \D9对应引脚 -> 5
和 sum : PIO8 -> D1对应引脚 -> 17 低位进位 cin : PIO2 -> 键3 \D11对应引脚 -> 7 高位溢出位 cout : PIO9 -> D2 对应引脚 -> 18
键1定义 为:bin
11
显示cout 这里插上的是 10K10目标板
显示电路 模式NO.5
显示sum
按此键选择 电路模式
输入cin
输入ain 输入bin12
对于10K10器件 选此列
对于电路 模式5,键 1对应于 10K10的第 5脚,可输 入bin
19
引脚锁定(实验1)
模式:NO.1
加数a[7..0] : 键4,键3 : PIO15 ~ PIO8 (25,24,23,22,21,19,18,17) ——显示于数码管4,3
SOPC技术基础教程 第2章 Quartus II开发环境的使用
SOPC Builder GUI
配置Nios II处理器 选择并配置外设.IP 连接各外设模块 自定义命令
外设模块库
IP 模块
软件开发
硬件开发
分配外设地址和中断 生成系统
Nios II IDE
Quartus II
GNU Tools
硬件开发使用Quartus II和SOPC Builder
2.1 SOPC开发流程和开发工具
硬件抽象层 (HAL)&外设 驱动程序
使用Nios II IDE开发软件
用户C/C++应 用程序代码 和定制的库
连接各 功能模块
设置软件运行 硬件环境属性
选择FPGA型号 并进行管脚分配
编译软件 生成可执 行文件elf 在IDE中使用 ISS运行/调试 软件
•为系统功能原理 图选择芯片载体 并 为各个输入输 • 设置编译选项, 出信号分配芯片 从而让编译器按照 的管脚; •编译系统生成硬件系统的 用户设定来进行编 配置文件 *.sof和*.pof。编 译; 译系统是一个非常复杂的过 程,包括优化逻辑的组合、 综合逻辑、适配 FPGA 、布 线以及时序分析等步骤。
下载配置文件到 FPGA器件
使用IDE编程工具 烧写配置文件和 软件代码
调试好的 硬件和软件
在目标板上运 行/调试软件
SOPC开发流程简图
分析系统需求
建立Quartus II工程, 建立顶层图*.bdf
NiosII内核 &标准外设
打开SOPC Builder 定义和生成系统
定制指令&定 制外设逻辑
硬件开发
• 编 译 Quartus II 工 程 , 对 HDL文件进行布局布线,从 HDL源文件综合生成一个适 合目标器件网表,生成 FPGA配置文件(.sof); •用 下 载 电 缆 ( 如 ByteBlaster II), 将配置文件 下载到目标板上。硬件校验 完成后,可将新的硬件配置 文件下载到目标板上的非易 失存储器(如EPCS器件)。
Quartus2_NIOS2_SOPC
Quartus II 6.0使用简介一、创建工程1、启动Quartus II 6.0软件,选择菜单File->New Project Wizard…打开工程创建向导。
设置工程保存路径、工程名称和设计顶层实体名称(本例中都设定为Example)。
设定好之后点击下一步2、这一步中可以添加已经设计好的文件,如果没有可以直接进入下一步:3、选择具体的可编程逻辑器件。
此处选择Cyclone系列的EP1C12Q240C8。
4、选择其他的EDA辅助设计软件,Quartus II 6.0在对工程综合编译时会自动生成相应的中间文件供辅助设计软件分析(可不选)。
5、一个新的工程创建成功。
二、新建VHDL文件1、打开菜单File->New,选择Device Design Files->VHDL File2、编写具体的程序内容(注意VHDL文件的书写格式)。
此处以一个3-8译码器为例进行说明:具体的程序内容如下:*************************3-8译码器************************************* --fuction:以拨盘开关作为数据输入端,用发光二极管表示译码后的信息;-- datain(0)-datain(2) 分别为c'b'a对应拨盘开关上的1-3号键;--第一部分:库、程序包声明(下面为使用最为广泛的几个库和程序包)library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;--第二部分:实体说明entity example is --实体名必须和工程创建时声明的名称“example”一致Port (datain : in std_logic_vector(2 downto 0); --输入端口说明dataout : out std_logic_vector(7 downto 0) --输出端口说明);end example;--第三部分:结构体(描述设计系统的行为和结构,是设计系统的具体实现)architecture Behavioral of example isbeginprocess(datain) --进程(并行运行)begincase datain is --CASE语句when "111"=>dataout<="10000000"; --条件选择when "110"=>dataout<="01000000";when "101"=>dataout<="00100000";when "100"=>dataout<="00010000";when "011"=>dataout<="00001000";when "010"=>dataout<="00000100";when "001"=>dataout<="00000010";when "000"=>dataout<="00000001";when others=>dataout<="11111111";end case;end process;end Behavioral;*****************************************************************3、保存VHDL文件注意:文件名须和实体名“example”一致,为example.vhd。
实验一 EDA开发环境Quartus2使用练习
实验一 EDA开发环境Quartus2使用练习一、实验目的1、学习并掌握EDA开发工具Quartus2窗口界面2、学习并掌握EDA开发工具Quartus2开发流程3、练习并掌握EDA开发工具Quartus2使用方法二、实验内容1、Quartus2窗口界面图1 Quartus2的初始窗口界面Quartus2具有图形、文本等多种设计输入方式,设计输入文件形式多样:图2 Quartus2的设计输入文件类型2、Quartus2开发流程(1)建立新项目(2)选择目标器件(3)设计综合编译(4)时序波形仿真支持多种仿真方式选择矢量波形文件加入信号节点保存仿真文件输出仿真波形3、Quartus2使用练习(1)4位全加器设计VHDL设计输入参考程序:library ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;ENTITY add_arith_4 ISPORT (A, B : IN std_logic_vector(3 downto 0);cin : IN std_logic;S : OUT std_logic_vector(3 downto 0);cout : OUT std_logic);END add_arith_4;ARCHITECTURE behave OF add_arith_4 IS beginprocess(a,b,cin)variable a_v,b_v: integer range 0 to 15;variable s_v: integer range 0 to 31;variable cin_v: integer range 0 to 1;beginif (cin='1') thencin_v:=1;elsecin_v:=0;end if;a_v:=conv_integer(a);b_v:=conv_integer(b);s_v:=a_v+b_v+cin_v;if (s_v>=16) thens_v:=s_v-16;cout<='1';elsecout<='0';end if;s<=conv_std_logic_vector(s_v,4);end process;END behave;(2)修改下列VHDL程序中的语法错误,编译通过后进行仿真,分析并说明该程序的功能。
实验一 Quartus II基本操作
实验一 Quartus II基本操作一、实验目的1.了解Quartus II软件的功能。
2.初步掌握Quartus II的VHDL输入方法。
3.掌握Quartus II编译、功能仿真和时序仿真。
4.掌握Quartus II管脚分配、综合与实现、数据流下载方法。
二、实验内容本实验以8位全加器为例,在Quartus II软件平台上完成设计电路的VHDL文本输入,编辑,编译,仿真,关键分配和编程下载等操作。
下载芯片选择Altera公司的FLEX10K系列的EPF10K10LC84-3器件。
1. VHDL源程序的输入Quartus II环境下,执行“file”的“New Project Wizard”命令,为8位全加器建立设计项目。
项目名称为adder8;出现选择芯片对话框,我们选择FLEX10K系列的EPF10K10LC84-3器件作为仿真芯片;finish完成设置。
Quartus II环境下,执行“file”的“New”命令,在弹出的编辑文件类型对话框中,选择“VHDL File”,ok进入Quartus II文本编辑方式,在文本框中编辑输入8位全加器的VHDL 源程序。
在VHDL源程序中,A和B是两个8位二进制输入信号,CIN是低位进位输入信号,SUM是8位加数之和的输出信号,COUT是向高位进位的输出信号。
2. 设计文件存盘与编译adder8.vhd为文件名将二选一数据的VHDL源程序设计文件保存在工程目录中,*.vhd表示VHDL文本文件。
Quartus II环境下,执行“Processing”的“start Compilation”命令,或者在主窗口上直接单击“start Compilation”按钮,对adder8.vhd设计文件进行编译。
如果输入无语法错误的话,编译完成后的结果如下图所示:adder8所占用的EPF10K10LC84-3芯片宏单元的2%,占用引脚数为44%,没有用存储单元。
EDA实验二:Quartus II使用练习
1、4位串行进位二进制全加器原理图; 2、 4位二进制全加器仿真波形。 扩展:用其他的表达方式编制的1位二进制全 扩展: 加器的VHDL语言程序。 扩展: 3、扩展:十进制可逆计数器仿真波形 扩展
2、 1位二进制全加器 真值表
输入 A 0 0 0 0 1 1 B 0 0 1 1 0 0 1 1 CI 0 1 0 1 0 1 0 1
输出 S CO 0 1 1 0 1 0 0 1 0 0 0 1 0 1 1 1
函数式
1 1
S = A BCI + ABCI + A BCI + ABCI = A ⊕ B ⊕ CI
CO = ABCI + A BCI + ABCI + ABCI = AB + BCI + ACI
四、实验步骤 实验步骤
1、创建4位串行进位二进制全加器原理图 原理图
创建1位二进制 全加器的模块框 图; 添加输入、输 出端口; 连接符号模块。
2、创建1位二进制全加器的VHDL源文件 VHDL源文件 VHDL
实验原理4位串行进位二进制全加器以1位全加器的设计为基础将四个1位二进制全加器串接即可构成四位二进制全加器
Quartus II使用练习 使用练习 (1)二进制加法器设计 ) (2)扩展:宏功能模块定制和使用 )扩展: (十进制可逆计数器) 十进制可逆计数器) 十进制可逆计数器
一、实验目的
1、熟悉Quartus II软件的使用,宏功能模 块定制和使用 2、掌握逻辑功能的VHDL语言描述和原理图 描述的方法; 3、进一步掌握四位串行二进制加法器的设 计方法; 4、掌握用仿真波形验证电路功能的方法。
LIBRARY ieee; --库调用说明 USE ieee.std_logic_1164.all; --程序包调用说明 ENTITY adder IS --实体开始 PORT ( a : IN STD_LOGIC; --端口说明 b : IN STD_LOGIC; ci : IN STD_LOGIC; co : OUT STD_LOGIC; s : OUT STD_LOGIC ); END adder; --实体结束 ARCHITECTURE adder_architecture OF adder IS --结构体开始 BEGIN s<=a xor b xor ci; --功能描述 co<=(a and b) or (b and ci) or (ci and a); END adder_architecture; --结构体结束
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、8位数码管扫描显示电路设计如图中所示8位数码扫描电路,其中每个数码管的8个段:h、g、f、e、d、c、b、a(h 是小数点)都分别连在一起,8个数码管分别由8个选通信号k1、k2、…k8来选择。
被选通的数码管显示数据,其余关闭。
如在某一时刻k3为高电平,仅k3对应的数码管显示来自段信号端的数据,而其他7个数码管呈现关闭状态。
根据这种电路状态,如果希望在8个数码管显示希望的数据,就必须使得选通信号k1、k2、…k8分别单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的改变,就能实现扫描显示的目的。
①借助Altera公司的Quartus Ⅱ9.0软件平台,利用VHDL语言编程,设计8位数码管扫描显示电路,使得在8个数码管上显示“13579EDA”并给出仿真波形;②修改上述显示数据直接给出的方式,增加8个4位锁存器,作为显示数据的缓冲器,使得所有8个显示数据都必须来自缓冲器。
缓冲器的数据可以通过不同方式锁入,如来自A/D采样数据、串行输入的数据、并行输入的数据、或者来自单片机等等二、序列检测器设计序列检测器的作用就是从一系列的码流中找出用户希望出现的序列,序列可长可短。
比如在通信系统中,数据流帧头的检测就属于一个序列检测器。
③设计一个有限状态机,用以实现输入序列“11101011”的检测。
要求能连续读入一组串行二进制码,当这一串序列数高位在前(左移)串行进入检测器时,若此数与序列检测器预设码相同,输出标志信号A,否则输出B。
在序列检测过程中,如某位二进制码与预设序列不匹配,必须清零从初始状态重新检测。
要求画出状态转换图,使用VHDL语言编程。
④运用QuartusⅡ软件中的仿真功能,对所设计的序列信号检测器的顶层电路的功能进行仿真分析。
实验报告一、8位数码管扫描显示电路设计(1)步骤:1、用SG表示段控制信号输出,用BT表示位控制信号输出,并分别用以下段选表示0-F:WHEN 0 => SG <= "0111111"; WHEN 1 => SG <= "0000110";WHEN 2 => SG <= "1011011"; WHEN 3 => SG <= "1001111";WHEN 4 => SG <= "1100110"; WHEN 5 => SG <= "1101101";WHEN 6 => SG <= "1111101"; WHEN 7 => SG <= "0000111";WHEN 8 => SG <= "1111111"; WHEN 9 => SG <= "1101111";WHEN 10 => SG <= "1110111"; WHEN 11 => SG <= "1111100";WHEN 12 => SG <= "0111001"; WHEN 13 => SG <= "1011110";WHEN 14 => SG <= "1111001"; WHEN 15 => SG <= "1110001";题目要求的13579EDA的BT位控制端:WHEN "000"=>BT<="00000001" ;A<=1;WHEN "001"=>BT<="00000010" ;A<=3;WHEN "010"=>BT<="00000100" ;A<=5;WHEN "011"=>BT<="00001000" ;A<=7;WHEN "100"=>BT<="00010000" ;A<=9;WHEN "101"=>BT<="00100000" ;A<=14;(E)WHEN "110"=>BT<="01000000" ;A<=13; (D)WHEN "111"=>BT<="10000000" ;A<=10; (A)2.编写VHDL文件,编译通过后,绘制出电路图如下:我们pin口取CLK为输入信号,SG,BT为输出信号。
3、波形仿真从仿真波形可以看出,SG和BT对应,刚好实现显示13579EDA。
(2).增加8个4位锁存器,作为显示数据的缓冲器,使得所有8个显示数据都来自缓冲器设计4位锁存器。
这里我们要先单独建立一个锁存器,然后建立一个8个4位锁存器和74248译码器的组合电路,所以要建立两个工程,然后在一个总工程中调用另一个工程生成的电路模块。
步骤:1编写VHDL生成锁存器DFF_4如下图:这里CLK='1'则Q<=D;2.波形仿真:设置为:CLK为50ns,D0为200ns,D1为300ns,D2为400ns,D3为500ns从波形图可以看出,在时钟为高时,D将数据传递给Q,在时钟为低时,Q会将当前值一直保持到下一个高时钟。
3.包装元件入库选择"File"→"Create/update"→"Create symbol files for current file",将当前文件变成一个包装好的单一元件DFF_4,并放置在工程路径指定的目录中以备后用4、将锁存器的十六进制输入转变为可直接与数码管连接的输出建立一个工程目录DFF_4_0,再新建文件“File”->“New”->“Block Diagram/Schematic File”。
调入上实验中的包装入库的元件DFF_4,以及译码器74248和输入输出元件,按下图连接。
编译成功后,包装元件入库,生成元件DFF_4_0,在后面将会使用到。
5.新建一个扫描电路,和第一问差不多,只是数据输入方式有所改变,程序运行成功后生成电路图cnt8_dff如下:我们主要用以下语句WHEN 0 => SG <=A0; WHEN 1 => SG <=A1;WHEN 2 => SG <=A2; WHEN 3 => SG <=A3;WHEN 4 => SG <=A4; WHEN 5 => SG <=A5;WHEN 6 => SG <=A6; WHEN 7 => SG <=A7;其中A0-A7为锁损的数据,SG,BT和第一问一样,表示段信号和位信号。
仿真波形如下:可见,SG如实显示出A的数字。
6、带锁存器的扫描电路的原理图建立一个工程目录cnt8_dff2,再新建文件“File”->“New”->“Block Diagram/Schematic File”。
调入上面实验中的包装入库的元件DFF_4_0、cnt8_dff以及输入输出元件,按下图连接。
7.编译通过后,进行波形仿真,如下图:时钟CLK的到来,使8个数据锁存,CLK1的每个上跳沿到来时,依次输出8个数据。
因为输出是按7段数码管的形式输出,和第一问一样,对应关系如下:0 => "0111111";1 => "0000110"; 2 => "1011011" 3 => "1001111";4 => "1100110";5 =>"1101101";6 =>"1111101"7 => "0000111";8 => "1111111"; 9 => "1101111"; 10 => "1110111"11 => "1111100";12 => "0111001" 13 => "1011110" 14 => "1111001" 15 => "1110001";如题目要求,显示出13579EDA。
二、序列检测器设计具体实验软件操作过程和第一题类似,这里不重复赘述。
对于D <=“11101011”,电路需分别不间断记忆:初始状态:1、11、111 、1110 、11101、111010、1110101、11101011 共9种组合状态(分别用S0-S8表示),必须从第一个状态开始依次检测全部相同后才能输出A,其中任何一位不同则返回第一个状态,我们这里直接预设D值,状态转换图如下:从图中可以看出,当序列检测器的状态为S0,如果输入信号为1,则状态装换为S1,否则维持原状态,当序列检测器状态为S1,如果输入信号为1,则状态装换为S2,否则转换为S0,当序列检测器的状态为S2,如果输入信号为1,则状态转换为S3,否则转换为S0,当序列检测器的状态为S3,如果输入信号为0,则状态转换为S4,否则保持原态S3;当序列检测器的状态为S4,如果输入信号为1,则状态转换为S5,否则转换为S0;当序列检测器的状态为S5,如果输入信号为0,则状态转换为S6,否则转换为S2;当序列检测器的状态为S6 如果输入信号为1,则状态转换为S7,否则转换为S0;当序列检测器的状态为S7,如果输入信号为0,则状态装换为S0,否则维持原状态S7。
在VHDL中,主要用以下指令表示:WHEN 0 => IF DIN =D(7) THEN Q<= 1 ;ELSE Q<=0;END IF;WHEN 1 => IF DIN =D(6) THEN Q<= 2 ;ELSE Q<=0;END IF;WHEN 2 => IF DIN =D(5) THEN Q<= 3 ;ELSE Q<=0;END IF;WHEN 3=> IF DIN =D(4) THEN Q<= 4 ;ELSE Q<=0;END IF;WHEN 4 => IF DIN =D(3) THEN Q<= 5 ;ELSE Q<=0;END IF;WHEN 5 => IF DIN =D(2) THEN Q<= 6 ;ELSE Q<=0;END IF;WHEN 6 => IF DIN =D(1) THEN Q<= 7 ;ELSE Q<=0;END IF;WHEN 7 => IF DIN =D(0) THEN Q<= 8;ELSE Q<=0;END IF;当全部位符合时:IF Q= 8 THEN AB<= "1010";不符合时:ELSE AB<= "1011";用以表示A和B。