FPGA入门及QuartusII使用教程(内部资料).doc
文本预览下载声明
FPGA入门及Quartus II使用教程
FPGA是英文Field?Programmable?Gate?Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable?Array?Logic)、门阵列逻辑GAL(Gate?Array?Logic)等可编程器件的基础上进一步发展的产物Application Specific Integrated Circuit )内部的所有资源,是用积木堆积起来的小房子,可以是一个欧美风情的房子,还可以是一个北京四合院…….而FPGA内部就可以说是一个个小积木,也就是内部有大量的资源提供给我们,根据我们的需求进行内部的设计。并且可以通过软件仿真,我们可以事先验证设计的正确性。……
引脚也可以自己设置输入输出引脚并且命名。
设置当前实体为最高实体,再次进行编译
编译完成后,要分配引脚,通常分配引脚有两种方式,一种是直接在工程分配,这种方式对于引脚较少比较方便,如下图所示。
选择PIN
双击引脚分配处的to和location,就可以确定应用的FPGA引脚分配情况。
分配好引脚后,点击保存,再看原理图,每个引脚后边都有一个“小尾巴”,表示信号线的实际物理引脚分配情况。
然后再编译。最后在点击TOOL-Programmer,或者直接点击下载图标
就会出现下载对话框
点击Hardware Setup 如果你没插USB-BLASTER,打开后不会有显示,如果插上后,这里就会显示有一个硬件可以选择,右上位置选择下载方式。注意:JTAG模式和AS模式接口是不同的
选择好USB-BLASTER后,点Close,然后点Start
当前选择的是JTAG模式,因此下载程序到RAM,可以看调试结果。
至此,FPGA的原理图制作,代码编写流程及下载流程已经全部完毕。现在以一个简单的分频器来讲一下。
第一件事,如同单片机的最小系统一样,FPGA的系统需要一个时钟源作为支撑,FPGA内部有个PLL(锁相环)资源,这个PLL可以对输入频率进行倍频。因此,几乎在每个系统设计的时候,都需要对这个PLL进行设置。如下所示
选择第一个
点NEXT,往下进行选择IO栏目下的ALTPLL,给这个模块起一个名字叫PLL然后点NEXT
根据提示进行选择,选择好了后,点击进入下一个设置
在这里,把所有的勾全部去掉就可以,然后一直点下一步,一直到下面图示,
每个芯片可以设置输出的频率个数不同,当前我用的ep2s60总共有2个PLL,每个PLL可以设置6个不同的频率输出。现在就可以一直点下一步,直到Finish就可以。然后再Project里边将PLL放置到原理图上。
新建一个test_div的程序,程序代码如下
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity test_div is
port(
clkin:in std_logic;
clkout1:out std_logic;
clkout2:out std_logic
);
end test_div;
architecture fenpin_arc of test_div is
signal count1:integer range 0 to 7; --计数寄存器16分频
signal clkbuff1:std_logic;
signal count2:integer range 0 to 3; --计数寄存器8分频
signal clkbuff2:std_logic;
begin
process(clkin,count1,count2)
begin
if rising_edge(clkin) then --计数、分频1
if (count1 = 7) then
count1 = 0;
clkbuff1 = not clkbuff1;
else
count1 = count1 + 1;
clkout1 = clkbuff1;
end if;
end if;
if rising_edge(clkin) then --计数、分频2
if (count2 = 3) then
显示全部