差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 | 后一修订版 两侧同时换到之后的修订记录 | ||
点亮led灯 [2016/07/13 03:05] gongyu |
点亮led灯 [2016/07/13 03:06] gongyu |
||
---|---|---|---|
行 2: | 行 2: | ||
---- | ---- | ||
- | ===硬件平台=== | + | ===硬件平台:=== |
我们以[[STEP-MXO2第一代]]为例,对于其它平台只需要注意其时钟的频率以及管脚的分配。 | 我们以[[STEP-MXO2第一代]]为例,对于其它平台只需要注意其时钟的频率以及管脚的分配。 | ||
- | ===设计要求=== | + | ===设计要求:=== |
- 初步了解数字设计的基本思想和开发流程 | - 初步了解数字设计的基本思想和开发流程 | ||
- 熟悉Diamond软件和仿真软件的使用方法及流程 | - 熟悉Diamond软件和仿真软件的使用方法及流程 | ||
行 12: | 行 12: | ||
- 了解时钟分频的工作原理 | - 了解时钟分频的工作原理 | ||
- | ===工作原理=== | + | ===工作原理:=== |
按照设计要求,控制LED闪烁的周期为1秒,则LED灯需要点亮0.5s,然后熄灭0.5s,然后点亮0.5s,然后熄灭0.5s,循环执行。 | 按照设计要求,控制LED闪烁的周期为1秒,则LED灯需要点亮0.5s,然后熄灭0.5s,然后点亮0.5s,然后熄灭0.5s,循环执行。 | ||
行 19: | 行 19: | ||
小脚丫开发板晶振为25MHz,0.5s对应晶振12500000个周期的时间,所以计数器对晶振信号计数,当计12500000个数时,控制寄存器翻转。 | 小脚丫开发板晶振为25MHz,0.5s对应晶振12500000个周期的时间,所以计数器对晶振信号计数,当计12500000个数时,控制寄存器翻转。 | ||
- | ===硬件连接=== | + | ===硬件连接:=== |
LED也叫发光二极管,可以把电能转化成光能,因为是二极管的一种,由一个PN接组成,具有单向导电性。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过二极管的电流,LED的亮度与电流有关,一般LED能够承受的最大电流为20mA(具体需要看使用的LED的参数),本设计使用的限流电阻为1K。下图为LED的硬件电路: | LED也叫发光二极管,可以把电能转化成光能,因为是二极管的一种,由一个PN接组成,具有单向导电性。它的正向伏安特性曲线很陡,使用时必须串联限流电阻以控制通过二极管的电流,LED的亮度与电流有关,一般LED能够承受的最大电流为20mA(具体需要看使用的LED的参数),本设计使用的限流电阻为1K。下图为LED的硬件电路: | ||
行 32: | 行 32: | ||
^ FPGA管脚 |A3 | | ^ FPGA管脚 |A3 | | ||
- | ===代码设计=== | + | ===代码设计:=== |
- | ==设计文件== | + | ==设计文件:== |
{{ :blink.jpg |Blink}} | {{ :blink.jpg |Blink}} | ||
行 46: | 行 46: | ||
{{:计数及翻转.jpg|计数器计数触发寄存器翻转}} | {{:计数及翻转.jpg|计数器计数触发寄存器翻转}} | ||
- | ==测试文件== | + | ==测试文件:== |
测试文件,也称testbench文件,是一种验证的手段,testbench文件在软件环境中模拟实际环境,产生被测模块输入端口需要的激励信号,对被测模块的输出信号分析,达到评估被测模块的目的。 | 测试文件,也称testbench文件,是一种验证的手段,testbench文件在软件环境中模拟实际环境,产生被测模块输入端口需要的激励信号,对被测模块的输出信号分析,达到评估被测模块的目的。 | ||
行 65: | 行 65: | ||
^ FPGA管脚 | C1 | B1 | A3 | | ^ FPGA管脚 | C1 | B1 | A3 | | ||
- | ==仿真结果== | + | ==仿真结果:== |
{{:仿真结果.jpg|仿真结果}} | {{:仿真结果.jpg|仿真结果}} | ||
- | ==资源报告== | + | ==资源报告:== |
^ 资源 | 数量 | 比例 | 说明 | | ^ 资源 | 数量 | 比例 | 说明 | | ||
行 77: | 行 77: | ||
^ 时钟频率 | 25MHz | | | | ^ 时钟频率 | 25MHz | | | | ||
- | == 学习的知识点 == | + | == 学习的知识点: == |
* LED闪烁原理 | * LED闪烁原理 | ||
* FPGA时钟的使用 | * FPGA时钟的使用 | ||
* 时钟分频 | * 时钟分频 | ||
- | == 参考阅读 == | + | == 参考阅读: == |
* {{:machxo2familydatasheet.pdf|Lattice MachXO2数据手册}} | * {{:machxo2familydatasheet.pdf|Lattice MachXO2数据手册}} | ||
- | == 相关设计文档 == | + | == 相关设计文档: == |
^ **文件名称** | **功能** | | ^ **文件名称** | **功能** | | ||
^ **[[Blink]].v** | **LED闪烁** | | ^ **[[Blink]].v** | **LED闪烁** | | ||
^ **[[Blink_test]].v** | **测试文件** | | ^ **[[Blink_test]].v** | **测试文件** | | ||
- | === 扩展实验 === | + | === 扩展实验: === |
XO2 FPGA自带时钟发生器,但其精度较低(5%),对于基本的功能性的实验是够了的,但对于高精度要求的应用,其芯片内部振荡器产生的时钟就无法满足要求,因此在我们的小脚丫开发板上还连接了外部晶振产生的25MHz的时钟信号,在上述的实验中我们采用了25MHz的时钟信号来产生LED的交替控制信号,用户可以尝试采用内部的时钟产生所需要的LED控制信号。 | XO2 FPGA自带时钟发生器,但其精度较低(5%),对于基本的功能性的实验是够了的,但对于高精度要求的应用,其芯片内部振荡器产生的时钟就无法满足要求,因此在我们的小脚丫开发板上还连接了外部晶振产生的25MHz的时钟信号,在上述的实验中我们采用了25MHz的时钟信号来产生LED的交替控制信号,用户可以尝试采用内部的时钟产生所需要的LED控制信号。 | ||