Quartus II 6.0 简明教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Quartus 简明教程
以设计一个简单的LED7段译码器为例介绍使用Quartus设计的全过程。
Step1 :打开quartus,显示窗口如图1所示:
Project
Navigator
Message Widow
图1 quarts启动后的显示界面
Step2: 新建工程:Quartus设计都是以工程为单位的,也就是说每一个设计必须包含在某一个工程中。(1)点击File菜单”New Project Wizard…”菜单项(图2),启动项目向导(图3)。
图2 New Project 选项图3 项目向导第一个窗口
在图3中点击Next,出现图4所示的窗口,要求设置项目路径、顶层设计文件的名称。设计中最好保持project 的名字和顶层文件名相一致,这里我们在project name(第二个编辑框)中输入需要设计的bin27seg(图5)。点击Next,出现图6所示窗口,在这里可以添加我们已经设计好的文件。假设我们现在还没有.vhd设计文件,掠过此步,直接点击Next。
项目路径
项目名称
顶层设计实体名
图4 项目基本信息设置图5 项目名称填写
图6 添加已有文件
图7 第三方eda工具选择Array
注意题目
图8
图
9
图
10
图
11
图
12
图
13 图
14
图
15
在bin27seg.vhd 文件中输入代码(代码附后)
图16
图18
图
19
Bin27seg的rtl级电
路
图
20
图
21
图22 编译全过程
图23
图
设计的另一部分就是验证自己的设计功能是否正确。
这里我们采用激励的方式,给定输入波形,观察输出是否正确。
(注这步也非必须,如果对自己的设计有充足的信心:)不过建议大家稍微大些的设计一定要做仿真)
选择File 菜单->new…,在other files 表签页,选择vector waveform file (波形文件),点OK ,如图25所示,将其保存,如图26,注意文件名和要仿真的实体名保持一致
波形文件
图25
图26
图27
现在要作的是把设计中的输入和输出管脚引进波形文件。
在波形文件窗口的左边栏点击右键,选择insert node or bus ,出现图28
点击node finder
图28
察看filter下拉框中
选择pins:all,然后
单击list按钮,
出现图30所示
图29
将设计中的管脚引入,即调到右边的框中,可以按ctrl键选
择多项,完成之后按OK,返回图31窗口
图30
将设计中的管脚引入,即调到右边的框
中,可以按ctrl键选择多项,完成之后按
OK,出现如图32,对应entity中的管脚
entity bin27seg is
port (
data_in : in
std_logic_vector (3 downto 0);
EN : in std_logic;
data_out : out std_logic_vector
(6 downto 0));
end entity;
图31
图32
图33 图34
注意输入激励的设置是
随意的,但是决定设计的
输出,这样可以根据不同
的设计和自己的需要来
设置不同的输入激励(波
形)
图35
图36
图37
特别的,当需要设置时钟时,请使用图标,比如我想让
图
38
图39
波形激励设置完成后,可以进行仿真了,选择processing 菜单start simulation 项,启动仿真进程(图39)
结果如图40所示。
图40
看到波形与自己设计时功能一致,表示设计无误。到这里,一个设计过程就结束了。接下来就是下载到芯片了。这个就先不写了,毕竟自己做的时候不可能下载。
如果需要,可以参看quartus help,特别是tutorial里边的内容,是为初学者准备的。唯一的遗憾就是全英文的。
另外,在自己做设计的时候需要设定自己的设计到特殊的某个管脚,这时需要用assigment editor, 在assignment 菜单-》assignment editor菜单项。(图41-45),可以参看help->tutorial
这一步应该在analysis & synthesis 之后,fitter之前设定。
如果自己不设定,quartus会自动为你设定引脚。
图46是设定完的引脚在器件的位置,注意,你设计所用的管脚可以定义到任意IO,时钟管脚除外(定
义在某一个GCLK端),图47是实际的器件与图46对应
图41
图42
图43
图44
图45
图46
图47 PLCC封装的EPM7128(CPLD)
图48 xilinx公司的FPGA(圆圈中的那个芯片)
CPLD基本原理
一.基于乘积项(Product-Term)的PLD结构
采用这种结构的PLD芯片有:Altera的MAX7000,MAX3000系列(EEPROM工艺),Xilinx的XC9500系列(Flash工艺)和Lattice,Cypress的大部分产品(EEPROM工艺)
我们先看一下这种PLD的总体结构(以MAX7000为例,其他型号的结构与此都非常相似):
图1 基于乘积项的PLD内部结构
这 种PLD可分为三块结构:宏单元(Marocell),可编程连线(PIA)和I/O控制块。 宏单元是PLD 的基本结构,由它来实现基本的逻辑功能。图1中兰色部分是多个宏单元的集合(因为宏单元较多,没有一一画出)。可编程连线负责信号传递,连 接所有的宏单元。I/O控制块负责输入输出的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态输出等。 图1 左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局时钟,清零和输出使能信号,这几个信号有专用连线与PLD中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。
宏单元的具体结构见下图: