#### 小脚丫FPGA平台上的案例 --- {{ :stepfpgaapp.png |}} ##### 数字电路基础教程相关的案例: * [[stepmxo2-lab1|1位半加器电路]] * [[stepmxo2-lab2|1位全加器]] * [[stepmxo2-lab3|3变量表决器]] * [[stepmxo2-lab4|1位二进制比较器]] * [[stepmxo2-lab5|4变量多数表决器]] * [[stepmxo2-lab6|2-4译码器]] * [[stepmxo2-lab7|4选1多路选择器]] * [[stepmxo2-lab8|4位奇偶校验器]] * [[stepmxo2-lab9|密码锁]] * [[stepmxo2-lab10|数码管]] * [[stepmxo2-lab11|RS触发器]] * [[stepmxo2-lab12|边沿触发的D触发器]] * [[stepmxo2-lab13|JK触发器]] * [[stepmxo2-lab14|移位寄存器]] * [[stepmxo2-lab15|环形计数器]] * [[stepmxo2-lab16|扭环形计数器]] * [[stepmxo2-lab17|分频器]] * [[stepmxo2-lab18|秒表计数器]] * [[stepmxo2-lab19|步进电机1]] * [[stepmxo2-lab20|步进电机2]] * [[stepmxo2-lab21|智力竞赛抢答器]] * [[stepmxo2-lab22|4位串行累加器]] \\ ##### FPGA入门基础项目 **此部分为FPGA初学者入门项目,以STEP MXO2和MAX10两款小脚丫核心板硬件为例(它们的GPIO管脚配置不同),使用Verilog作为编程语言,目的是让初学者快速了解基本的逻辑实现和FPGA的编程过程,我们由浅入深,从如何点亮LED、数码管到利用状态机去完成交通灯的设计。** \\ * 实验1:点亮LED - 对于很多刚刚接触电子硬件的人来说,第一件事就是点亮LED,在这个例程里,我们通过配置FPGA的GPIO的端口电平,实现对外围设备(此处为LED)的逻辑控制。 * [[1. 点亮LED|Lattice MXO2: 点亮LED灯]] * [[Altera_1led|Altera MAX10: 点亮LED灯]] * 实验2:RGB LED - 成功点亮了普通的LED,试试看点亮三色的LED,光学三基色的混合能够产生什么? * [[2. RGB LED|Lattice MXO2: 点亮RGB三色灯]] * [[Altera_2rgbled|Altera MAX10: 点亮RGB三色灯]] * 实验3 3-8译码器: 数字电路中3-8译码器在理解数制与码制的概念中起了十分重要的作用,本例程实现了利用三个拨码开关作为输入,8个LED作为输出的3-8译码器。 * [[3. 3-8译码器|Lattice MXO2: 3-8译码器]] * [[Altera_3ymq|Altera MAX10: 3-8译码器]] * 实验4: 数码管显示 - 小脚丫开发板上有两位7段数码管,本例程展示了如何显示任意数字。 * [[4. 数码管显示|Lattice MXO2: 2位7段数码管显示]] * [[Altera_4seg|Altera MAX10: 2位7段数码管显示]] * 实验5: 时钟分频 - 对于时序电路而言,时钟无疑是最重要的组成部分,如何利用系统时钟产生设计所需的时钟周期也是必须所掌握的的技能。 * [[5. 时钟分频|Lattice MXO2: 时钟分频]] * [[Altera_5clk|Altera MAX10: 时钟分频]] * 实验6 LED流水灯 - 时钟分频做好了之后,如何利用新得到的时钟做一个流水灯? * [[6. LED流水灯|Lattice MXO2: LED流水灯]] * [[altera_6led|Altera MAX10: LED流水灯]] * 实验7: 按键消抖 - 按键若未做去抖动将引起误判定,本例程将介绍多种去抖动的方法。 * [[7. 按键消抖|Lattice MXO2: 按键消抖]] * [[altera_7deb|Altera MAX10: 按键消抖]] * 实验8: 计时控制 - 用小脚丫做一个计时器或者电子表是不是很酷。 * [[8. 计时控制|Lattice MXO2: 计时控制]] * [[altera_8timer|Altera MAX10: 计时控制]] * 实验9: 脉宽调制 - 让你的LED“呼吸”起来! * [[9. 呼吸灯|Lattice MXO2: LED呼吸灯]] * [[altera_9breath|Altera MAX10: LED呼吸灯]] * 实验10: 状态机 - 状态机设计方法对于FPGA的设计来说至关重要,本例程即利用状态机去完成交通灯功能的实现。 * [[10. 交通灯|Lattice MXO2: 交通灯控制]] * [[altera_10tra|Altera MAX10: 交通灯控制]] \\ ##### 中级项目 **基于[[STEP-Baseboard V2.2]]板子实验** * [[引脚分频说明 | 引脚分配说明]] * [[矩阵按键模块]] * [[旋转编码器模块]] * [[蜂鸣器模块]] * [[数码管模块]] * [[温度传感器模块]] * [[PS2键盘模块]] * [[UART串口模块]] * [[DAC数模转换模块]] * [[ADC数模转换模块]] * [[VGA显示模块]] * [[LCD显示模块]] **基于[[step-baseboard|STEP-Baseboard V3.0]]板子实验** * [[矩阵键盘键入系统设计]] * [[简易电子琴设计]] * [[旋转调节系统设计]] * [[比赛计分系统设计]] * [[串口监视系统设计]] * [[简易电压表设计]] * [[波形信号发生器设计]] * [[智能接近系统设计]] * [[数字温湿度计设计]] * [[数字万年历设计]] * [[图片显示系统设计]] * [[屏幕保护系统设计]] * [[WIFI_ESP8266通信系统设计]] 当我们完成了[[STEP-MXO2入门教程|入门教程]]之后,对小脚丫以及Verilog的编程有了初步了解。在这里我们将通过小脚丫来实现一些有趣的小项目,体会FPGA的强大和灵活,有些项目可能需要用到面包板或者[[STEP-Baseboard|小脚丫扩展底板]]。 * [[表决器]] * [[篮球24秒计时器]] * [[温度计]] \\ ##### 综合项目 **综合性项目,相对难度高一些** * [[stepfpga_scope|基于小脚丫的简易示波器设计项目]] * [[stepfpgadds20k|用小脚丫FPGA和串行DAC实现的低频任意波形发生器]] * [[stepawg|基于小脚丫FPGA制作任意信号发生器项目训练]] * [[RS-232|UART_RS232]] * [[JTAG]] * [[I2C]] * [[I2C_master_core]] * [[SPI]] * [[SD_Card|SD卡]] \\ ##### 软核处理器 * 自己设计CPU * [[CPU的基础知识]] * [[自己设计一款CPU]] * MCS-8051 * [[8051|8051单片机介绍]] * [[FPGA+Arduino+8051|基于FPGA使用Arduino编程的8051软核FP51-1T]] * [[MC8051软核|在小脚丫FPGA开发板移植MC8051软核]] * [[OC8051软核|OC8051软核-含源码解析]] * Nios软核处理器 * [[Nios II介绍及资料]] * {{::step-max10_nios_ii搭建教程.pdf|Nios II在小脚丫MAX10 FPGA上的实现}} * RISC-V处理器 * [[RISC V]] * Arduino测试程序[[Reindeer_Step_arduino_app1]]) * MICO8软核处理器 * [[MICO8单片机|MICO8软核处理器介绍]] * {{::latticemico8软核.pdf|latticemico8软核实现过程}} * MICO32软核处理器 * [[MICO32处理器|MICO32软核处理器介绍]]