本帖最后由 1653149838.791300 于 2023-12-2 09:27 编辑
感谢深圳小眼睛科技提供的盘古1K开发板及配套的下载工具及资料,给与此次参与使用机会。 一.开箱与开发环境搭建
1.了解开发板
收到开发板套件很是高兴,能感到活动组织很用心,除了开发板与仿真烧录器,连转接板、线,板上双排针、USB线这些都一一配齐,硬件上拿来直接上手就可以用,很不错,必须点赞。套件如下图1 图1:开箱开发板套件
盘古1K开发板基于紫光PGC1KG-LPG100 FPGA为核心,预留丰富的扩展 IO 及数码管、按键、 LED 灯,拨码开关,为用户提供基本的硬件环境。器件资源如图2绿框内所示 图2:MES1KG_LPG100资源
下载器为紫光同创官方认证 联合小眼睛科技出品,JTAG接口通过转接板可以3种规格JTAG接口,我们用到的2*5PIn接口。下载器如下图3
图3:下载器
此外,资料里配有开发板原理图及各文档等,在做实验、开发时可做设计开发参考。
2.开发环境搭建
目前阶段主要做实验,熟悉掌握开发使用,建议安装使用免License版 PDS_2022.2-SP1-Lite,有3年试用期已经足够。关闭杀毒软件或者添加路径信任,一路安装Setup.exe,有安装驱动弹框选择同意。
安装成功后桌面快捷方式Pango Design Suite 2022.2-SP1-Lite ,安装是比较简便快捷的,License版需要申请且安装教复杂些,此处不赘述。界面如图4
图4:开发界面
二.建立工程,实现LED流水灯
1.搭建工程
刚入门主要熟悉IDE开发工具,一般按照手册搭建流程步骤就可建立工程,推荐详细阅读 Pango Design Suite 快速入门手册和Pango Design Suite 用户手册。
这里参考官方资源,并对关键代码做解读。
/*
*代码解读,做一些 注释,说明
*/
//-----------------------------------start---------------------------------------------//
`
timescale 1ns / 1ps //时间单位为1ns,精度为1ps
`define UD #1 //定义 UD 表示#1; #1 仅仿真有效,
module water_led( //创建 module
input clk,
input rstn,
output [7:0] led
);
//reg and wire 寄存器与线网
reg [25:0] led_light_cnt;
reg [ 7:0] led_status;
// time counter
always @(posedge clk) // 触发条件; posedge 为上升沿, negedge 为下降沿
begin //单计数*2*T 20_000_000*2*40MHz=0.5s为周期
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
//-----------------------------------end---------------------------------------------//
LED硬件管脚分配,参照原理图部分如下
图5:LED引脚配置
2.编译、烧录
双击 Compile 或右击选择 Run, 编译,生成位流文件。
图6:编译
下载位流文件:Tools-->Configuration,选择Scan Device直接进行扫描Jtag链操作,初始化链成功,会将链上扫描到的所有器件显示于工作区内,并在器件属性窗口显示当前器件的器件信息,并弹出对话显示能够为器件添加的配置文件。在下图器件选择后右键点击“Program”下载位流文件。
图7:下载烧录
自此开发板上8个LED以0.5s间隔接替点亮实现,如下视频