差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
digital_circuit_exp [2021/08/16 01:55] gongyu |
digital_circuit_exp [2022/07/20 10:27] (当前版本) zhijun [软件环境使用] |
||
---|---|---|---|
行 1: | 行 1: | ||
- | ## 数字电路实验教程 | + | ## 小脚丫核心板上的实验例程 |
- | 本实验教程是基于小脚丫[[STEP-MXO2第二代|核心板:Lattice XO2-4000HC]]硬件为基础平台,配合数字电路课程学习的基础教程。 | + | {{ ::硬件资源.png?800 |}} |
- | + | ### 硬件平台介绍 | |
- | ### 硬件平台 | + | |
* [[STEP-MXO2第二代|核心板:Lattice XO2-4000HC]] | * [[STEP-MXO2第二代|核心板:Lattice XO2-4000HC]] | ||
* [[STEP-MXO2-C|核心板:Lattice XO2-4000 U盘模式]] | * [[STEP-MXO2-C|核心板:Lattice XO2-4000 U盘模式]] | ||
- | ### 软件平台 | + | ### 软件环境使用 |
* [[Diamond]] | * [[Diamond]] | ||
- | * [[lattice_diamond的使用|快速上手STEP-MXO2第二代]] | + | * [[lattice_fpga|快速上手STEP-MXO2第二代]] |
* [[软件安装及配置|Diamond安装及配置]] | * [[软件安装及配置|Diamond安装及配置]] | ||
* [[常见错误|Diamond安装常见问题解答]] | * [[常见错误|Diamond安装常见问题解答]] | ||
- | ### 实验目录 | + | ### 数字电路实验教程 |
- | * [[stepmxo2-lab1|实验一 1位半加器电路]] | + | 本实验教程是基于小脚丫[[STEP-MXO2第二代|核心板:Lattice XO2-4000HC]]硬件为基础平台,配合数字电路课程学习的基础教程。 |
- | * [[stepmxo2-lab2|实验二 1位全加器]] | + | |
- | * [[stepmxo2-lab3|实验三 3变量表决器]] | + | |
- | * [[stepmxo2-lab4|实验四 1位二进制比较器]] | + | |
- | * [[stepmxo2-lab5|实验五 4变量多数表决器]] | + | #### 实验目录 |
- | * [[stepmxo2-lab6|实验六 2-4译码器]] | + | * [[1bithalfadd|实验1 1位半加器电路]] |
- | * [[stepmxo2-lab7|实验七 4选1多路选择器]] | + | * [[1bitfulladd|实验2 1位全加器]] |
- | * [[stepmxo2-lab8|实验八 4位奇偶校验器]] | + | * [[stepmxo2-lab3|实验3 3变量表决器]] |
- | * [[stepmxo2-lab9|实验九 密码锁]] | + | * [[1bit_data_comparator|实验4 1位二进制比较器]] |
- | * [[stepmxo2-lab10|实验十 数码管]] | + | * [[stepmxo2-lab5|实验5 4变量多数表决器]] |
- | * [[stepmxo2-lab11|实验十一 RS触发器]] | + | * [[2_to_4_decoder|实验6 2-4译码器]] |
- | * [[stepmxo2-lab12|实验十二 边沿触发的D触发器]] | + | * [[stepmxo2-lab7|实验7 4选1多路选择器]] |
- | * [[stepmxo2-lab13|实验十三 JK触发器]] | + | * [[stepmxo2-lab8|实验8 4位奇偶校验器]] |
- | * [[stepmxo2-lab14|实验十四 移位寄存器]] | + | * [[stepmxo2-lab9|实验9 密码锁]] |
- | * [[stepmxo2-lab15|实验十五 环形计数器]] | + | * [[stepmxo2-lab10|实验10 数码管]] |
- | * [[stepmxo2-lab16|实验十六 扭环形计数器]] | + | * [[stepmxo2-lab11|实验11 RS触发器]] |
- | * [[stepmxo2-lab17|实验十七 分频器]] | + | * [[stepmxo2-lab12|实验12 边沿触发的D触发器]] |
- | * [[stepmxo2-lab18|实验一八 秒表计数器]] | + | * [[stepmxo2-lab13|实验13 JK触发器]] |
- | * [[stepmxo2-lab19|实验一九 步进电机1]] | + | * [[stepmxo2-lab14|实验14 移位寄存器]] |
- | * [[stepmxo2-lab20|实验二十 步进电机2]] | + | * [[stepmxo2-lab15|实验15 环形计数器]] |
- | * [[stepmxo2-lab21|实验二十一 智力竞赛抢答器]] | + | * [[stepmxo2-lab16|实验16 扭环形计数器]] |
- | * [[stepmxo2-lab22|实验二十二 4位串行累加器]] | + | * [[stepmxo2-lab17|实验17 分频器]] |
+ | * [[stepmxo2-lab18|实验18 秒表计数器]] | ||
+ | * [[stepmxo2-lab19|实验19 步进电机1]] | ||
+ | * [[stepmxo2-lab20|实验20 步进电机2]] | ||
+ | * [[stepmxo2-lab21|实验21 智力竞赛抢答器]] | ||
+ | * [[stepmxo2-lab22|实验22 4位串行累加器]] | ||
+ | |||
+ | ### 基础项目 | ||
+ | **此部分为FPGA初学者入门项目,以STEP MXO2和MAX10两款小脚丫核心板硬件为例(它们的GPIO管脚配置不同),使用Verilog作为编程语言,目的是让初学者快速了解基本的逻辑实现和FPGA的编程过程,我们由浅入深,从如何点亮LED、数码管到利用状态机去完成交通灯的设计。** | ||
+ | \\ | ||
+ | #### 实验一 点亮LED | ||
+ | 对于很多刚刚接触电子硬件的人来说,第一件事就是点亮LED,在这个例程里,我们通过配置FPGA的GPIO的端口电平,实现对外围设备(此处为LED)的逻辑控制。\\ | ||
+ | \\ | ||
+ | * [[1. 点亮LED|Lattice MXO2: 点亮LED灯]] | ||
+ | * [[Altera_1led|Altera MAX10: 点亮LED灯]] | ||
+ | |||
+ | #### 实验二 RGB LED | ||
+ | 成功点亮了普通的LED,试试看点亮三色的LED,光学三基色的混合能够产生什么?\\ | ||
+ | \\ | ||
+ | * [[2. RGB LED|Lattice MXO2: 点亮RGB三色灯]] | ||
+ | * [[Altera_2rgbled|Altera MAX10: 点亮RGB三色灯]] | ||
+ | |||
+ | #### 实验三 3-8译码器 | ||
+ | 数字电路中3-8译码器在理解数制与码制的概念中起了十分重要的作用,本例程实现了利用三个拨码开关作为输入,8个LED作为输出的3-8译码器。\\ | ||
+ | \\ | ||
+ | * [[3. 3-8译码器|Lattice MXO2: 3-8译码器]] | ||
+ | * [[Altera_3ymq|Altera MAX10: 3-8译码器]] | ||
+ | |||
+ | #### 实验四 数码管显示 | ||
+ | 小脚丫开发板上有两位7段数码管,本例程展示了如何显示任意数字。\\ | ||
+ | \\ | ||
+ | * [[4. 数码管显示|Lattice MXO2: 2位7段数码管显示]] | ||
+ | * [[Altera_4seg|Altera MAX10: 2位7段数码管显示]] | ||
+ | |||
+ | |||
+ | #### 实验五 时钟分频 | ||
+ | 对于时序电路而言,时钟无疑是最重要的组成部分,如何利用系统时钟产生设计所需的时钟周期也是必须所掌握的的技能。 | ||
+ | \\ | ||
+ | * [[5. 时钟分频|Lattice MXO2: 时钟分频]] | ||
+ | * [[Altera_5clk|Altera MAX10: 时钟分频]] | ||
+ | |||
+ | #### 实验六 LED流水灯 | ||
+ | 时钟分频做好了之后,如何利用新得到的时钟做一个流水灯? | ||
+ | \\ | ||
+ | * [[6. LED流水灯|Lattice MXO2: LED流水灯]] | ||
+ | * [[altera_6led|Altera MAX10: LED流水灯]] | ||
+ | |||
+ | #### 实验七 按键消抖 | ||
+ | 按键若未做去抖动将引起误判定,本例程将介绍多种去抖动的方法。 | ||
+ | \\ | ||
+ | * [[mxo2_deboune|Lattice MXO2: 按键消抖]] | ||
+ | * [[max10_debounce|Altera MAX10: 按键消抖]] | ||
+ | |||
+ | #### 实验八 计时控制 | ||
+ | 用小脚丫做一个计时器或者电子表是不是很酷。 | ||
+ | \\ | ||
+ | * [[8. 计时控制|Lattice MXO2: 计时控制]] | ||
+ | * [[altera_8timer|Altera MAX10: 计时控制]] | ||
+ | |||
+ | #### 实验九 脉宽调制 | ||
+ | 让你的LED“呼吸”起来! | ||
+ | \\ | ||
+ | * [[9. 呼吸灯|Lattice MXO2: LED呼吸灯]] | ||
+ | * [[altera_9breath|Altera MAX10: LED呼吸灯]] | ||
+ | |||
+ | #### 实验十 状态机 | ||
+ | 状态机设计方法对于FPGA的设计来说至关重要,本例程即利用状态机去完成交通灯功能的实现。 | ||
+ | \\ | ||
+ | * [[10. 交通灯|Lattice MXO2: 交通灯控制]] | ||
+ | * [[altera_10tra|Altera MAX10: 交通灯控制]] |