{{ :eetreewechat.png?600 |}} **扫描二维码,关注微信公众号“电子森林”,可以在手机上查看本网站的所有文章** #### 小脚丫FPGA在全国大学生电子设计竞赛中的应用 ----- {{ :stepfpga4contest.png |}} 竞赛用FPGA哪家强?当然是FPGA中的小钢炮 - 苏州思得普公司专为高校同学打造的“小脚丫FPGA”平台: * 小巧、实用,只有[[DIP40]]的封装,可以把它当成一个器件焊上插针或通过杜邦线连接实现即插即用,秒杀市面上所有其它FPGA开发板; * 功能足够强大,本模块上FPGA的一小部分的资源(逻辑单元、存储器)就可以满足大赛中所有的逻辑需求; * 使用超级简单,一根常用的USB充电线即可供电又可以完成代码的下载,配置成你所需要的任何逻辑功能; * 软件上手很快,只需要一个小时你就能掌握如何使用我们的模块,以及如何进行FPGA代码的编译; * 更重要的是我们有很多验证成熟的代码和实例解析,在你争分夺秒的几天里,将大大助力你的项目进程; * 多种外设模块,可以搭配实现各种功能 * 支持[[rpi|树莓派]]、[[Arduino]]、[PMOD](https://en.wikipedia.org/wiki/Pmod_Interface)的各种外设模块,省去了硬件设计的麻烦 * 已经成功移植[[8051]]、Arm Cortex M0、[[risc_v|RISC-V]]控制器内核,可以当控制器使用 {{ :stepfpgaxo2.jpg?800x320 |}} #### 小脚丫STEP FPGA --- 小脚丫系列[[FPGA]]核心板卡均采用小巧的[[DIP40]]封装并在板上集成了下载器,一根人人都有的、用于手机充电宝的MicroUSB数据线即可完成供电与下载,另外板卡上配备了数码管、LEDs、三色灯、轻触按键和拨码开关供您调试使用,在此, 我们共提供了两种不同版本的板卡供您选择: * 如果你是个FPGA的初学者,你可以毫不犹豫地选用这个世界上最容易上手、性价比最高的基于[[http://www.latticesemi.com|Lattice]] [[http://www.latticesemi.com/Products/FPGAandCPLD/MachXO2.aspx|MXO2]]系列FPGA的STEP-MXO2-C,本学习模块是我们专为本暑期的万人FPGA大赛而定制的特价版本,它采用了全球排名第三的FPGA厂商[[http://www.latticesemi.com|Lattice Semi]]的MXO2系列,可以用世界上最通用的逻辑编程语言[[verilog|Verilog]]进行逻辑编程,编译工具为免费、快速的[[lattice_diamond的使用|Diamond]],下载、安装即可使用; * 如果你曾经用过[[http://www.altera.com|Altera]]的FPGA器件,可以选用我们基于Altera [[https://www.altera.com/products/fpga/max-series/max-10/overview.html|MAX10]]系列FPGA的STEP-MAX10版本,它采用Altera(现Intel)的MAX10系列FPGA,同样可以使用[[Verilog]]或VHDL进行逻辑编程,编译工具为[[https://www.altera.com/products/design-software/fpga-design/quartus-prime/overview.html|Quartus]]; * 如果你曾经用过[[http://www.xilinx.com|Xilinx]]的FPGA器件,也很容易,说明你已经熟悉了FPGA的设计流程,选用以上任何一种都没有问题,因为Verilog编程都是通用的,只需要花几十分钟了解一下编译界面的不同就可以轻松使用任何一种了,你会发现我们的FPGA模块要比你曾经使用过的Xilinx的FPGA用起来更简单、快捷 ** 两款小脚丫FPGA模块资源对比** ^ |**Lattice XO2 版本** |**Altera MAX10M02版本** | ^核心器件 |Lattice LCMO2-4000HC-4MG132|Altera MAX10 10M02S153I7G| ^查找表(LUTs)的密度/LEs |4K | 2K | ^内嵌块SRAM(Kbits) |92 |108 | ^用户Flash存储(Kbits) |96 || ^内部锁相环 |2 |1 | ^配置存储器 |内部Flash|| ^最高时钟频率 |400MHz|| ^GPIO数量|36,包括一路硬核[[spi|SPI]]接口(4线)、一路硬核[[i2c|I2C]]接口(2线)|36| ^板上功能|2位7段数码管、2个RGB三色LED、4路拨码开关、4个按键、8个单色LED|| ^支持的软核 |[[8051|8051]]、[[mico8单片机|MICO8]]、[[mico32处理器|MICO32]]|[[8051|8051]]| ^编程语言 |[[verilog语法快速参考|Verilog]]| [[verilog语法快速参考|Verilog]]或AHDL | ^编译工具 |[[lattice_diamond的使用|Diamond]] |[[quartus安装及配置|Quatus Prime]] | ^下载方式 |通过MicroUSB直接下载编程|| ^供电方式 |通过USB端口+5V 或 板上+5V(Pin40)或 板上+3.3V(Pin1)|| ^零售价格 |169元([[https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-15534223944.3.gaKcdj&id=543730230478|通过淘宝购买]])([[http://www.eeboard.com/shop/?c=products&a=view&id=3856|通过爱板网商城购买]])|| ^批量价格 |169元|| 如果你要了解这两个板卡的详细情况,您可以点击对应板卡名称跳转至板卡详情页: ^ {{ ::comxo2c.png?300 |}} ^{{ ::comax10.png?300 |}}^ | [[STEP-MXO2-C|基于Lattice MXO2 FPGA的大赛专用版本STEP-MXO2-C]] | [[STEP-MAX10|基于Altera MAX10系列FPGA的版本STEP-MAX10]] | ##### 可以搭配的模块: - 双路[[DAC]] - 100Msps/10bits,生成20MHz以内的任意信号波形 - 双路[[ADC]] - 100Msps/8bits,采集模拟带宽20MHz以内的波形 - 传感器/[[LED]]显示 - 用于各种传感器的算法训练和实现 - 等等 ##### 关于小脚丫FPGA在电赛中应用的更多资源: * [[stepfpga|STEP FPGA平台 - 快速入门FPGA并能够陪伴工程师一生的万能数字逻辑模块]] * [小脚丫FPGA官网及在线编译系统](http://www.stepfpga.com) * [小脚丫FPGA的在线学习资源](http://www.stepfpga.com/doc) * [[electronics_design_contest|2019全国大学生电子设计竞赛资源大全]] #### 小脚丫FPGA在电赛中的典型应用及参考IP ##### 1.对“输入”信号的处理 * 轻触按键与拨码开关:[[1. 点亮LED|利用按键和拨码开关控制LED]] \\ * 按键消抖:[[7. 按键消抖|FPGA实现多种按键消抖的方法]] \\ * 矩阵按键:[[矩阵按键模块|FPGA实现矩阵键盘]] \\ * 旋转编码器:[[旋转编码器模块|旋转编码器参考实例]] \\ ##### 2.产生”输出“控制信号 * GPIO驱动LED实例:\\ * [[1. 点亮LED|利用按键和拨码开关控制LED]] \\ * [[2. RGB LED|点亮三色的LED]] \\ * [[4. 数码管显示|数码管显示]] \\ * [[6. LED流水灯|LED流水灯]]\\ * 脉宽调制技术(PWM)实例: [[9. 呼吸灯|呼吸灯]] \\ * 并行外设寻址与数据读写: * {{:sdram参考资料.zip|SDRAM读写参考实例}} * 并行[[DAC]]和[[ADC]]的数据读写 ##### 3.控制串行外设 * [[I2C]]:{{:i2c_bus_specification.pdf|I2C总线规范}},参考例程[[ADC数模转换模块|I2C总线驱动ADCPCF8591芯片的实例]],参考IP:{{:i2cmasterwithwishbonebusinterface-sourcecode.zip|I2C控制器wishbone总线-lattice IP}},{{:i2ccontrollerforserialeeproms.zip|I2C EEPROM控制器-lattice IP}} \\ * [[SPI]]:[[http://www.stepfpga.com/doc/spi|SPI简介]],参考例程{{:spi.rar|}},参考IP:{{:spimastercontroller-sourcecode.zip|SPI主控制器wishbone总线-lattice IP}} \\ * [[UART]]:[[http://www.stepfpga.com/doc/uart|UART简介]],参考例程:[[UART串口模块|UART模块与PC串口通信的实例]] \\ * I2S:[[http://www.stepfpga.com/doc/i2s|I2S简介]],参考IP:{{:i2scontroller.zip|I2Scontroller—lattice IP}} ##### 4.信息显示 * LED驱动: * [[1. 点亮LED|点亮LED]]\\ * [[6. LED流水灯|LED流水灯]]\\ * [[2. RGB LED|点亮三色的LED]] \\ * [[4. 数码管显示|数码管静态显示实例]];[[数码管模块|基于74HC595的数码管动态显示实例]] \\ * FPGA驱动LCD: * SPI接口1.8寸LCD屏参考实例:{{:基于lcd液晶屏的图片显示系统设计.zip|}} \\ * 诺基亚5110屏参考实例:{{:lcd_nokia5110.rar|}}\\ * OLED屏驱动程序:{{:oleddriver.rar|}} ##### 5.逻辑及运算 * 运算 * 整数运算IP核:[[https://www.altera.com.cn/content/dam/altera-www/global/en_US/pdfs/literature/ug/ug_altmult_add.pdf|整数运算IP核使用指南]] * 浮点运算IP核:[[https://www.altera.com.cn/content/dam/altera-www/global/zh_CN/pdfs/literature/ug/ug_altfp_mfug.pdf|浮点运算IP核使用指南]] * 编码变换:{{:bin_to_bcd.zip|二进制转BCD码}} * 逻辑运算IP核:[[https://www.altera.com.cn/content/dam/altera-www/global/en_US/pdfs/literature/catalogs/lpm.pdf|LPM类逻辑IP核使用指南]] ##### 6.数字信号处理 * 数字信号处理 * Altera快速傅里叶变换(FFT)IP核:[[https://www.altera.com/documentation/hco1419012539637.html#hco1419012438961|FFT使用指南]] * Altera数控振荡器(NCO)IP核:[[https://www.altera.com/documentation/hco1421694900164.html#hco1421694881684|NCO使用指南]] * 直接数字式频率合成(DDS) * [[http://www.stepfpga.com/doc/_media/fundamentals_of_direct_digital_synthesis_dds_.pdf|DDS合成信号基础]] * [[http://www.fpga4fun.com/DDS.html|DDS原理及实现]] * 直播视频:[[http://www.moore8.com/courses/1568|moore8电赛系列直播课程-DDS实例讲解]];参考代码:{{:dds.rar|DDS_verilog}} * 参考IP:{{:dds_synthesizer_latest.tar.gz|DDS_synthesize_VHDL - opencores IP }} * 数字滤波器 * Altera FIR滤波器IP核:[[https://www.altera.com/documentation/hco1421694595728.html#hco1421694575632|FIR II使用指南]] * Altera CIC滤波器IP核:[[https://www.altera.com/documentation/hco1421847945390.html#hco1421847882821|CIC使用指南]] * [[http://opencores.org/projects?cat=DSP+core|DSP core - opencores IP]] ##### 7.信号调制解调 * 信号调制解调 - AM、FM、ASK、FSK、PSK、QAM ##### 8.时钟处理 * [[5. 时钟分频|时钟分频]] * [[http://www.stepfpga.com/doc/_media/fundamentals_of_phase_locked_loops_plls_.pdf|锁相环PLL]];{{:machxo2sysclockplldesignandusageguide.pdf|machxo2 sysclock pll设计指南}} * [[8. 计时控制|计时控制]] ##### 9.IP核的使用 * Lattice IP核的使用 * [[http://www.cnblogs.com/tony-ning/p/4971053.html|Lattice ROM核的调用]] * {{:usinguserflashmemoryandhardenedcontrolfunctionsinmachxo2devices.pdf|machxo2 硬核功能块使用指南}} * Altera IP核的使用 * [[https://www.altera.com/products/intellectual-property/ip.html|查找Altera IP]] #### 赛前培训讲座及比赛期间的答疑 应[摩尔吧在线视频平台](https://www.moore8.com)的要求,我们于2019年4月4号在摩尔吧上开办了一期直播, 这次直播的PPT - {{:fpga介绍及在电赛中的应用.pdf|FPGA介绍以及在电赛中的应用}}先分享给大家,大家可以下载阅读一下,供参考,当然也可以去摩尔吧的[课程页面](https://www.moore8.com/courses/2632)去看一下视频。\\ 在比赛期间(2019年8月7日 - 10日),每天早上8am到晚上10pm,我们将由资深工程师通过大赛QQ群对同学们在小脚丫FPGA模块的使用过程中(编译、下载、连接等等)遇到的问题进行在线答疑,为保证比赛的公平性,我们不会涉及到除本模块之外的其它问题。\\ \\ {{ :stepfpgamind.png |}} **欢迎加入小脚丫FPGA交流群 QQ:287761478**