Tang Primer 25K学习记录

Tang Primer 25K

Tang Primer 25K 是基于 GW5A-LV25MG121 所设计的一款极小封装的核心板(23x18mm),并配套全引脚引出(除MIPI高速脚外)的25K Dock底板。(国产高云FPGA),作为学习使用,非常小巧,大家可以购买(底板的3d保护壳可以使用博主的,建议打印一个,因为fpga开发板这种海上比较脆弱,如果碰到静电什么),博主是去年购买了吃灰了好久,现在有空拿出来玩玩。

底板和螺丝百度网盘链接:
链接:https://pan.baidu.com/s/1encetriBSqsJffrh5WDdyw
提取码:23o3

具体资料可以到
链接:https://wiki.sipeed.com/hardware/zh/tang/tang-primer-25k

picture 0

图1 Tang Primer 25K实物图

picture 1

图2 Tang Primer 25K博主加装底部外壳实物图

安装Gaowin IDE

注意25K需要使用 V1.9.9Beta-4 或更新的IDE版本(教育版本就ok)
下载链接:http://www.gowinsemi.com.cn/faq.aspx

picture 2

图3 Gaowin IDE图

板子上面芯片为GW5A-LVMG121NES,但是教育版本上是GW5A-LV25MG121NC1/I0,我问过客服,一样使用就ok。

可以设置外部编辑器(vscode或者notepad++)

picture 4

图4 设置图1

picture 3

图5 设置图2

FPGA学习记录

看原理图

picture 6

图6 原理图1

picture 5

图7 原理图2

点灯

verilog code

module LED_FLOW(
	input clk,
	input reset_n,
	output reg [7:0]led
);

reg [25:0] counter;

initial
begin
	led=8'hff;
	counter=26'd0;
end

// 定义参数
parameter CLK_FREQ = 50_000_000; // 时钟频率50MHz
parameter BLINK_PERIOD = 1;      // 闪烁周期1秒
localparam COUNTER_MAX = CLK_FREQ * BLINK_PERIOD - 1; // 计数器最大值

always @(posedge clk or negedge reset_n) 
begin
    if (!reset_n)
        counter <= 26'd0;
    else if (counter < COUNTER_MAX)       // 1s
        counter <= counter + 1'b1;
    else
        counter <= 26'd0;
end

always @(posedge clk or negedge reset_n) 
begin
    if (!reset_n)
        led <= 8'hff;
    else if (counter == COUNTER_MAX)       // 1s
        led<=~led;
    else
        led<=led;
end

endmodule

跑马灯

verilog code

module LED_RUN(
	input clk,
	input reset_n,
	output reg [7:0]led
);

reg [25:0] counter;

initial
begin
	led=8'hfe;
	counter=26'd0;
end

// 定义参数
parameter CLK_FREQ = 50_000_000; // 时钟频率50MHz
parameter BLINK_PERIOD = 1;      // 闪烁周期1秒
localparam COUNTER_MAX = CLK_FREQ * BLINK_PERIOD - 1; // 计数器最大值

always @(posedge clk or negedge reset_n) 
begin
    if (!reset_n)
        counter <= 26'd0;
    else if (counter < COUNTER_MAX)       // 1s
        counter <= counter + 1'b1;
    else
        counter <= 26'd0;
end

always @(posedge clk or negedge reset_n) 
begin
    if (!reset_n)
        led <= 8'hff;
    else if (counter == COUNTER_MAX)       // 1s
        led<={led[6:0],~led[7]};
    else
        led<=led;
end

endmodule

流水灯

verilog code

module LED_FLOW(
	input clk,
	input reset_n,
	output reg [7:0]led
);

reg [25:0] counter;

initial
begin
	led=8'hfe;
	counter=26'd0;
end

// 定义参数
parameter CLK_FREQ = 50_000_000; // 时钟频率50MHz
parameter BLINK_PERIOD = 1;      // 闪烁周期1秒
localparam COUNTER_MAX = CLK_FREQ * BLINK_PERIOD - 1; // 计数器最大值

always @(posedge clk or negedge reset_n) 
begin
    if (!reset_n)
        counter <= 26'd0;
    else if (counter < COUNTER_MAX)       // 1s
        counter <= counter + 1'b1;
    else
        counter <= 26'd0;
end

always @(posedge clk or negedge reset_n) 
begin
    if (!reset_n)
        led <= 8'hfe;
    else if (counter == COUNTER_MAX)       // 1s
        led<={led[6:0],led[7]};
    else
        led<=led;
end

endmodule

重要注意事项

picture 7

图8 引脚绑定

多少引脚填写H多少就可以,那个原理图里面的。

picture 8

图9 程序烧写

picture 9

图10 程序烧写

烧写建议烧到sram,节省flash寿命

视频演示

posted @   wuboy19  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
历史上的今天:
2023-10-17 【玄铁杯第三届RISC-V应用创新大赛】LicheePi 4A Yolov5n的HHB编译顺利通过的环境
2023-10-17 搭建局域网网盘alist
点击右上角即可分享
微信分享提示