【FPGA】FPGA的介绍及入门



FPGA应用场景

单片机应用:

日常应用广泛,多用于控制流水灯。

FPGA应用:

(1) 通信接口设计、数字信号处理等比较需要处理的数据量比较大、需要处理速度特别快或精度特别高的场合。
(2) ASIC原型验证。


一、FPGA的工作原理

FPGA通过烧写文件去配置查找表,从而在相同的电路情况下实现不同的逻辑功能。

二、FPGA的编程方式

1、并行模式: 并行PROM、Flash配置FPGA;
2、主从模式: 一片PROM配置多片FPGA;
3、串行模式: 串行PROM配置FPGA;
4、外设模式: 将FPGA作为微处理器的外设,由微处理器对其编程;

、FPGA开发流程

功能定义
设计输入
功能仿真
综合优化
综合后仿真
实现布局布线
时序仿真
静态时序仿真
板级仿真与验证
芯片编程与调试
逻辑仿真器
逻辑综合器
逻辑仿真器1
FPGA厂家工具
逻辑仿真器2

综合优化到时序优化的过程由仿真平台进行完成。

三、FPGA设计方法

1.功能定义

(1)根据待设计的项目,进行系统设计方案论证:
需要进行系统功能定义、模块划分
(2) 根据任务要求,对工作速度和器件本身的资源、成本、以及连线的可布性进行权衡,选择合适的设计方案和合适的期间类型。

采用的设计方法:

一般采用自顶向下的设计方法,把系统分成若干个基本单元,然后把每个基本单元划分为下一层级的基本单元,一直这样做下去,直到可以直接使用EDA单元。


2.设计输入

HDL语言输入法: 利用文本描述语言,分为普通HDL和行为HDL。普通HDL有ABEL、CUR等,用于简单的小型设计;行为HDL主流语言是Verilog HDL和VHDL,多用于中大型工程中。

原理图输入方法: 在可编程芯片发展的早起应用比较广泛,将所需的器件从元件库中调出来,画出原理图。直观并易于仿真,但效率很低,而且不易维护,不利于模块的构造和重用,可移植性差。

这一步就是用硬件语言去描述待设计电路的功能。

例如设计一个比赛裁判判决器

两个副裁判一个主裁判,主裁判与其中一到两个副裁判按下灯亮,主裁判不按下灯不亮

代码如下:

module work_1(
	input		x,
	input		y,
	input		z,//main
	output		led
); 

assign led = (x|y)&z;

编写仿真文件:

`timescale 1ns / 1ps
module test_1();
reg     x;
reg     y;
reg     z;
wire    led;
work_1 work(
    .x          (x  ),
    .y          (y  ),
    .z          (z  ),
    .led        (led)
    );
initial
    begin
        y=0;
        #200 y=1;
        #400 y=0;
    end
initial
    begin
        x=0;
        #100 x=1;
        #300 x=0;
        #500 x=0;
    end
initial 
    begin
        z=0;
        #100 z=1;
        #200 z=0;
        #300 z=1;
        #400 z=0;
    end
endmodule

观察到仿真结果:

在这里插入图片描述


3、功能仿真

功能仿真: 也称为综合前仿真,实在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有延迟信息,仅对初步的功能进行检测。
常用的工具: ModelSim,VCS,NC-Verilog,NC-VHDL等。


4、综合优化

把代码变成电路的过程被称为综合
综合优化 是指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而非真实的门级电路。综合的结果得到的是一个硬件电路的设计方案。

常用的综合工具: Synpify以及各个FPGA厂家自己推出的综合开发工具。

经过综合,得到了所涉及的电路实现方案:

在这里插入图片描述


五、综合后仿真

综合后仿真是对上一步的综合结果(代码便编程一个电路模型)进行仿真,检查是否实现了预期的功能。

  1. 在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去可估计门延时带来的影响。但这一步骤不能估计线延时,因此和布线后的实际情况还有一定的差距,并不十分准确;
  2. 目前的综合工具较为成熟,对于一般的设计可以省略这一步,但如果在布局布线后发现电路结构和设计意图不符,则需要回溯到综合后仿真来确认问题之所在。在功能仿真中介绍的软件工具一般都支持综合后仿真。

六、布局布线

布局布线 可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应的文件(如配置文件与相关报告),实现是将综合生成的逻辑网表配置到具体的FPGA芯片上,布局布线是其中最重要的过程。


七、时序仿真

时序仿真: 也称为后仿真,是将布局布线的延时信息反标注到设计网表中来检测有无时序违规(即不满足时序约束或期间固有的时序规则,如建立时间、保持时间等)现象。

  1. 时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际工作情况。
  2. 不同芯片的内部延时不同,不同的布局布线方案延时影响不同。

八、板级仿真与验证

板级仿真 主要应用于高速电路设计中。对高速系统的信号完整性、电磁干扰等特征进行分析,一般都以第三方工具进行仿真和验证。


九、编程与调试

芯片编程 是指将FPGA开发工具最后产生的数据文件(位数据流文件)加载到FPGA芯片中。如果上板之后发现功能不正确,尝尝采用逻辑分析仪进行调试。


总结

FPGA开发入门准备:

  1. 数字电路基本知识;
  2. 硬件描述语言入门学习;
  3. 仿真平台的使用;
  4. FPGA开发板;
  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值