紫光同创FPGA开发板 - 正点原子ATK-DFPGL22G入手

因为工作原因,现在主要从事FPGA开发,入手了一块正点原子新出的紫光同创的FPGA开发板:ATK-DFPGL22G。

先甩一个天猫链接在这里:【天猫】正点原子FPGA开发板PGL22G国产紫光同创Logos系列

天猫商品页截图

参数介绍

芯片采用的是紫光同创PGL22G - MBG324,直接看常用资源:

器件 LUT5(个) 等效LUT4(个) FF(个) DRAM(bits) 18Kb DRAM(bits) PLL ADC HMEMC 用户IO
PGL22G 17536 21043 26304 71040 48 6 1 2 240

对于简单的学习、实验、功能开发,这块芯片的资源是完全足够了。

板上资源:

◆ 主控芯片:Pango Logos 系列 PGL22G-6MBG324,封装:MBG324,速度等级:-6
◆ 晶振:50Mhz 有源晶振
◆ FLASH:QSPI FLASH,容量:128Mbit(16MB)
◆ DDR3:容量:4Gbit(512MB)
◆ EEPROM 芯片:AT24C64,容量:64Kbit(8KB)
◆ 1 个电源指示灯(蓝色)
◆ 4 个状态指示灯(LED0-LED3:红色)
◆ 1 个程序下载完成指示灯(绿色)
◆ 1 个 ATK MODULE 接口,支持正点原子蓝牙/GPS/UART 等模块
◆ 1 个标准的 RGB888 TFT-LCD 接口
◆ 1 个 OLED/摄像头模块接口
◆ 1 个 MIPI DSI LCD 接口
◆ 1 个 ADC 输入测试
◆ 1 个 USB 串口
◆ 1 个有源蜂鸣器
◆ 1 个 6 位数码管
◆ 1 个红外接收头
◆ 1 个单总线接口
◆ 1 路 HDMI 输出接口
◆ 1 个 TF 卡接口
◆ 1 路千兆以太网接口(RJ45)
◆ 1 个 10-Pin JTAG 接口,提供开发板下载和调试的功能
◆ 1 组 5V 电源扩展口,支持对外提供电源和外部输入电源
◆ 1 组 3.3V 电源扩展口,支持对外提供电源和外部输入电源
◆ 1 个直流电源输入接口(输入电压范围:DC6~16V)
◆ 1 个 RTC 后备电池座,并带电池
◆ 1 个 RTC 实时数字时钟,采用 PCF8563 芯片
◆ 1 个复位按键,可作为 FPGA 程序执行的复位信号
◆ 4 个功能按键
◆ 1 个电容触摸按键
◆ 1 个电源开关,控制整个开发板的电源
◆ 2 个 21x2 扩展口,共 84 个扩展 IO 口

开箱

开发板本体正面照一张:

开发板正面照

过程没录,总之就是一个标准快递盒+泡沫纸+防静电袋的包装。除了开发板本体还有一根12V1A DC供电,一根USB-A to USB-typeC数据线,用于连接板载的CH340E USB转UART芯片、一个红外遥控器。

我买的是带下载器版本的,于是还有一个正点原子的紫光FPGA/CPLD下载器,可以用于下载程序、DEBUG。

值得一提的是这个开发板两面均用铜柱连接了一个亚克力外壳,优点是可以防静电、更美观等,缺点就是有部分引脚,比如MIPI DSI引脚完全被亚克力盖住,想要安装排线必须要拆开上层压克力板才能安装。

简单流水灯测试

关于软件激活

我是提前注册了紫光同创官网的账号并申请了lisence,安装好了官方正版的Pango Design Suit 2021.4-SP2。紫光同创比较麻烦的一点是官网注册账号要求必须填写企业信息以及使用企业邮箱收取相关邮件,可能对于个人兴趣爱好开发者和学校学生来说比较麻烦。由于它的lisence是根据机器上的网卡MAC来判定有效的,如果是不方便官网注册的开发者只是为了学习的话,可以使用虚拟网卡手动指定他人申请下来的lisence所对应的MAC地址进行使用。具体细节就不多描述了,我购买的这块正点原子开发板附赠的教程中有相关方案。

编程环境

紫光的EDA——Pango Design Suit,整体UI界面还是很清爽的,布局和功能也很合理。

PDS界面

但是之前在工作中使用过发现他还是有个地方让我无法理解,就是它的RTL视图以及Tech视图的配色,这种超高对比度的配色看久了真的很坏眼睛:

Tech视图配色

(之前背景色不是黑色,而是青色,真的纯亮瞎狗眼)

而且器件的实例名、IO名必须要缩放到很大才显示RTL视图中文字显示

对于小屏用户来说其实很不友好。至少保证一下在缩放较小的时候显示一下实例名也好啊,至少方便查信号的时候快速找到实例位置。

我关于紫光这个软件的槽点主要还是集中在这个界面配色以及显示逻辑上,希望以后能改得更好吧。

(虽然这玩意和正点原子做的开发板关系不大就是了)

简单流水灯测试

简单的一个流水灯,50M的输入晶振分频到1Hz来触发移位。

Verilog代码

module led_loop_top(
    input  wire clock_50m,
    input  wire sys_rst_n,
    output wire led_0,
    output wire led_1,
    output wire led_2,
    output wire led_3
   );

reg [27:0]cnt_1s = 28'h0;
reg clock_1s = 1'b0;
reg [3:0]led_loop_r = 4'b1000;

assign {led_0, led_1, led_2, led_3} = led_loop_r;

always@(posedge clock_50m or negedge sys_rst_n)
begin
    if(!sys_rst_n)
    begin
        cnt_1s[27:0] <= 28'h0;
        clock_1s <= 1'b0;
    end
    else
    begin
        if(cnt_1s == 50_000_000)
        begin
            clock_1s <= 1'b1;
            cnt_1s[27:0] <= 28'h0;
        end
        else
        begin
            clock_1s <= 1'b0;
            cnt_1s[27:0] <= cnt_1s[27:0] + 28'h1;
        end
    end
end

always@(posedge clock_50m or negedge sys_rst_n)
begin
    if(!sys_rst_n)
    begin
        led_loop_r[3:0] <= 4'b1000;
    end
    else
    begin
        if(clock_1s)
        begin
            led_loop_r[3:0] <= {led_loop_r[0], led_loop_r[3:1]};
        end
        else
        begin
            led_loop_r[3:0] <= led_loop_r[3:0];
        end
    end
end

endmodule

实际效果

贴个视频

总结

这块板子给我的整体感觉是资源很全,包括正点原子的开发教程也很方便,很适合稍微有一点点电子基础的人入门,加上是国产芯片,价格没有xlinx, altera之类大厂那么离谱,就很适合我这种穷人。板上资源也比较丰富,HDMI,以太网,MIPI接口也都预留好了,作为入门级FPGA开发板已经完全足够了,不带下载器的话价格才338,还要什么自行车!

Last modification:November 20, 2022
觉得有帮助的话,打赏一个呗~