esp32开发与应用(和高云FPGA的配合)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

之前fpga只能国外做的时候,比如大家使用的altera,或者是xilinx的fpga,整体还是比较贵的。但是现在很多国产的fpga也是可以用起来了,价格也是非常亲民。另外,fpga使用的范围其实还是很多的,不只是大家认为的高速电路和复杂算法,在低端的上电、安全、信号互斥等领域其实也非常实用。

1、现在的fpga模块不贵

以高云fpga为例,大部分模块都不贵,很多1k的fpga甚至只有小几十元,而且是板载jtag下载电路的,比如sipeed模块。

2、低端fpga的应用场景

低端fpga,一般都是用在一些低频、非标的场合。比如说开机顺序的控制、安全关键领域、电机控制领域,还有就是一些监控领域。以监控领域为例,可以是fpga监控soc、mcu、电控和esp32,这就非常方便。

3、ide下载

如果是高云fpga,一般下载教育版本的ide即可,也就是gowin fpga designer。

4、烧入

一开始使用的时候,可以直接选择带jtag下载电路的模块即可。这个时候,我们编译完代码,就可以直接综合、分配管脚、时序约束、布局布线和下载了。ide上面有一个programmer,直接点击,就会弹出一个下载框,直接下载即可。

5、sram烧入和flash烧入

烧入的时候,注意有sram和flash两种烧入。前面一种,断电后就丢失了,后面一种断电后还能继续运行。

6、fpga开发的三个基本文件

首先肯定是代码文件,一般就是verilog或者是vhdl文件,目前普遍用verilog文件比较多。第二个就是管脚约束文件,gowin上面就是cst文件。最后一个就是时序约束文件,如果本身clk信号比较慢,可以不添加。这里给出一个v文件,

复制代码
module led (
    input sys_clk,
    input sys_rst_n,
    output reg [2:0] led // 110 R, 101 B, 011 G
);

reg [31:0] counter;

always @(posedge sys_clk or negedge sys_rst_n) begin
    if (!sys_rst_n) begin
        counter <= 31'd0;
        led <= 3'b110;
    end
    else if (counter < 31'd1350_0000)       // 0.5s delay
        counter <= counter + 1;
    else begin
        counter <= 31'd0;
        led[2:0] <= {led[1:0],led[2]};
    end
end

endmodule

还有一个cst文件,

复制代码
//Copyright (C)2014-2021 Gowin Semiconductor Corporation.
//All rights reserved. 
//File Title: Physical Constraints file
//GOWIN Version: 1.9.8
//Part Number: GW1NZ-LV1QN48C6/I5
//Device: GW1NZ-1
//Created Time: Thu 09 16 14:45:08 2021

IO_LOC "led[2]" 11;
IO_PORT "led[2]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8;
IO_LOC "led[1]" 10;
IO_PORT "led[1]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8;
IO_LOC "led[0]" 9;
IO_PORT "led[0]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8;
IO_LOC "sys_rst_n" 13;
IO_PORT "sys_rst_n" IO_TYPE=LVCMOS33 PULL_MODE=UP;
IO_LOC "sys_clk" 47;
IO_PORT "sys_clk" IO_TYPE=LVCMOS33 PULL_MODE=UP;

至于时钟约束,可以这么写,

复制代码
create_clock -name sys_clk -period 37.037 -waveform {0 18.518} [get_ports {sys_clk}]

7、烧录的文件格式

一般就是fs文件。

8、仿真

编写verilog之前,最好先仿真一下。仿真的方法可以是modelsim这样的商业软件,也可以是iverilog这样的开源软件,都是可以的。

9、fpga的优势

如果用类似1k、4k这样低端的fpga,整体的成本都是可控的,但是fpga实现的功能却是mcu比拟不了的。比如说用在安全领域,它可以同时监控多个模块,即使每一个模块都是ttl,都没有关系的。还比如,它可以在信号领域实现安全绑定,比如透过与或非的形式,强制保证一些信号是互斥、互锁的。最后,就是fpga本身的并发优势,如果用mcu去监控,基本就是循环loop+中断的方式,而fpga就是并发检测,根本不是顺序执行的概念。

10、灵活处理fpga

esp32本身做业务比较合适,但是如果是底层信号,尤其是硬件级别的信号处理,其实用fpga是非常合适的。fpga并不适合做具体的业务,但是底层的加载、监控、互斥还是非常合适的。

相关推荐
156002548402 小时前
基于3U VPX总线架构的VU37P FPGA高带宽HBM缓存数据处理卡(缓存带宽480GB/s)
fpga开发·架构
szxinmai主板定制专家5 小时前
基于 RK3576 的智能割草机器人解决方案,从样机到量产
人工智能·嵌入式硬件·计算机视觉·fpga开发·机器人·rk3588+fpga·割草机器人
续写烂尾1 天前
SD NAND vs SPI NAND:接口协议、坏块管理与开发成本全面对比
fpga开发
叶子野格1 天前
《Verilog学习:数字系统设计基础》
学习·fpga开发
花 满 楼1 天前
TPWM — PWM 测量模式(TIM PWM Measurement Mode)
单片机·嵌入式硬件·fpga开发
叶子野格1 天前
《Verilog学习:前置知识》
学习·fpga开发
科恒盛远2 天前
RFSoC XCZU47DR 100G UDP高速数据传输的实现与调试(PCIE908 板卡技术系列三)
fpga开发
小麦嵌入式2 天前
FPGA入门(十一):受控线性序列机 UART 发送升级
stm32·单片机·嵌入式硬件·mcu·fpga开发·硬件工程
X_xcccc2 天前
2026硬核拆解:高性能异构计算板卡选型指南
fpga开发