【每周一练】+盘古1K开发板+LED流水灯 - FPGA开发者技术社区 - 电子技术william hill官网 - 广受欢迎的专业电子william hill官网 - 威廉希尔官方网站
分享 收藏 返回

Cool 关注 私信

【每周一练】+盘古1K开发板+LED流水灯

本帖最后由 1653149838.791300 于 2023-12-2 09:27 编辑

     感谢深圳小眼睛科技提供的盘古1K开发板及配套的下载工具及资料,给与此次参与使用机会。
一.开箱与开发环境搭建
1.了解开发板
       收到开发板套件很是高兴,能感到活动组织很用心,除了开发板与仿真烧录器,连转接板、线,板上双排针、USB线这些都一一配齐,硬件上拿来直接上手就可以用,很不错,必须点赞。套件如下图1
          1_开箱.jpg
       图1:开箱开发板套件
       盘古1K开发板基于紫光PGC1KG-LPG100 FPGA为核心,预留丰富的扩展 IO 及数码管、按键、 LED 灯,拨码开关,为用户提供基本的硬件环境。器件资源如图2绿框内所示
          2_FPGA资源.png
      图2:MES1KG_LPG100资源
        
      下载器为紫光同创官方认证 联合小眼睛科技出品,JTAG接口通过转接板可以3种规格JTAG接口,我们用到的2*5PIn接口。下载器如下图3
         3_下载器.jpg
        图3:下载器
        此外,资料里配有开发板原理图及各文档等,在做实验、开发时可做设计开发参考。
        
2.开发环境搭建
       目前阶段主要做实验,熟悉掌握开发使用,建议安装使用免License版 PDS_2022.2-SP1-Lite,有3年试用期已经足够。关闭杀毒软件或者添加路径信任,一路安装Setup.exe,有安装驱动弹框选择同意。
安装成功后桌面快捷方式Pango Design Suite 2022.2-SP1-Lite ,安装是比较简便快捷的,License版需要申请且安装教复杂些,此处不赘述。界面如图4
       4_IDE界面.png
     图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引脚配置.png
         图5:LED引脚配置
  2.编译、烧录
         双击 Compile 或右击选择 Run, 编译,生成位流文件。
          6_编译.png
          图6:编译
  
      下载位流文件:Tools-->Configuration,选择Scan Device直接进行扫描Jtag链操作,初始化链成功,会将链上扫描到的所有器件显示于工作区内,并在器件属性窗口显示当前器件的器件信息,并弹出对话显示能够为器件添加的配置文件。在下图器件选择后右键点击“Program”下载位流文件。
         7_烧录.png
       图7:下载烧录

      自此开发板上8个LED以0.5s间隔接替点亮实现,如下视频

盘古1K_LED流水灯

回帖(1)

温暖镜头

2023-12-5 11:57:42
非常不错,期待大佬后续分享

更多回帖

×
发帖