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并不适合做具体的业务,但是底层的加载、监控、互斥还是非常合适的。

相关推荐
吉他英雄一里18 小时前
FPGA--RAM
fpga开发
szxinmai主板定制专家19 小时前
储能 EMS、微网控制器选型:RK3588、RK3576、RK3568+FPGA 怎么选?多网、多 CAN、EMC 设计权衡
人工智能·深度学习·机器学习·fpga开发·工业网关·rk3576·电力网关
XMAIPC_Robot20 小时前
ARM+FPGA+AI船舶/工业自动化控制器EMC测试等级解析(IEC60533/IEC60945)
arm开发·人工智能·fpga开发·zynq·arm+fpga·rk3588+fpga
ALINX技术博客21 小时前
ALINX 亮相 2026 工博会,聚焦 FPGA 行业应用场景
ai·fpga开发·射频工程
星夜离尘561 天前
FPGA 复位回归实验:双时钟停钟、释放中重入与消费端首拍自检
fpga开发
szxinmai主板定制专家1 天前
ZYNQ 数据采集方案踩坑总结:电力强电磁干扰、工业现场多协议适配优化
运维·人工智能·fpga开发·机器人·zynq
幻智星科技1 天前
一个开源的纯FPGA网口采集卡
网络协议·fpga开发·udp
bobuddy1 天前
硬件加速三件套:emulator-FPGA 原型-云仿真
fpga开发
szxinmai主板定制专家2 天前
软硬协同!ZYNQ 高速多通道同步采集,变电站 / 工厂设备状态监测方案详解
人工智能·深度学习·机器学习·fpga开发·zynq·rk3576
FPGA小徐2 天前
FPGA 8阶LFSR加扰/解扰器设计
fpga开发