【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

相关文章
|
芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(一)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
678 2
|
编译器 异构计算 内存技术
【FPGA】高云FPGA之科学的FPGA开发流程(三)
【FPGA】高云FPGA之科学的FPGA开发流程
920 0
【FPGA】高云FPGA之科学的FPGA开发流程(三)
|
异构计算
【FPGA】高云FPGA之科学的FPGA开发流程(二)
【FPGA】高云FPGA之科学的FPGA开发流程
974 0
|
芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(三)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
424 4
|
存储 芯片 异构计算
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管(二)
【FPGA】高云FPGA之数字钟实验->HC595驱动数码管
513 4
|
芯片 异构计算
【FPGA】高云FPGA之IP核的使用->PLL锁相环(二)
【FPGA】高云FPGA之IP核的使用->PLL锁相环
576 1
|
芯片 异构计算
【FPGA】高云FPGA之IP核的使用->PLL锁相环(一)
【FPGA】高云FPGA之IP核的使用->PLL锁相环
1251 0
|
算法 编译器 测试技术
第二章 FPGA开发流程
第二章 FPGA开发流程
524 0
第二章 FPGA开发流程
|
算法 数据安全/隐私保护 异构计算
基于FPGA的变步长LMS自适应滤波器verilog实现,包括testbench
### 自适应滤波器仿真与实现简介 本项目基于Vivado2022a实现了变步长LMS自适应滤波器的FPGA设计。通过动态调整步长因子,该滤波器在收敛速度和稳态误差之间取得良好平衡,适用于信道均衡、噪声消除等信号处理应用。Verilog代码展示了关键模块如延迟单元和LMS更新逻辑。仿真结果验证了算法的有效性,具体操作可参考配套视频。
531 74
|
12月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于FPGA的SNN脉冲神经网络之LIF神经元verilog实现,包含testbench
本项目展示了 LIF(Leaky Integrate-and-Fire)神经元算法的实现与应用,含无水印运行效果预览。基于 Vivado2019.2 开发,完整代码配有中文注释及操作视频。LIF 模型模拟生物神经元特性,通过积分输入信号并判断膜电位是否达阈值产生脉冲,相较于 Hodgkin-Huxley 模型更简化,适合大规模神经网络模拟。核心程序片段示例,助您快速上手。

热门文章

最新文章