感谢发烧友爱好者和小眼睛科技公司提供的FPGA测试机会。
一、环境建立
小眼睛科技公司的官网是www.meyesemi.com,在官网上可以找到一些简单的介绍。不过要搭建开发系统,建议关注“小眼睛FPGA”的公众号,同时微信添加客服17665247134,有关开发工具的下载和License的获取都可以从客服那里获得。产品使用方面的问题也可以联系客服咨询。小眼睛科技为其FPGA开发板提供了很多技术资料,但是这些资料无法从其官网下载,所以最好的获取资料的办法就是找客服索要了。客服会提供1K/2K资料的网盘,其中包括了软件使用说明、硬件设计资料和Demo程序。
要开发盘古的FPGA,首先需要安装Pango Design Suite(PDS),激活所需要的License可以向客服索要。软件安装成功后,就可以参考《PDS快速使用手册》建立工程,并进行编译、烧写等工作了。小眼睛科技公司提供的是三合一下载线,该下载线的连接请参考“小眼睛FPGA”微信视频号中的“#紫光同创盘古系列FPGA开发板@盘古1K2K开发板 烧录器下载器 连接教程”。
二、流水灯测试
要实现流水灯的效果,在FPGA中比较简单,8个LED灯的状态对应8个比特的数据,流水操作实际上就是对8位数据进行移位操作。
程序的主要部分为:
`define UD #1
module water_led(
input clk,
input rstn,
output [7:0] led
);
//==============================================================================
//reg and wire
reg [25:0] led_light_cnt= 26'd0;
reg [ 7:0] led_status = 8'b0000_0001;
// time counter
always @(posedge clk)
begin
if(!rstn)
led_light_cnt <= `UD 26'd0;
else if(led_light_cnt == 26'd19_999_999)
led_light_cnt <= `UD 26'd0;
else
led_light_cnt <= `UD led_light_cnt + 26'd1;
end
// led status change
always @(posedge clk)
begin
if(!rstn)
led_status <= `UD 8'b0000_0001;
else if(led_light_cnt == 25'd19_999_999)
led_status <= `UD {led_status[6:0],led_status[7]};
end
assign led = led_status;
endmodule
我拿到的开发板是1KG的,所以需要修改芯片类型为PGC1KG-6LPG100。
编译完成后,使用Configuration工具进行下载即可。
下面的视频就是流水灯实现的效果。