diff --git a/config/config_zh.json b/config/config_zh.json index b1e0682d..27aeaaf6 100755 --- a/config/config_zh.json +++ b/config/config_zh.json @@ -24,7 +24,7 @@ }, { "url": "/hardware/zh/lichee/index.html", - "label": "LicheePi" + "label": "Lichee" }, { "url": "/hardware/zh/tang/index.html", diff --git a/docs/hardware/en/maix/modules_spmod/README_en.md b/docs/hardware/en/maix/modules_spmod/README_en.md index 22d49d03..c6bf1b93 100644 --- a/docs/hardware/en/maix/modules_spmod/README_en.md +++ b/docs/hardware/en/maix/modules_spmod/README_en.md @@ -33,14 +33,14 @@ - [Maix Amigo](./en/maixpy_develop_kit_board/maix_Amigo.md) -## LicheePi (Linux) +## Lichee (Linux) -LicheePi Zero +Lichee Zero -- [LicheePi Zero]() -- [LicheePi Zero Plus]() - -- [LicheePi Nano]() +- [Lichee Zero]() +- [Lichee Nano]() +- [Lichee Zero Plus]() +- [Lichee RV]() ## Lichee Tang(FPGA) diff --git a/docs/hardware/en/sidebar.json b/docs/hardware/en/sidebar.json index 2159b666..c67af0c1 100644 --- a/docs/hardware/en/sidebar.json +++ b/docs/hardware/en/sidebar.json @@ -114,7 +114,7 @@ ] }, { - "label": "LicheePi", + "label": "Lichee", "file": "lichee/README.md", "items": [ { diff --git a/docs/hardware/zh/lichee/README.md b/docs/hardware/zh/lichee/README.md index 81bad1b4..6a8aa141 100644 --- a/docs/hardware/zh/lichee/README.md +++ b/docs/hardware/zh/lichee/README.md @@ -3,7 +3,7 @@ title: Lichee Pi --- > 编辑与2022年3月11日 -- LicheePi 是 [Sipeed](https://www.sipeed.com/) 推出的开源产品,是为了能让用户获得优廉的linux设备,实战linux底层相关的内容的产品。 +- Lichee 是 [Sipeed](https://www.sipeed.com/) 推出的开源产品,是为了能让用户获得优廉的linux设备,实战linux底层相关的内容的产品。 目前LicheePi相关核心板部分参数对比表格如下: @@ -19,7 +19,7 @@ title: Lichee Pi - 上述的款型都可以通过sd卡启动系统 - 其他参数过多,版面放不下,需要的话麻烦自行对比一下。 -## LicheePi核心版照片(Linux) +## Lichee 核心版照片(Linux) ### Lichee Zero
diff --git a/docs/hardware/zh/maixII/M2/other.md b/docs/hardware/zh/maixII/M2/other.md
index 1540f292..e6be7218 100644
--- a/docs/hardware/zh/maixII/M2/other.md
+++ b/docs/hardware/zh/maixII/M2/other.md
@@ -8,7 +8,7 @@ desc: maixpy 其他事项
这里讲述 V831 开发板的一些额外使用事项和相关解决方法
-以下替换设备相关操作完成后,名称为 Maixhub 的镜像里的 app 应用不再可用
+以下替换设备相关操作完成后,名称为 `maixhub` 的镜像里的 app 应用不再可用
## 切换屏幕
@@ -132,4 +132,4 @@ reboot #重启设备来更新配置
在[下载站](https://dl.sipeed.com/shareURL/MaixII/MaixII-Dock/SDK/Toolchain)里有一个名为 `toolchain-sunxi-musl-pack-2021-01-09.tar.xz` 的文件,这是在 Linux 系统下为 V831 所使用的编译链。
-有需求的可以自行尝试,但是对于 V831 还是推荐使用 MaixPy3 和 Maixhub。
+有需求的可以自行尝试,但是对于 V831 还是推荐使用 MaixPy3 和 MaixHub。
diff --git a/docs/hardware/zh/maixIII/readme.md b/docs/hardware/zh/maixIII/readme.md
index 9b484eb9..dbad3a11 100644
--- a/docs/hardware/zh/maixIII/readme.md
+++ b/docs/hardware/zh/maixIII/readme.md
@@ -45,11 +45,6 @@ AX620A 是一款高算力、高能效比、低功耗的 AI SoC 芯片。芯片
3. 提供 uboot 、kernel 、sample 等 Linux 源码仓库、提供产品使用文档、源码开发方法等说明。
-4. 提供 MaixPy3 开发环境,支持 maixhub 模型分享与训练。
+4. 提供 MaixPy3 开发环境,支持 MaixHub 模型分享与训练。
-5. 提供交流社区、源码资料等.
-
-
-
-
-
+5. 提供交流社区、源码资料等.
\ No newline at end of file
diff --git a/docs/hardware/zh/sidebar.json b/docs/hardware/zh/sidebar.json
index 6b1e850e..fee6fde4 100644
--- a/docs/hardware/zh/sidebar.json
+++ b/docs/hardware/zh/sidebar.json
@@ -167,7 +167,7 @@
]
},
{
- "label": "LicheePi",
+ "label": "Lichee",
"file": "lichee/README.md",
"items": [
{
diff --git a/docs/hardware/zh/tang/tang-primer-20k/assets/start/educational_edition_programmer.png b/docs/hardware/zh/tang/tang-primer-20k/assets/start/educational_edition_programmer.png
new file mode 100644
index 00000000..2164717a
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/assets/start/educational_edition_programmer.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/LED.md b/docs/hardware/zh/tang/tang-primer-20k/examples/LED.md
index 98f8db3a..5772e54f 100644
--- a/docs/hardware/zh/tang/tang-primer-20k/examples/LED.md
+++ b/docs/hardware/zh/tang/tang-primer-20k/examples/LED.md
@@ -1 +1,340 @@
-# 施工中
\ No newline at end of file
+---
+title: Tang Primer 20K Dock 点一个灯
+tags: Tang Primer 20K Dock,上手
+keywords: Primer, Tang, Dock, 入门,20K
+desc: Tang Primer 20K Dock 简单上手
+update:
+ - date: 2022-09-21
+ version: v0.1
+ author: wonder
+ content:
+ - 初稿
+---
+
+对于软件开发来说,输出 `hello world` 就是入门了。对于硬件相关的开发而言,点灯就是同款入门。
+
+Dock 底板上有 6 个普通的 LED 可以自定义功能。用户可以使用这六个灯来组合成不同的状态来判断自己当前代码的运行情况,在此仅以最简单的流水灯为例,且对他进行简单的抓波。
+
+## 安装 IDE
+
+参考 [安装IDE](https://wiki.sipeed.com/hardware/zh/tang/Tang-Nano-Doc/get_started/install-the-ide.html) 来完成我们需要准备的软件环境。
+
+Windows 用户建议额外下载一次高云教育版的 Programmer 软件,这样可以避免烧录时因为 Programmer 版本不兼容 BL702 下载器而导致的奇怪问题。
+
+对于 Linux 用户的话建议使用 [openfpgaLoader](https://wiki.sipeed.com/hardware/zh/tang/Tang-Nano-Doc/get_started/flash_in_linux.html) 这软件来烧录 GW2A-18。
+
+## 新建工程
+
+文件 -> 新建 -> FPGA Design -> Project
+
+
+
+
+
+点击 OK 之后会提示让我们输入文件名称,此处以 `led` 为文件名做示范。
+
+
+
+到这里我们就完成文件的创建了,可以直接编写代码了。
+
+
+
+### Verilog 简单说明
+
+Verilog 是一种硬件描述语言,用来对数字电路进行抽象化描述。
+
+Verilog 的基本设计单元是“模块”(module)。
+
+一个模块是由两部分组成的:一部分描述接口,另一部分描述内部逻辑功能,即定义输入是如何影响输出的。
+
+一个模块长成这样:
+
+```v
+module module_name
+#(parameter)
+(port) ;
+ function
+endmodule
+```
+
+模块整体结构由 module 和 endmodule 组成,module 后面跟着的是模块的名称(module_name),可传递变量参数(parameter),端口及其方向的申明(port),紧接着就是内部逻辑功能描述(function) ,最后用 endmodule 来表示这一个模块,描述完毕。
+
+内部逻辑功能通常由 assign 和 always 块完成;其中 assign 语句描述逻辑功能,always 块常用于描述时序功能。
+
+### 代码思路
+
+写代码前我们需要先想清楚代码目的:每隔 0.5S 灯闪一次。
+
+对此所画的需求框图如下:
+
+
+
+然后对于 0.5S 我们需要一个计数器来计时,LED 灯闪就是 IO 翻转
+
+
+
+把上面的思维框图具体到实际使用的话,就变成下面的样式了:
+
+
+
+其中 Clock 为时钟源,用来给计时器提供准确的时间。
+
+### 代码描述
+
+根据上文 Verilog 简单说明和所描述的框图,可以所要编写 Verilog 模块有 Clock 和 IO电平 两个端口;
+
+```v
+module led(
+ input Clock,
+ output IO_voltage
+);
+
+endmodule
+```
+
+对于内部的计时模块,Primer 20K 核心板上的晶振为 27MHZ,因此我们每秒钟会有 27000000 个时钟上升沿,想要 0.5S 计数的话那么只需要计数 13500000 次上升沿就好。计数是从 0 开始的,数 13500000 的话就是从 0 数到 13499999。计数完后我们需要设置一个标志位,来通知 LED 的 IO 翻转一下电平。整体计数代码如下:
+
+```v
+//parameter Clock_frequency = 27_000_000; // 时钟频率为27Mhz
+parameter count_value = 13_499_999; // 计时 0.5S 所需要的计数次数
+
+reg [23:0] count_value_reg ; // 计数器
+reg count_value_flag; // IO 电平翻转标志
+
+always @(posedge Clock) begin
+ if ( count_value_reg <= count_value ) begin //没有计数到 0.5S
+ count_value_reg <= count_value_reg + 1'b1; // 继续计数
+ count_value_flag <= 1'b0 ; // 不产生翻转标志
+ end
+ else begin //计数到 0.5S 了
+ count_value_reg <= 23'b0; // 清零计数器,为重新计数最准备
+ count_value_flag <= 1'b1 ; // 产生翻转标志
+ end
+end
+```
+
+对于 LED IO 电平翻转代码如下:
+
+```v
+reg IO_voltage_reg = 1'b0; // 声明 IO 电平状态用于达到计时时间后的翻转,并赋予一个低电平初始态
+
+always @(posedge Clock) begin
+ if ( count_value_flag ) // 电平翻转标志有效
+ IO_voltage_reg <= ~IO_voltage_reg; // IO 电平翻转
+ else // 电平翻转标志无效
+ IO_voltage_reg <= IO_voltage_reg; // IO 电平不变
+end
+```
+
+
+将上面的代码整合后就变成了下面的内容:
+
+```v
+module led(
+ input Clock,
+ output IO_voltage
+);
+
+/**********计时部分**********/
+//parameter Clock_frequency = 27_000_000; // 时钟频率为27Mhz
+parameter count_value = 13_499_999; // 计时 0.5S 所需要的计数次数
+
+reg [23:0] count_value_reg ; // 计数器
+reg count_value_flag; // IO 电平翻转标志
+
+always @(posedge Clock) begin
+ if ( count_value_reg <= count_value ) begin //没有计数到 0.5S
+ count_value_reg <= count_value_reg + 1'b1; // 继续计数
+ count_value_flag <= 1'b0 ; // 不产生翻转标志
+ end
+ else begin //计数到 0.5S 了
+ count_value_reg <= 23'b0; // 清零计数器,为重新计数最准备
+ count_value_flag <= 1'b1 ; // 产生翻转标志
+ end
+end
+reg IO_voltage_reg = 1'b0; // 声明 IO 电平状态用于达到计时时间后的翻转,并赋予一个低电平初始态
+
+/**********电平翻转部分**********/
+always @(posedge Clock) begin
+ if ( count_value_flag ) // 电平翻转标志有效
+ IO_voltage_reg <= ~IO_voltage_reg; // IO 电平翻转
+ else // 电平翻转标志无效
+ IO_voltage_reg <= IO_voltage_reg; // IO 电平不变
+end
+
+
+/**********补充一行代码**********/
+assign IO_voltage = IO_voltage_reg;
+
+endmodule
+```
+
+上面代码最后面补充了一行代码,是因为 IO_voltage 声明在了 port 位置,默认为 wire 型,想要将它与 reg 变量 IO_voltage_reg 连接起来,需要用到 assign 语句。
+
+## 综合,约束,布局布线
+
+### 综合
+
+代码保存后,可以双击 IDE 内部的 Process -> Synthesize 来进行代码综合,将 verilog 代码内容转换为综合网表。
+
+
+
+关于网表有兴趣的可以自己去查阅相关资料,此处不再额外说明。
+
+### 约束
+
+综合完之后我们需要进行管脚约束,才能将所编写的模块端口与 FPGA 引脚相对应,并且实现模块的功能。
+
+点击上图 Synthesize 上面的 FloorPlanner 来进行管脚约束。
+
+
+
+由于是首次创建,所以会弹出下面的对话框,点击 OK 后就弹出了图形化约束交互界面。
+
+
+
+
+
+关于约束的方法可以查看 [SUG935-1.3_Gowin设计物理约束用户指南.pdf](http://cdn.gowinsemi.com.cn/SUG935-1.3_Gowin%E8%AE%BE%E8%AE%A1%E7%89%A9%E7%90%86%E7%BA%A6%E6%9D%9F%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf)
+
+此处因个人喜所以仅使用下图中 IO Constranins 方法来约束引脚:
+
+
+
+根据[核心板原理图](https://dl.sipeed.com/fileList/TANG/Primer_20K/02_Schematic/Tang_Primer_20K_Core_board_3690.pdf),我们可以知道晶振所输入的引脚为 H11。
+
+
+
+然后结合底板上的 IO 丝印,决定用地板上的 L14 引脚进行点灯,对应的 LED 编号为 LED4。
+
+
+
+因此对于在 FloorPlanner 交互窗口下面的 IO Constranins 中将 PORT(端口)与 Location(引脚) 分别填入下面的值:
+
+
+
+输入完毕后快捷键 Ctrl + S 来保存一下引脚约束,然后接可以关闭 FloorPlanner 的交互图形界面了。
+
+接着发现在工程项目里面多出来刚刚创建的 cst 文件了,里面的内容也比较好理解。
+
+
+
+### 布局布线
+
+完成约束后就要开始运行布局布线了,目的是为了把综合所生成的网表与我们自己定义的约束来通过 IDE 算出最优解然后将资源合理地分配在 FPGA 芯片上。
+
+双击下体红框处的 Place&Route 就开始运行了。
+
+。
+
+紧接着没有报错,全部通过。就可以开始进行烧录了。
+
+## 烧录固件
+
+Dock 板载了下载器,在 [安装IDE](https://wiki.sipeed.com/hardware/zh/tang/Tang-Nano-Doc/get_started/install-the-ide.html) 地时候我们已经安装了驱动。因此我们将板子与电脑连接起来就行。
+
+
+
+对于 Programmer 软件建议使用高云官网下载到 [点我跳转](http://www.gowinsemi.com.cn/faq.aspx) ,下载下图所示的 Programmer 软件即可。
+
+
+
+### 扫描设备
+
+在使用 Dock 底板的时候不要忘记使能核心板,按下 1 号拨码开关即可。
+
+
+
+双击下图中的下载程序(Program Device) 来运行 Programmer 软件
+
+
+
+然后在打开的页面中点击一下 scan_device 来扫描到我们的设备。
+
+
+
+点击 OK 后就可以进行烧录操作了。
+
+烧录相关的文档可以参考 [SUG502-1.3_Gowin_Programmer用户指南.pdf](http://cdn.gowinsemi.com.cn/SUG502-1.3_Gowin_Programmer%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97.pdf)
+
+
+### 下载到 SRAM
+
+一般来说这个模式是以用来快速要证所生成的固件是否满足自己目的的。
+
+因为其烧录快的特性所以使用的较多,然是当然断电会丢失数据,所以如果想上电运行程序的话是不能选这个的。
+
+点击 Operation 下面的功能框来打开设备设置界面,接着在 Operation 框中选择 SRAM Program 选项来设置为下载到 SRAM ,最后点击下面的那三个点点框来选择我们所生成的 .fs 下载固件。通常来说下载固件生成与工程文件目录下的 impl -> pnr 目录下。
+
+
+
+接着来点击红框处开始进行烧录
+
+
+
+有问题的话可以前往 [常见问题](https://wiki.sipeed.com/hardware/zh/tang/Tang-Nano-Doc/questions.html) 自行排查。
+
+到这里就下载完成了。
+
+### 下载到 Flash
+
+上面说过下载到 SRAM 是为了快速验证,但是不能上电运行程序。
+所以想要上电运行的话我们需要设置下载到 Flash。
+
+和上面下载到 SRAM 的步骤几乎类似,先点开 Operation 下面的功能框来打开设备设置界面,接着在 Operation 框中选择 External Flash Mode 选项来设置为下载到外部 Flash ,最后点击下面的那三个点点框来选择我们所生成的 .fs 下载固件,通常来说下载固件生成与工程文件目录下的 impl -> pnr 目录下。最后在下面的外部 Flash 选项中选择设备为 Generic Flash 。
+
+
+
+接着来点击红框处开始进行烧录
+
+
+
+然后我们的程序重新上电也能照样运行了。
+
+## 代码结果
+
+如图所示,只有一个灯在闪。
+
+
+
+## 结语
+
+到这里我们就已经完成了 FPGA 的 “Hello world” 了。以后的示例工程不会再叙述新建文件等操作了。
+
+需要使用高云在线逻辑分析仪的可以看这里:[使用 GAO]施工中
+
+下一篇:[点六个灯](./led_6.md)
+
+## 常见问题
+
+### No Cable found
+
+检查设备管理器里有没有下图这两个,没有的话需要安装 Programmer 驱动。
+
+
+
+确定有 converter 设备的话在确认用的是不是所要求使用的 Programmer, 本文[这里](#烧录固件)有写过。
+
+### No gowin device found
+
+确认自己使能了核心板。
\ No newline at end of file
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/block_method.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/block_method.png
new file mode 100644
index 00000000..2c707b52
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/block_method.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cable_connect.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cable_connect.png
new file mode 100644
index 00000000..bc2e8a7d
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cable_connect.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/clock_time_count.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/clock_time_count.png
new file mode 100644
index 00000000..088252a5
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/clock_time_count.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/connected.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/connected.png
new file mode 100644
index 00000000..6f1a9baf
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/connected.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cover.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cover.png
new file mode 100644
index 00000000..4bea3f2f
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cover.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/create_constrain_file.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/create_constrain_file.png
new file mode 100644
index 00000000..df0835a8
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/create_constrain_file.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/created_file.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/created_file.png
new file mode 100644
index 00000000..7dafa95e
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/created_file.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/crystal_port.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/crystal_port.png
new file mode 100644
index 00000000..3f1c4393
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/crystal_port.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cst_content.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cst_content.png
new file mode 100644
index 00000000..164c69d5
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/cst_content.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/device_choose.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/device_choose.png
new file mode 100644
index 00000000..b3ef5c7e
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/device_choose.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/educational_edition_programmer.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/educational_edition_programmer.png
new file mode 100644
index 00000000..2164717a
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/educational_edition_programmer.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/file_name.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/file_name.png
new file mode 100644
index 00000000..8187c182
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/file_name.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/flash_download.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/flash_download.png
new file mode 100644
index 00000000..7dcb45eb
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/flash_download.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/flash_mode.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/flash_mode.png
new file mode 100644
index 00000000..81f93653
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/flash_mode.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floor_planner_ioconstrain.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floor_planner_ioconstrain.png
new file mode 100644
index 00000000..2dd7457a
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floor_planner_ioconstrain.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floorplanner.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floorplanner.png
new file mode 100644
index 00000000..2be6083e
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floorplanner.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floorplanner_interface.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floorplanner_interface.png
new file mode 100644
index 00000000..613c96eb
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/floorplanner_interface.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/fpga_project.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/fpga_project.png
new file mode 100644
index 00000000..82edbbe5
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/fpga_project.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/io_constrain_value.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/io_constrain_value.png
new file mode 100644
index 00000000..e307c9e6
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/io_constrain_value.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/led.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/led.png
new file mode 100644
index 00000000..8a27cc93
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/led.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/led_blink.gif b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/led_blink.gif
new file mode 100644
index 00000000..1faff20c
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/led_blink.gif differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/new_project.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/new_project.png
new file mode 100644
index 00000000..01a74b9f
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/new_project.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/new_verilog_file.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/new_verilog_file.png
new file mode 100644
index 00000000..16ccbd85
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/new_verilog_file.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/open_programmer.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/open_programmer.png
new file mode 100644
index 00000000..bf0928da
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/open_programmer.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/place_route.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/place_route.png
new file mode 100644
index 00000000..f2fec597
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/place_route.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/project_path.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/project_path.png
new file mode 100644
index 00000000..6f721d62
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/project_path.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/result.gif b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/result.gif
new file mode 100644
index 00000000..c8427fe7
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/result.gif differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/scan_device.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/scan_device.png
new file mode 100644
index 00000000..135957cf
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/scan_device.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/sram_download.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/sram_download.png
new file mode 100644
index 00000000..08184769
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/sram_download.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/sram_mode.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/sram_mode.png
new file mode 100644
index 00000000..9a26a1fe
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/sram_mode.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/synthesize.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/synthesize.png
new file mode 100644
index 00000000..b9307573
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/synthesize.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/time_count.png b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/time_count.png
new file mode 100644
index 00000000..34352009
Binary files /dev/null and b/docs/hardware/zh/tang/tang-primer-20k/examples/assets/led_assets/time_count.png differ
diff --git a/docs/hardware/zh/tang/tang-primer-20k/start.md b/docs/hardware/zh/tang/tang-primer-20k/start.md
index fcb0f6eb..ea45e186 100644
--- a/docs/hardware/zh/tang/tang-primer-20k/start.md
+++ b/docs/hardware/zh/tang/tang-primer-20k/start.md
@@ -69,6 +69,10 @@ LED2 与 LED3 的丝印错误,应当为:
默认固件中,将 3、4 号两个灯设置为时钟检测信号,可以通过这两个灯的状态来鉴别设备是否工作。
+### 实战使用
+
+[点一个灯](./examples/led.md)
+
## Lite 开箱说明
### 应该更新记录
diff --git a/docs/soft/Lichee/zh/README.md b/docs/soft/Lichee/zh/README.md
index 72d42308..66b19ba4 100644
--- a/docs/soft/Lichee/zh/README.md
+++ b/docs/soft/Lichee/zh/README.md
@@ -3,12 +3,11 @@ title: Lichee Pi
keywords: Sipeed, Hardware, 矽速, 软件资料, 文档, 资料下载
desc: 矽速科技的硬件资料站
---
-- LicheePi 是 [Sipeed](https://www.sipeed.com/) 推出的开源产品,是为了能让用户获得优廉的linux设备,实战linux底层相关的内容的产品。
+- Lichee 是 [Sipeed](https://www.sipeed.com/) 推出的开源产品,是为了能让用户获得优廉的linux设备,实战linux底层相关的内容的产品。
-