查看原文
其他

小脚丫FPGA开发板到底有何神奇的地方?——小脚丫STEP-MXO2 二代评测

2016-08-22 爱板网
背景

微控制器作为目前嵌入式系统设计的主力军在各行各业得到了广泛的应用,但随着物联网、智能硬件、VR等一系列新兴概念产品的问世,市场产品有明显的多样化趋势,功能更为丰富,因而这也给工程师在嵌入式产品设计的时候提出了新的挑战。


举个例子,虽然如今的微控制器产品系列细分化更为彻底,对每个层次的领域都有相关的MCU产品支持,但这也意味着器件的选型和资源评估需要更加谨慎,传统MCU开发平台的选型就是一个难题,对于讲究适用就够的原则,选性能功能强大丰富的微控制器浪费资源、浪费成本,选低端的入门级微控制器可能又会出现功能不支持,IO口不足等问题。


另外不同平台的有不同的开发环境流程等要熟悉,这也大大延长了工程师在项目开发中的时间;而在另一个对于以前来说相对小众的FPGA领域中,随着工艺的进步和EDA设计工具的不断发展,FPGA的集成度越来越高,而对应的功耗和成本却在不断降低,FPGA的门槛(学习成本和价格成本)也相应地越来越低,因而也使得其被广泛应用到各种领域中去,越来越多的嵌入式系统设计直接采FPGA设计,或者使用FPGA产品作为系统功能的拓展,总之,目前的嵌入式系统设计中越来越多的出现FPGA的身影。

小脚丫STEP-MXO2 二代


作为目前依旧小众化,但市场前景乐观的FPGA市场,众多知名的厂商都推出了各种看似功能强大、但实际体验效果并不好的FPGA开发平台。


与此同时,国内有些厂商却另辟新意,推出了一些精致小巧的FPGA开发板,看似没什么功能,可玩性不强,但实质却是接口丰富,灵活易用,既可作为FPGA入门学习、又能用于项目开发,比如说笔者手上拿到的这款小脚丫STRP-MXO2 二代FPGA开发板。




小脚丫FPGA开发板是基于Lattice公司的MXO2 FPGA系列,说起这款开发板,它还有个“前世今生”的故事。


首先要说明一下的,目前上面看到图片是小脚丫二代产品,其实在此之前,它还有一个一代的产品,当时还在爱板网众筹过,那会看到不少网友分享了使用的帖子,很多都吐槽一代的小脚丫开发板板载FPGA芯片的逻辑资源有些少,另外在一代上没有板载下载器,只是提供了额外的下载器,使用携带不够方便,原本精致小巧、给人印象不错的板子就因为这个或那个的原因没给人留下多深刻的印象。


不过,也正是因为一代上暴露出的问题,经过了众多工程师的试用、市场一番洗礼,小脚丫STEP-MXO2二代有种浴火重生的感觉,在一代上遗留的、被吐槽的问题在二代上有了大幅的改进,更增加了许多的外设功能,废话不多说,直接上实物图。


相较于一代,二代的包装由塑料盒改成了纸质包装盒,可能每个人的看法不一样,以笔者这样的,认为如果用一代上那种看起来廉价的塑料盒倒不如用现在这种,不仅环保,多出的成本还可以花功夫在板卡本身上。不过,包装盒本身也值得吐槽下,说不上什么原因,但是看起来就不像是一个开发板的包装。




包装盒背面倒是印有小脚丫公司的信息,包括电话、地址,有需求的可以直接打电话联系,灰常方便,背面的一个二维码倒是让人有些摸不着头脑,没做任何说明。




展开包装盒可以看到关于小脚丫FPGA开发板的资料、教程链接以及小脚丫板卡扩展IO口引脚的信号定义,这让工程师可以对小脚丫开发板有个初步认识,可以做些什么用途有个大概的了解,非常方便。





事实上,虽然在上文笔者已经透露小脚丫二代增加了板载的下载器以及一些功能外设,但不可否认的是,二代在达成上述条件的同时保持了一代的身材,板卡尺寸为52mm X 18mm,依然小巧精致。





板载外设资源:


  • 1路Micro USB接口

  • 2位7段数码管;

  • 2个RGB三色LED;

  • 4路拨码开关;

  • 4路按键;

  • 8路用户LED;

  • 36个用户可扩展I/O(其中包括一路SPI硬核接口和一路I2C硬核接口)

  • 集成 FT232编程器


从上图中可以了解到,小脚丫二代是一款超小巧40pin DIP结构的FPGA开发板,它所采用的核心FPGA芯片为Lattice公司MXO2系列的4000HC产品,相比于小脚丫一代板载的FPGA芯片 MXO2 1200HC系列产品,二代板载的FPGA芯片资源提升了将近4倍,同时板上集成了FT232编程器和按键、拨码开关、数码管、LED等多种外设资源。




另外,小脚丫二代同样扩展出了36个FPGA IO接口,通过2.54mm通孔焊盘引出,可以和面包板配合使用灵活的嵌入到其它的嵌入式系统设计中。当然最值得肯定的是,二代板载的FT232芯片可以实现板载的编程,无需像一代一样外接一个编程器,不仅方便,而且大大提升了灵活性。



二代板载外设功能的提升一方面得益于设计的改进,另一方面功不可没的是板载的这颗Lattice公司的MXO2系列的4000HC FPGA芯片,更多的资源也使板载的功能得到了丰富。



核心器件: Lattice LCMXO2-4000HC-4MG132


  • 4320个LUT(查找表)资源; 

  • 96Kbit User Flash,92Kbit RAM;

  • 2+2路PLL+DLL;

  • 嵌入式功能块(硬核):一路SPI、一路定时器、2路I2C

  • 支持DDR/DDR2/LPDDR存储器;

  • 上电瞬时启动,启动时间<1ms;


从二代板载的这颗FPGA芯片规格来看,对比一代上面的MXO2-12000,主要的提升还是在于LUT资源、User Flash、RAM,另外,二代还多了一个PLL,这样看下来,二代产品的提升还是主要在于资源上,这也让工程师可以有选择的选择一代或是二代产品做为适合自己项目的开发平台,当然,如果你想入门学习FPGA的话,笔者还是推荐二代,毕竟外设功能更多,板载编程器,更方便初学者学习。




开发环境


每个FPGA厂商都有自己的EDA工具,使用可编程器件开发的都知道FPGA的EDA工具的重要性,所以EDA工具的好用与否也有可能影响工程师对这家公司的FPGA产品态度。Lattice公司自家的EDA工具为Diamond,支持windows32位、64位以及linux 32位、64位系统版本,有可选性,工程师可以选择自己擅长的平台开发。


Diamond可以去Lattice官网下载,非常方便,并且Diamond的安装包相对于赛灵思或者Altera的安装包要小的多。


下载地址:

http://www.latticesemi.com/zh-CN/Products/DesignSoftwareAndIP/FPGAandLDS/LatticeDiamond.aspx



Diamond的安装过程也非常的简单,只需按照默认的提示一路next就行,不过在安装过程中有一个激活方式的选择需要注意一下,如下图所示,选择Node-Lock Licnse,Lincense可以通过官网免费获取到。




Diamond安装完成后要将官网免费获取到的License拷贝到Diamond安装目录的License文件夹下,设置环境变量指向正确地址,完成后就可以打开Diamond工具。如果是第一次接触FPGA,第一次接触小脚丫的开发环境,总会有用户会觉得EDA工具安装会是一件比较麻烦的事,小脚丫的团队可能早早就考虑到这种情况,所以在包装盒上直接印上了详细的软件安装教程,非常的贴心。




下图为Diamond工具的界面,看起来很简洁,在软件窗口右侧是User Guides、Reference Guides、Tutorials、FPGA Design Guide等大量文档链接,很有指导性。



上电启动


小脚丫二代开发板是通过MicroUSB接口上电启动的,开发板在出厂的时候已经预载了一个演示Demo,上电后可以直接看到Demo的运行状态。可以从下图中看到,在二代上可展示的外设功能,如数码管、RGB LED、LED灯,这些功能在预置的出厂程序中都有展示到。




小脚丫二代板卡是通过板载的FTDI FT232 USB转串口芯片(见下图)实现编程的,通常情况下Diamond安装好了之后能够自动识别编程模块。如果不能自动安装驱动程序,需要先下载驱动程序,根据不同的系统下载驱动版本。


驱动下载地址:

http://www.ftdichip.com/Drivers/VCP.htm




实际来了解下小脚丫二代的开发流程,新建了File-->New-->Project




新建一个LED闪烁的例程,想示范这个例程原因无非是在小脚丫一代上已经提供了,我们只需修改一下管脚配置直接拿来使用就行。




添加相关设计文件或约束文件,这里笔者直接新建工程,所以不需添加,直接Next




选择相应的器件型号,跟你小脚丫二代上的FPGA芯片(LCMXO2-4000HC-4MG132)一样就行了




点击下一步,选择综合工具,Synplify Pro(第三方)和Lattice LSE(原厂)都可以,这里就使用原厂Lattice LSE。




最后会出现之前你整个设置的工程信息,先前选择的所有信息都在这,确认无误点击Finish。




下图则是新建好后Diamond的整个工程界面。




工程建好后就需要添加设计文件,点击File-->New-->File




选择Verilog Files,Name还是填写之前命名的LED,然后New。




这里直接套用小脚丫1代的程序,当然,如果仔细看的话确实有些地方要修改,比如小脚丫1代只有板载两个LED,所以只做了这两个LED的交替闪烁,但是小脚丫二代有8个LED。


当然,如果直接套用1代的程序的话那也是可以实现两个LED的交替闪烁;另外一个,小脚丫1代是采用了外部25MHz的晶振,而二代是则与FTDI F232编程器芯片共同使用的8MHz的晶振,一些细节的地方可能还需要实际入手才能比较好的感受到,这里就不做改变,直接讲讲整个设计流程。




完成代码的设计后选择左边的Process栏,双击Synthesis Design,对设计进行综合,综合完成后Synthesis Design显示绿色对勾,如图




综合完成后需要对FPGA分配管脚,选择Tools →Spreadsheet View,界面如下




这里就必须要改变一下了,不能再直接套用小脚丫1代的配置,因为二代的资源多了,管脚定义相应也有所变化,管脚配置的话可以参考小脚丫二代的包装盒上,实际用起来效果很好,非常方便。因为套用的小脚丫1代中代码只涉及到了两个LED,所以这边只有两个LED管脚分配,另外设置IO口类型为LVCMOS33。




完成后保存,再选择Process,勾选所有选项,直接双击Export Files,所有布局布线输出依次完成,结束后,所有选项显示绿色对勾。



说实话,下载的过程还是有点慢的,好在还能忍受。



下载成功后会显示相应的PASS状态提示。





当然,这只是入门级的LED闪烁的程序,这里也只是走了整个工程开发的过程,对于复杂的工程开发需要预仿真和后仿真等,保证最终的程序设计逻辑和时序符合我们的设计要求。Diamond也自带了Active-HDL仿真软件,如果对这部分内容感兴趣的网友,可以参考爱板论坛中关于小脚丫1代中的工程仿真范例,本文就不再累述了。


小结


看完小脚丫二代,你会惊叹它小巧精致的外观,开箱上电即可使用的便利,当然或许你也会觉得和市面上动辄各种功能的FPGA开发板,小脚丫二代的外设还是不够看,但是如果你换一种思维,考虑到开发平台的成本,考虑到开发平台以后的实用性,小脚丫FPGA可以满足你诸多不同层次的需求,比如层叠同样大小的DIP40标准的模块;


或是作为独立功能的模块使用在主板上,增加各种外设功能;


还可以在实验中可以直接插在面包板上进行各种测试,方便灵活,避开了FPGA使用QFP/BGA封装的问题等,这无论对于初入手FPGA的学生来说,还是想做项目开发的工程师来说,甚至是精于各种DIY的电子发烧友来说,都是值得期待的。


另外,笔者在之前查看小脚丫二代资料的时候,同样发现了小脚丫团队另外的几款开发板STEP-MAX10、STEP-WiFi、STEP-Baseboard等信息,由此看来小脚丫团队的野心不小,结合目前市面上火热的物联网、智能家居概念,想要构建一个属于FPGA的开源生态系统环境,当然,这一步想要达成还有待考验,可以说前途是光明的,道路是曲折的,至于到底会怎样,交给时间来验证吧。





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存