首页 > 其他分享 >Tang Primer 25K学习记录

Tang Primer 25K学习记录

时间:2024-10-17 15:48:14浏览次数:7  
标签:reset 25K clk Tang counter PERIOD input Primer

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寿命

视频演示

<iframe allowfullscreen="true" border="0" frameborder="no" framespacing="0" scrolling="no" src="//player.bilibili.com/player.html?isOutside=true&aid=113321604878394&bvid=BV13NyAYVEY8&cid=26329484610&p=1"></iframe>

标签:reset,25K,clk,Tang,counter,PERIOD,input,Primer
From: https://www.cnblogs.com/smallwxw/p/18472476

相关文章

  • 强大的无头UI表格库:TanStack Table!Github Star达到了惊人的25K!
    强大的无头UI表格库:TanStackTable!GithubStar达到了惊人的25K!在构建现代化Web应用时,表格和数据网格是常见的UI组件,特别是在处理大量数据或需要复杂交互时,选择合适的表格库尤为重要。TanStackTable是一款功能强大的HeadlessUI表格库,支持TypeScript/JavaScript、React、......
  • [论文阅读报告] All pairs shortest paths using bridging sets and rectangular matr
    本篇文章介绍整数边权下\((\min,+)\)矩阵乘、APSP等问题的一些做法。若每个元素的权值在\([-M,M]\cap\mathbbZ\)中,\(n\timesn^r\)和\(n^r\timesn\)的\((\min,+)\)矩阵乘可做到\(\tildeO(Mn^{\omega(r)})\);有向图APSP可做到\(\tildeO(n^{2+\mu(t)})\),......
  • WPF canvas Draw line , ellipse and rectangle, save canvas and contents as pictu
    //xaml<Windowx:Class="WpfApp417.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.mi......
  • 自修C++PrimerPlus--第九章(上)
    目录1.类作用域1.1基本介绍1.2作用域为类的常量1.3作用域内枚举2.内存模型和名称空间2.1头文件重复包含问题2.2存储连续性2.3独立编译的过程2.4链接属性2.4.1外部连接性2.4.2内部连接性2.4.3无连接性2.5自动变量和栈2.6寄存器变量2.7静态变量2.8extern举例说......
  • c++primer第七章函数学习笔记
    函数的基本知识定义函数无返回值voidfunctionName(parameterList){  statement(s);  return;//optional}有返回值  typeNamefuntionName(parameterList)  {    statements;    returnvalue;  }#include<iostream>usi......
  • 精读《C Primer Plus》——作用域(scope)
    作用域(scope)参考:CPrimerPlus第6版第12章存储类别、链接和内存管理1.分类2.blockscope/块作用域2.1.定义block/块是用一块花括号括起来的代码区域块作用域变量的范围是从定义处到包含该定义块的末尾声明在内层块中的变量,其作用域仅局限于该声明所在的块......
  • 【C++ Primer Plus习题】16.6
    大家好,这里是国中之林!❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←问题:解答:main.cpp#include<iostream>#include<cstdlib>#include<ctime>#include<queue>usingn......
  • 【C++ Primer Plus习题】16.5
    大家好,这里是国中之林!❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←问题:解答:#include<iostream>#include<list>usingnamespacestd;template<typenameT>intreduce(T......
  • C++ Primer Plus 第六版中文版(上)
    参考资料:《C++PrimerPlus第六版中文版》笔记作者:Mr.Crocodile欢迎转载文章目录开始学习C++头文件命名规定名称空间`cout`、`cin`函数处理数据简单变量变量命名规则整型运算符`sizeof`和头文件climitsclimits中的符号常量变量初始化整型字面量整型字面量后缀char......
  • cpp primer plus 第七章
    7.1函数基本知识7.1.1定义函数函数分为两类:有返回值与无返回值的函数。对于有返回值的函数,必须使用返回语句,将值返回给调用函数。若函数包含多条返回语句,则函数在执行第一条返回语句后结束。7.1.2函数原型声明函数如果在main函数后方,则在前面声明函数(复制函数定义中的......