当前位置:   article > 正文

【FPGA】FPGA入门 —— 基本开发流程_fpga开发

fpga开发

1. FPGA入门

  • 快速上手verilog语法
  • 状态机,线性序列机
  • FPGA常见的设计方法
  • 自己写代码,下载代码进行使用,使用厂家/第三方提供的IP核
  • 常见接口设计

等等。。

学习时间:基础内容的学习 - 20*8h,啊啊啊我可以我能行,看来这个月我给把时间砸这上面了~~

仿真两大作用:检查验证设计功能是否正确;调试问题,可以看到设计中每一个信号每一个时刻的值,通过仿真分析设计中信号异常的原因。做设计时,超过50%的时间不是在写代码,而是通过仿真调试代码找问题。

2. FPGA开发流程

写一套硬件描述语言,能够在指定硬件平台实现相应功能。

  1. 设计定义:比如让LED灯1s闪烁一次
  2. 设计输入: 编写逻辑(使用verilog代码描述逻辑);画逻辑图;使用IP
  3. 分析综合 (由专业的EDA软件进行,Quatus、vivado、ISE):对所写的逻辑描述内容进行分析,并得到逻辑门级别的电路内容
  4. 功能仿真:使用专门的仿真工具进行仿真(Modelism),对于数字电路来说,方针是基本接近于真实情况的。
  5. 布局布线:(vivado、quartus)在指定器件上将设计的逻辑电路实现
  6. 分析性能
    • 时序仿真(非常耗费时间)
    • 静态时序分析
  7. 下载到目标板上运行调试,查看结果ILA

让设计的逻辑在目标板上正常工作 - 功能正常、性能稳定

3. 二选一多路器 - 快速熟悉开发环境及流程

快速熟悉环境及流程

image-20220913160457502

1. 编码

module mux2( //端口列表
    a,
    b,
    sel,
    out
);
	//端口定义
    input a;
    input b;
    input sel;
    output out;
    
    //2 select one
    assign out = (sel==1)?a:b;
    
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

2. 分析综合

image-20220913161625971

3. 功能仿真

添加激励文件 text bench

`timescale 1ns/1ns

module mux2_tb(); //without port

    reg s_a;    //激励信号
    reg s_b;
    reg sel;
    wire out;
    
    //例化- 复制过来,稍微改动
    mux2 mux2_inst0(  
        .a(s_a),
        .b(s_b),
        .sel(sel),
        .out(out) //连信号线
    );

    //initial块 - 变化高低电平
    initial begin
        s_a = 0; s_b = 0; sel = 0;
        #200;   //延迟200,注意这只适用于描述激励
         s_a = 0; s_b = 0; sel = 1;
        #200;
          s_a = 0; s_b = 0; sel = 0;
        #200;
          s_a = 0; s_b = 1; sel = 1;
        #200;
          s_a = 1; s_b = 1; sel = 0;
        #200;
          s_a = 1; s_b = 0; sel = 1;
        #200;
          s_a = 1; s_b = 1; sel = 0;
        #200;
          s_a = 1; s_b = 1; sel = 1;
        #200;
        $stop;
    end
    
endmodule
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 1ns/1ps:时间单位/精度
  • initial
image-20220913191852788

4. 布局布线 run implementation

5.时序仿真

image-20220913193037246

6. 下载到板子上,调试

分配IO引脚

image-20220918093500476

ctrl+s

image-20220918093856150

我艹,之前我都是照猫画虎自己胡写的。。。

7. 生成比特流文件

  • Generate Bitstream
  • Open Hardware Manager - 要先上电哦

啊哈哈好好玩啊,当然被自己笨拙的样子笑到

open target → auto connect

image-20220918101949268

Program device 就ok啦~

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号