【FPGA】高云FPGA之科学的FPGA开发流程(一)

简介: 【FPGA】高云FPGA之科学的FPGA开发流程

开发流程

1、设计定义

项目需要做什么,了解系统的功能,如果是大型的项目还会划分模块

2、设计输入

通过使用verilog、VHDL、成熟的IP核或者通过画原理图的方式进行逻辑输入设计

3、分析和综合

当逻辑输入设计完成后需要对其进行验证,该部分由软件部分进行验证,如果逻辑输入有问题需要检查语法错误或则重新设计设计输入

4、功能仿真

当分析和综合通过后应该进行功能性验证,针对项目设计定义的功能使用设计的逻辑输入验证其功能能否实现,一般的做法都是通过功能仿真的方式进行验证,比如软件逻辑分析仪,modelsim、vivado等软件自带的仿真工具进行仿真验证

功能仿真也称为行为仿真,主旨在于验证电路的功能是否符合设计要求,其特点是不考虑电路门延迟与线延迟,主要是验证电路与理想情况是否一致。也可以叫做RTL仿真(test bench)

5、布局布线

当我们的IO可以开始分配了我们首先需要分配IO,如果当前还没到IO分配的时候我们可以将IO分配放在最后,当IO分配完成后我们就可以通过软件进行布局布线,在芯片内部生成芯片电路

6、时序仿真

时序仿真也称为布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,能较好地反映芯片的实际工作情况,当时序仿真不通过的时候可能还会设计到时序约束的一个过程(在比较复杂的设计中也需要用到);

7、IO分配以及配置文件(bit流文件)的生成

如果在布局布线时未进行IO分配在该步骤进行IO分配并生成BIT流文件

8、配置(烧录)FPGA

时序通过了后需要通过硬件进行验证也就是最后一步的实物验证

9、在线调试

当系统出现问题运行不正常我们可以通过外部硬件示波器或者逻辑分析仪进行实际引脚信号抓取分析

例子

1、设计定义

1.1 需求

二选一多路器,两个输入IO(a,b)可以是高电平可以是低电平,一个sel选择信号

当sel为0时候输出按键1的状态

当sel为1时候输出按键2的状态

1.2 原理图

1.3 真值表

2、设计输入

2.1 新建工程

选择自己使用的芯片(我这里采用的是小梅哥的高云FPGA开发板)

新建一个verilog文件

2.2 添加代码

module mux_2_1(
    input wire in1, // 输入端口1
    input wire in2, // 输入端口2
  
  input wire sel, // 输入通道的选择
    output wire led // 输出led
);
// assign led = (sel == 1'b0) ? in1 : in2; // 第一种方式直接使用三目运算符
// 第二种方式是使用always的*触发方法ifelse判断
reg out;
always @(*) begin
  if(sel)
    out <= in2;
  else
    out <= in1;
end
assign led = out;
endmodule

3、分析和综合

这里代码我已经验证了所以没有语法错误,直接进行综合

当没有语法错误时表示代码正常然后我们可以运行工具中的RTL Desgin Viewer查看原理图网表;


【FPGA】高云FPGA之科学的FPGA开发流程(二)https://developer.aliyun.com/article/1472627

相关文章
|
7月前
|
芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(一)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
217 2
|
7月前
|
编译器 异构计算 内存技术
【FPGA】高云FPGA之科学的FPGA开发流程(三)
【FPGA】高云FPGA之科学的FPGA开发流程
235 0
【FPGA】高云FPGA之科学的FPGA开发流程(三)
|
7月前
|
异构计算
【FPGA】高云FPGA之科学的FPGA开发流程(二)
【FPGA】高云FPGA之科学的FPGA开发流程
232 0
|
7月前
|
芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(三)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
168 4
|
7月前
|
存储 芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(二)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
180 4
|
7月前
|
芯片 异构计算
【FPGA】高云FPGA之IP核的使用->PLL锁相环(二)
【FPGA】高云FPGA之IP核的使用->PLL锁相环
137 1
|
7月前
|
芯片 异构计算
【FPGA】高云FPGA之IP核的使用->PLL锁相环(一)
【FPGA】高云FPGA之IP核的使用->PLL锁相环
299 0
|
算法 编译器 测试技术
第二章 FPGA开发流程
第二章 FPGA开发流程
228 0
第二章 FPGA开发流程
|
13天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现了16QAM基带通信系统,包括调制、信道仿真、解调及误码率统计模块。通过Vivado2019.2仿真,设置不同SNR(如8dB、12dB),验证了软解调相较于传统16QAM系统的优越性,误码率显著降低。系统采用Verilog语言编写,详细介绍了16QAM软解调的原理及实现步骤,适用于高性能数据传输场景。
113 69
|
18天前
|
移动开发 算法 数据安全/隐私保护
基于FPGA的QPSK调制+软解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的QPSK调制解调系统,通过Vivado 2019.2进行仿真,展示了在不同信噪比(SNR=1dB, 5dB, 10dB)下的仿真效果。与普通QPSK系统相比,该系统的软解调技术显著降低了误码率。文章还详细阐述了QPSK调制的基本原理、信号采样、判决、解调及软解调的实现过程,并提供了Verilog核心程序代码。
53 26