时间:2025-02-16 来源:FPGA_UCY 关于我们 0
前言:
前几天看了国科大本科生造芯片那事感觉挺震撼的,然后看了报道了解到他们使用了语言进行芯片开发。据说效率很好,比高效多了。刚好公司有块的-6板子,感觉好奇就想试试用写FPGA试试。
本人一直做STM单片机,PCB专职画图员。没学过FPGA,也没学过,纯兴趣驱动了解用开发FPGA,写此文档纪念一下入门过程。
首先感谢西安前辈提供资料。附上两位前辈资料 首先做为一个FPGA 纯小白,我需要首先明白了解A:是啥,B:开发环境是啥?C:哪能找到一个例程?D:FPGA开发环境是啥?如何下载?以及例程(需要修改LED定义引脚)E:用生成的代码可以直接运行吗?
带着以上问题一个一个学习解决
A:是啥。这个看前辈的博客
第一章 新型敏捷硬件开发语言——和Scala
第二章 Scala入门——让你的代码跑起来。
就能明白大概个意思,然后再百度百度资料应该差不多了。(需说明前辈是用LINUX开发环境,我是用的WIN10,因为查的书,说也可以WIN10开发,IDE用的 IDEA )
B:开发环境
前面说的书为-book,是一个PDF文档,-book:
找到其中 1.1.3章节开发环境搭建。
OK,按着以上内容下载所需要的软件。
C:哪能找到一个例程?
OK,继续看这本书,这是本好书,Hello world例程书里有了,代码在Git上
继续找到了GIT上的-. OK 点击去GIT上 克隆下来,
好了,找到例程了。现在想想例程怎么编译?生成代码在哪?
书中1.7章节有写
书里只写了下的编译生成(请大佬勿拍,我是小白,描述可能不准确)。至于下载到FPGA文档里说要自己动手,不在文档教程内了。
说明:CMD后命令提示符,使用git clone 下的代码是在本地电脑路径
C:\Users\NJSG-DSP\- 下(NJSG-DSP就是你电脑名)
继续cd -/hello-world/
继续编译sbt run
需要等待很长时间,然后显示成功。(因为我编译过了,所以第二次很快)。
OK,现在找生成的,书中说是Hello.v,百度. v就是文件。
嗯,带着无比膜拜无比好奇的心情打开(用文本方式 打开就行)
嗯,嗯,嗯,按着我C语言的菜功底,感觉可能还是看不懂,不过没关系,生成的我们暂时不需要看懂,我们先跑例程,先建立一个信心。我现在还是幼稚园阶段。
D:FPGA开发环境是啥?如何下载?以及例程(需要修改LED定义引脚)
好了,有了生成的.v代码文件了。我想偷懒,我不想建立FPGA工程,我现在也不懂建,我想直接移植过去 ,那么开发FPG用什么环境呢?用什么软件?
好了,公司刚好有一块-6开发板,黑金的。淘宝有,感谢黑金,现在教程都做的很好,直接搜AX309,就能找到资料了(老板,广告到这了,你们可以打钱了)
先看01_学习教程之例程篇。的01 02 (03,04,05可以后面再看)
资料里面有DEMO,
完成,我就只需要一个。
OK,照着02教程下载一遍,跑通整个过程。(先不要着急直接把生成的直接替换demo 的.v文件,我是小白,我要一步步来,我需要知道 demo以及整个流程没问题了,再继续)
demo例程我就不截图了,就是4个LED流水灯。
看demo代码,用C语言的理解,再看现象感觉有点点理解意思(装懂)
对了,我现有FPGA开发IDE是 ISE,因为公司用这个,有问题可以问同事,嘿嘿嘿嘿…
用ISE打开demo工程
问了同事,ucf就是FPGA引脚时钟配置用的文档,点开看看
好了,到这里我有了生成的Hello.v 代码 有了ISE开发环境,FPGA板子,引脚配置。那么下一步就是直接替换.v文件。(直接替换最省事,不用建立工程,以个人理解 ,这些IDE识别文件都是用名字的吧,嘿嘿嘿嘿,)直接打Hello.v拷进demo文档,修改名字替换掉demo里的.v。(两个文档各自做好备份,以备查验对比)
重新打开工程。点 会出现许多错误。因为demo是4个灯,时钟名称和复位名称也不一样
上面 是黑金demo代码
这是生成代码。
好,开始修改。
clock修改为 clk. reset修改为 .
至于 reg[3:0] led 以C理解,好像这是4个灯吧。好像是吧。直接修改 为 led
引脚配置里只留一个led,(即LED1,其它不要)
再次点击编译还有错误
会提示哪行 有错误,这里的clock和reset也需要修改为demo里面的名称。
再次编译。没有错误了,OK,下载。
没反应!!!!准备要哭了,随便点了个开发板上reset按键,哦,哦,哦,LED1居然正常闪了。
看看上面 代码 ,
好像里面代码生成里面有 if(res_n)判断,猜是判断按键吧?那么我把按键直接去掉试试?
好了,在引脚配置里面,把NET rst_n 隐掉。编译,下载…
系统下,用语言开发入门FPGA入门,呼吸灯
OK,LED1(LED0正常闪),代表整个流程没问题了。enjoy…(视频没上传 - -! 晚点补上)