专业名词
PAL-宏单元
PLD (Programable Logic Device)
CPLD
LAB(Logic Array Block)逻辑阵列块
可编程逻辑单元LE 查找表LUT、进位逻辑、输出寄存器逻辑
PLL-锁相环 (Phase locking loop)
功能:频率合成,可编程相移,外部时钟输出,可编程占空比,锁定检测,可编程带宽,输入时钟扩频,支持高速差分输入输出时钟信号
LE-逻辑单元
wizard-向导
FGPA设计流程:
进行源文件的编辑和编译
进行逻辑综合和优化
进行目标器件的布线/适配
目标器件的编程下载:
如果编译、综合、布线/适配和行为仿真、功能仿真、时序仿真等过程都没有发现问题,即满足原设计的要求,则可以将布线/适配器产生的配置/下载文件下载电缆载入目标芯片中。
硬件仿真/硬件测试
Altera Quartus II软件开发向导
模块编辑及设计流程
原理图输入文件的建立
图表模块输入
原理图设计流程
波形仿真
引脚分配
下载验证
文本编辑及设计流程
建立文本文件
文本设计流程-建立新工程
文本设计流程-编译工程
文本设计流程-建立矢量波形文件
文本设计流程-仿真波形
文本设计流程-引脚分配及下载验证
基于Quartus II 软件的设计方法有三种,分别是模块编辑法,文本编辑法,宏模块编辑法以及包含前三种的混合编辑法。
Quartus II 提供的元件分三类:基本逻辑函数(primitives)、宏模块函数(megafunctions)、其他函数。
基本逻辑函数
缓冲逻辑单元(buffer)
基本逻辑单元(logic)-门电路器件
其他单元
引脚单元(pin)
存储单元(storage)-各类触发器 dff、tff
宏模块函数
参数化函数,包括LPM函数-参数化模块库,MegaCore AMPP函数.
包含arithmetic,gates,IO,storage四个子类。
arithmetic:算法函数,包括累加器,加法器。乘法器,LPM算术函数
gates:多路复用器和门函数
IO:时钟数据恢复CDR,锁相环PLL,千兆位收发器GXB,LVDS接收发送器
storage:存储器,移位寄存器模块和LPM存储器函数
原理图设计流程
建立工程
编译工程
建立仿真矢量波形文件
波形仿真
功能仿真
时序仿真
引脚分配
下载验证
编译
配置下载电缆
JTAG模式下载
Active Serial 模式
文本编辑及设计流程
混合设计
小元件输代码建立图元文件
总原理图 拖动图元文件 连接各个模块
*Signal Tap II嵌入式逻辑分析仪,随设计文件一并下载到目标芯片中,用以捕捉目标芯片内部信号节点处的信息,而且不影响原硬件系统的正常工作
组合逻辑电路设计 不含存储元件 输出由输入信号决定:
门电路 三态门 总线缓冲器 8-3优先编码器 3-8译码器 4选1数据选择器 1对4数据分配器
时序逻辑电路设计 含存储元件(触发器)输出由输入信号和所处的状态决定:
触发器 寄存器(普通寄存器 锁存器 移位寄存器 )计数器(同步计数器 异步计数器)
触发器:按照有无复位、置位功能以及复位、置位与时钟信号是否同步,可以分为多种常见的D触发器,以下是使用Verilog HDL语言编写的同步复位D触发器代码。
module sy_d_ff(clk,d,q,qb);
input clk,d;
output q,qb;
req q;
assign qb = ~q;
always@(posedge clk) begin
q<=d;
end
endmodule
寄存器:一般用D触发器构成寄存器,把一组D触发器的时钟输入端口连接起来,由一个同步时钟驱动,就构成了一个8位寄存器。
锁存器:锁存器与寄存器很类似,区别在于,寄存器采用同步时钟信号控制,而锁存器采用电平信号控制。把8个D触发器的时钟输入端口连接起来,并用一个电平信号进行控制,就构成了一个8位锁存器。
移位寄存器
除了具有存储代码的功能以外,还具有移位功能。所谓移位功能,是指寄存器里存储的代码能在移位脉冲的作用下依次左移或右移。因此,移位寄存器不但可以用来寄存代码,还可用来实现数据的串并转换,数值的运算以及数据处理等。
计数器:按照触发器是否同时翻转分类可以把计数器分为同步计数器和异步计数器。在同步计数器中,时钟脉冲变化与触发器的翻转是同时发生的,在异步计数器中,每个触发器的时钟不同,因而翻转有前有后,不是同时发生的。
异步计数器,又称行波计数器,将触发器逐级串行连接起来,低位计数触发器的输出作为相邻下一级计数触发器的时钟。
有限状态机
是指输出取决于输入信号和当前所处的状态的时序逻辑电路,有限状态机含有一组具有记忆功能的寄存器,称为状态寄存器。这些寄存器的功能是记忆有限状态机的内部状态。
因此,有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑又可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。
在实际中,按照有限状态机是否使用输入信号,将其分为Moore型有限状态机和Mealy型有限状态机
Moore型有限状态机的输出信号仅与当前状态有关
Mealy型有限状态机,其输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可以把Mealy型有限状态机的输出看成当前状态和所有输入信号的函数
有限状态机的基本操作有两种:
状态机内部状态转换,状态机的下一状态由次态逻辑根据当前状态和输入条件决定,存入状态寄存器。
产生输出信号,Moore型有限状态机的输出信号由输出逻辑根据当前状态决定。
状态机的描述:一段式状态机,太简单了避免使用,二段式状态机(时序逻辑 组合逻辑),三段式状态机(时序逻辑 组合逻辑 输出逻辑:让输出信号通过寄存器缓存后再输出,消除电路毛刺,组合逻辑和时序逻辑完全独立,维护方便)。
宏模块和LPM函数的应用
LPM(Library of parameterized Modules)(参数可设置模块库),这些模块以图形或硬件描述语言模块的形式存在,有助于模块化设计。
常用存储器ROM,RAM,FIFO。
宏模块:存储器模块,乘法器,锁相环,乘累加器
常用模块电路设计
分频电路设计:偶数分频,比如16倍频,当计数器从0计数到N/2-1,也就是7(111)时,输出时钟进行翻转。
奇数分频:比如错位“异或”法。如进行三分频,通过待分频时钟上升沿触发器计数器进行模三计数,当计数器计数到邻近值进行两次翻转,如在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转,即在邻近的1和2时刻进行两次翻转,,这样实现的三分频占空比为1/3或者2/3,。若要实现占空比为50%的三分频时钟,可以通过待分频时钟下降沿触发计数,和上升沿同样的方法计数进行三分频,然后将下降沿产生的三分频时钟和上升沿产生的时钟进行相或运算,就可得到占空比为50%的三分频时钟。
同步整形电路
在数字电路设计中经常需要将外部输入的异步信号进行同步处理,即让外部信号与系统时钟同步,有时候外部输入信号为不规则的波形,则需要对其进行整形,使之成为具有一个时钟周期长的脉冲波形。
数码管静态显示:每个数码管占用8个FPGA引脚
数码管动态显示:各个数码管的段选线并联在一起,由8位FPGA引脚线控制,每个数码管的片选线连接另外的FPGA引脚线,使各个数码管循环显示,需要控制好每个数码管直接的延时来达到视觉暂留原理