====== FPGA在全国大学生电子设计大赛中的应用参考 ====== 每两年一度、每届有上万个团队参加的全国高校最大的赛事“[[http://www.nuedc.com.cn|全国大学生电子设计竞赛]]”今年正如火如荼地准备中,在7个大的竞赛类别中除了“电源”、“放大器”、“高频无线电”三个类别之外,其它4个大类的题目都可以用到[[FPGA]]。2017年大赛仪器和主要元器件清单中明确指出了使用FPGA开发系统和可编程逻辑器件及其下载板。可见FPGA在电子设计中越来越受到重视,由于FPGA灵活可编程、可以高速执行各种数字逻辑(内部时钟可以高达400MHz),因此在竞赛中灵活地使用FPGA必将获得事半功倍的效果,竞赛团队可以在最快的时间内制作出性能最强的作品,你对可编程逻辑的技能掌握也必然获得高校教师评委的高度认同。\\ {{:2017_年全国大学生电子设计竞赛仪器和主要元器件清单.pdf|2017年全国大学生电子设计竞赛仪器和主要元器件清单}} 竞赛用FPGA哪家强?当然是FPGA中的小钢炮 - 苏州思得普公司专为高校同学打造的“小脚丫FPGA”平台: {{:stepfpgaxo2.jpg?800x320|}} * 小巧、实用,只有[[DIP40]]的封装,可以把它当成一个器件焊上插针或通过杜邦线连接实现即插即用,秒杀市面上所有其它FPGA开发板; * 功能足够强大,本模块上FPGA的一小部分的资源(逻辑单元、存储器)就可以满足大赛中所有的逻辑需求; * 使用超级简单,一根常用的USB充电线即可供电又可以完成代码的下载,配置成你所需要的任何逻辑功能; * 软件上手很快,只需要一个小时你就能掌握如何使用我们的模块,以及如何进行FPGA代码的编译; * 价格便宜,购买单个模块的零售价格为169元,如果批量采购,最低可以到109元; * 更重要的是我们有很多验证成熟的代码和实例解析,在你争分夺秒的几天里,将大大助力你的项目进程; * 竞赛期间我们的工程师将于每天上午8am到晚上10pm一直在线,随时解答您使用我们的模块过程中可能遇到的各种问题 了解一下我们的小脚丫以及这个页面中我们为您准备好的一切,你会发现你真的是个幸运儿。\\ ===== 小脚丫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|通过爱板网商城购买]])|| ^批量价格 |109元~149元|| 如果你要了解这两个板卡的详细情况,您可以点击对应板卡名称跳转至板卡详情页: ^ {{ ::comxo2c.png?300 |}} ^{{ ::comax10.png?300 |}}^ | [[STEP-MXO2-C|基于Lattice MXO2 FPGA的大赛专用版本STEP-MXO2-C]] | [[STEP-MAX10|基于Altera MAX10系列FPGA的版本STEP-MAX10]] | =====赛前培训讲座及比赛期间的答疑===== 我们在赛前将在[[http://www.moore8.com|摩尔吧在线视频平台]]上进行三次直播培训,重点讲述一下小脚丫FPGA模块的使用方法,力争在5个小时内让参赛的学员迅速了解FPGA在电赛中的使用、小脚丫FPGA的使用方法以及大赛作品制作中可能遇到的一些问题,直播室座席有限,需要提前报名预约,不容错过。我们在[[http://www.moore8.com/webcast/room/13|摩尔吧直播平台]]上有一个针对大赛的专栏,汇总了不止是FPGA的相关内容,有兴趣的同学们可以学习一下。 {{ :moore8training.png |}} **赛前的三次直播培训** ^时间 |**日期**| **直播内容** |**直播链接** | ^2017年8月6号| **7pm-8pm** | ** 小脚丫FPGA的功能介绍及编译环境的安装、操作** | [[http://www.moore8.com/courses/1627|点击跳转]] | ^2017年8月7号| **7pm-9pm** | ** 小脚丫FPGA的设计流程、资源配置及关键注意事项** | [[http://www.moore8.com/courses/1629|点击跳转]] | ^2017年8月8号| **7pm-9pm** | ** 小脚丫FPGA在往年相关项目中的应用解析** | [[http://www.moore8.com/courses/1630|点击跳转]]| 在比赛期间(2017年8月9日7:30PM - 12日),每天早上8am到晚上10pm,我们将由资深工程师通过大赛QQ群对同学们在小脚丫FPGA模块的使用过程中(编译、下载、连接等等)遇到的问题进行在线答疑,为保证比赛的公平性,我们不会涉及到除本模块之外的其它问题。\\ \\ **欢迎加入小脚丫FPGA交流群 QQ:287761478** ===== 历年赛题回顾与分析 ===== 参考百度百科内容:[[https://baike.baidu.com/item/%E5%85%A8%E5%9B%BD%E5%A4%A7%E5%AD%A6%E7%94%9F%E7%94%B5%E5%AD%90%E8%AE%BE%E8%AE%A1%E7%AB%9E%E8%B5%9B#2|全国大学生电子设计大赛]],电赛题目主要分为七大类型,此外,我们也为您准备了已经整理好了[[近十年电子设计大赛题目]],并将其与FPGA相关的部分加以备注,供您查阅。下面为电赛七大题型简要介绍: - 电源类:简易数控直流电源、直流稳压电源; - **信号源类:实用信号源的设计和制作、波形发生器、电压控制LC振荡器等;** - **高频无线电类:简易无线电遥控系统、调幅广播收音机、短波调频接收机、调频收音机等;** - 放大器类:实用低频功率放大器、高效率音频功率放大器、宽带放大器等; - **仪器仪表类:简易电阻、电容和电感测试仪、简易数字频率计、频率特性测试仪、数字式工频有效值多用表、简易数字存储示波器、低频数字式相位测量仪、简易逻辑分析仪;** - **数据采集与处理类:多路数据采集系统、数字化语音存储与回放系统、数据采集与传输系统;** - 控制类:水温控制系统、自动往返电动小汽车、简易智能电动车、液体点滴速度监控装置。 我们对[[近十年电子设计大赛题目]]进行综合分析,将历年赛题中,尤其是信号源类、仪器仪表类和数据采集处理类等赛题中所涉及到FPGA的知识点进行了整理,并对相关参考设计进行了收集,希望您能够快速找到所需要的资源并加以应用。 ==== 小脚丫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]] ===== 小脚丫FPGA项目实战 ===== ^{{ ::信号源6.png?250 |}}^{{ ::示波器5.png?250 |}}^ {{ ::信号源3.png?250 |}}^{{ ::频率计.png?250 |}}^ | [[ADC数模转换模块|基于小脚丫Baseboard的信号源]] | [[ADC数模转换模块|基于小脚丫Baseboard的简易示波器]] | [[http://www.cirmall.com/circuit/4142/%E5%9F%BA%E4%BA%8Estm32%E5%92%8C%E5%B0%8F%E8%84%9A%E4%B8%ABFPGA%E7%9A%84%E4%BB%BB%E6%84%8F%E6%B3%A2%E5%BD%A2%E5%8F%91%E7%94%9F%E5%99%A8%EF%BC%88%E5%8E%9F%E7%90%86%E5%9B%BE%E3%80%81%E4%BB%A3%E7%A0%81%E3%80%81%E7%94%B5%E8%B7%AF%E5%88%86%E6%9E%90%EF%BC%89#/details|基于stm32F0和小脚丫FPGA的任意波形发生器]]\\ [[http://www.cnblogs.com/tony-ning/p/4913912.html|基于CC3200和小脚丫FPGA的任意波形发生器]] | [[http://www.cirmall.com/circuit/4053/2016TI%E6%9D%AF%E7%94%B5%E8%B5%9BE%E9%A2%98%E8%84%89%E5%86%B2%E5%8F%82%E6%95%B0%E6%B5%8B%E9%87%8F%E4%BB%AA%E4%BB%A3%E7%A0%81%2B%E8%AE%BE%E8%AE%A1%E8%AF%B4%E6%98%8E#/details|基于小脚丫的脉冲参数测量仪]] | ===== 将小脚丫STEP FPGA嵌入到你的设计中 ===== 小脚丫的DIP40标准封装让扩展变得容易、简便。你可以用多种方式去扩展小脚丫STEP FPGA开发板,将其融入你的项目之中: * 你只需要在你电路板上预留[[DIP40]]接口(需满足小脚丫STEP FPGA引脚定义),并在小脚丫上焊接插针,即可进行扩展使用;\\ * 你也可以利用STEP团队已经为您设计好的兼容[[baseboard_arduino|Arduino接口]]、[[baseboard_rpi|树莓派接口]]与PMOD接口的外设扩展板;\\ * 你也可以通过面包板/洞洞板进行扩展;\\ 在下表中你可以看到多种扩展方式的图片与案例: ^ {{ ::kz1.jpg?320 |}} ^{{ ::kz2.jpg?290 |}}^{{ :kz3.jpg?300 |}} ^{{ ::kz4.png?325 |}}^ | [[STEP-Baseboard|利用DIP40封装扩展的Baseboard]] | [[ext_dot|利用转接板和PCIE扩展卡进行扩展的Led点阵模块]]| [[baseboard_rpi|兼容树莓派与PMOD的转接板]] | [[温度计|利用面包板扩展的温度计]] | ===== 参考资料汇总 ===== === 1.信号源类 === * [[http://www.ni.com/example/31066/en/|基于 Labview 和 FPGA 的 DDS 波形发生器参考设计]] * [[https://wenku.baidu.com/view/469b9b5f3b3567ec102d8ad0.html|使用信号源的设计和制作]] * [[http://www.xueshu.com/szjsyyy/201109/9350434.html|基于 FPGA 的电压控制LC振荡器]] * [[http://www.wenkuxiazai.com/doc/99d67e89d0d233d4b14e6941.html | 基于 FPGA 的数控振荡器的设计]] === 2.仪器仪表类 === * [[http://www.cirmall.com/circuit/3149/details?1#/details|数字频率计比较器电路(FPGA DSP转接板)]] * [[http://www.cirmall.com/circuit/2048/details?1#/details|基于FPGA的数字频谱分析仪和发生器]] * [[https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2007/chc58/index.htm| FPGA 数字示波器]] * [[http://www.pudn.com/Download/item/id/1347482.html|基于FPGA的数字示波器和波形发生器]] * [[http://www.pudn.com/Download/item/id/1777556.html|FPGA实现数字存储示波器]] * [[http://www.fpga4fun.com/Hands-on_Flashy.html|动手制作一个简易数字示波器]] === 3.数据采集类 === * [[http://www.cirmall.com/circuit/5740/【毕业设计】基于Altera%20FPGA的视频采集系统(整个硬件工程文件%2B驱动源码%2B相关文档等)#/details|基于ALtera FPGA视频采集系统]] * [[https://wenku.baidu.com/view/e39f760752ea551810a6878f.html?re=view|基于FPGA的高速多路数据采样系统设计]] * [[http://www.elecfans.com/emb/fpga/20100719220630.html|基于FPGA的数据采集设计与实现]] * [[https://wenku.baidu.com/view/f7d63010f18583d0496459e6.html|基于FPGA的数字化语音存储回放系统]] * [[http://www.iberchip.net/IX/Articles/PAP-084.pdf | FPGA对于语音信号处理算法]] * [[http://www.xilinx.com/applications/audio.html|Xilinx FPGA 声音处理方案]] * [[https://www.altera.com/solutions/technology/transceiver/overview.html|Altera 数据采集和传输]] * [[http://zeus.phys.uconn.edu/wiki/index.php/FPGA_Transceiver| FPGA 发送接收讲解]] === 4.滤波器 === * [[http://www.elecfans.com/analog/20110721207202.html| 数字示波器的软件设计流程]] * [[http://www.ni.com/example/31251/en/ | FPGA数字滤波器参考案列]] * [[http://www.ittc.ku.edu/Projects/FPGA/Digital_Filters.pdf | FPGA数字滤波器]] * [[http://www.atmel.com/Images/doc0836.pdf | Atml IIR Filter]] * [[http://www.ijeit.com/Vol%205/Issue%204/IJEIT1412201510_15.pdf |利用 FPGA 完成数字滤波器]] === 5.调制解调器 === * [[http://www.eeworld.com.cn/FPGA/2011/0222/article_1883.html | FPGA MSK 调制解调器]] * [[http://www.chinaaet.com/article/93547 | 基于FPGA的 MSK的调制解调器的设计与应用]] * [[https://wenku.baidu.com/view/822c94f8910ef12d2af9e7b0.html | 基于FPGA的 DPSK调制解调器全数字实现 ]] * [[http://www.edn.com/design/integrated-circuit-design/4437944/FPGA-based-FSK-PSK-modulation |FPGA FSK/PSK 模块]] ===== 其它参考资源 ===== * [[http://www.moore8.com|摩尔吧直播平台]]针对国赛汇集的视频培训资料:[[http://www.moore8.com/webcast/room/13|电子设计大赛课程]] * [[http://www.cirmall.com|电路城]]针对2017年国赛汇集的往年电赛作品集:[[http://www.cirmall.com/circuit/summary?summary_id=31|助力2017年电赛,2015年电子设计大赛题目相关电路资料汇总]] * FPGA4FUN上关于各种基础功能的工作原理及代码实现:[[http://www.fpga4fun.com|FPGA4fun]],需要能看懂英文