本文介绍国产FPGA GW1NSR的片上资源和特性,从官网能获取资料的途径,完成这一步可以使读者在自己的项目遇到问题的时候能够独立解决,高云官网提供了综合用的IDE、编程下载工具,以及应用手册、数据手册和参考手册,所有资源都会附上链接。
第二章从新建工程开始一步一步的介绍如何写一个verilog文件实现一个流水灯,读者读完这章可以下载软件敲一下代码,步骤很详细,不懂在本贴下方留言。
第三章介绍IP核的使用,本次是使用片上的硬核CM3处理器,使用IP核配置工具使能SPI总线、UART和GPIO0,用于驱动spi接口的lcd,读完这章读者可以在硬核上使能自己想要的外设。
第四章介绍如何移植rtthread到硬核上。希望读完本文的读者能够基于高云的FPGA芯片和开发工具能够快速上手自己的项目。(本文为星核计划贡献者:秦韦忠作品)
b69337c6-2b17-11ec-82a8-dac502259ad0.png
GW1NSR介绍
b69337c6-2b17-11ec-82a8-dac502259ad0.png
高云方案商推出的板载GW1NSR的ministar开发板内嵌Cortex-M3硬核非常适合于verilog的学习。
可以看到GW1NSR内嵌了一个CM3的硬核,还有一个DSP,使用verilog语言可以得到任何数字电路,FPGA一般用于IO扩展,因为数字电路是并行的,能够提升MCU的性能,片上集成了一个CM3,其优势是可以减小嵌入式产品的体积,普通采用MCU+FPGA架构的产品因为使用了分立的MCU+FPGA会增加产品体积,加上目前国内MCU的缺货现状,GW1NSR在性能上要高于普通MCU,既可以在硬核上运行串行的业务逻辑,也能用FPGA的资源实现并行的数字逻辑。想要详细的了解这颗芯片的资源,请查看芯片的数据手册。
b69337c6-2b17-11ec-82a8-dac502259ad0.png
入门:带你从新建工程到手写一个流水灯
b69337c6-2b17-11ec-82a8-dac502259ad0.png
开发环境准备
1.下载和安装软件
2.申请license
3.安装ministar的usb驱动
新建工程和创建verilog文件
1.新建工程
2.新建和编写verilog文件实战:面向ip核应用的片上硬核处理器。
b69337c6-2b17-11ec-82a8-dac502259ad0.png
新项目如上,本章主要内容是用IP核使能带片内硬核的spi外设驱动spi lcd。
注意LVCMOS33的配置,驱动spi芯片需要3.3V的电平。FPGA配置在这里,然后写了CM3的程序。
FPGA配置在这里,然后写了CM3的程序。
从以下网址下载固件包:
http://www.gowinsemi.com.cn/prodshow_view.aspx?TypeId=71Id=186FId=t3131
驱动程序的核心是实现spi的寄存器写入和数据写入功能,如下所示,详细的驱动程序代码见文末工程文件。
//使用高云mcu固件库中的spi写函数spi_WriteData(数据),定义spi的芯片选择宏和lcd驱动的命令/数据使能宏。移植相对简单。void LCD_WR_REG(uint8_t数据){ LCD _ CS _ CLRLCD _ RS _ CLRSPI_WriteData(数据);LCD _ CS _ SET}
void LCD_WR_DATA(uint8_t数据){ LCD _ CS _ CLRLCD _ RS _ SETSPI_WriteData(数据);LCD _ CS _ SET}
完成了FPGA和CM3的工作。fs文件由FPGA项目合成,bin文件由CM3项目编译,然后下载。
此时,液晶屏开始显示测试画面,表示驱动正常,cm3工作正常。
b69337c6-2b17-11ec-82a8-dac502259ad0.png
将操作系统rtthread移植到硬核。
b69337c6-2b17-11ec-82a8-dac502259ad0.png
这一章的内容是将rtthread移植到GW1NSR的片上CM3,使产品实时化。
1.下载rtthread nano 3.1.3内核源代码并复制到项目目录中。
下载地址:
https://www.rt-thread.org/page/download.html
2.在keil项目中添加源文件。
3.添加头文件。
4.注释掉systick、hardfault和pendsv中断。
完成上述步骤后,编译项目并下载到开发板,rtthread开始在开发板上运行。
b69337c6-2b17-11ec-82a8-dac502259ad0.png
摘要
b69337c6-2b17-11ec-82a8-dac502259ad0.png
这是第一次使用国产FPGAs。让我惊讶的是,IP核非常丰富。这次在官网的数据搜索中,发现了riscv和arm的软核,发现2018年发布了一些参考手册。可以知道,高云在FPGA方面积累了相当长的技术,为用户带来了便捷的IDE软件和各种参考应用手册。这个ministar开发板非常适合学生。我希望高云能推出更多这样的比赛,向学生展示开发板,这将有助于verilog在中国的普及,促进我国数字集成电路的发展。