logo资料库

红芯电子fpga开发例程讲解.pdf

第1页 / 共62页
第2页 / 共62页
第3页 / 共62页
第4页 / 共62页
第5页 / 共62页
第6页 / 共62页
第7页 / 共62页
第8页 / 共62页
资料共62页,剩余部分请下载后查看
文档修改记录
文档目录
引言
不规范的代码分析
让一个LED闪烁的简单例程
学习FPGA容易陷入的误区
Verilog HDL 跟C代码的区别
阻塞与非阻塞
关于电路运行的速度,查找关键路径
红芯电子的例程分析
例程一、【红芯电子】永远的流水灯【难度等级:简单】
代码展示
知识点
例程二、【红芯电子】数码管动态扫描【难度等级:简单】
硬件工作原理分析
代码架构
代码展示
再提FPGA概念
FPGA与单片机的区别
为什么要采用同步设计
为什么不采用异步设计
用FPGA主要学习什么
为什么要提倡学习Verilog HDL 而不是VHDL
关于NIOS/SOPC的特别说明
从事 FPGA 与从事软件开发究竟有哪些优势?(个人观点)
例程三、【红芯电子】DS1302驱动分析【难度等级:进阶级】
实验目标
了解芯片特性
寄存器重要说明
代码展示
仿真的重要性
例程四、【红芯电子】AD转换TLC549例程分析【难度等级:进阶级】
实验前的准备工作
知识点
我们定义的状态转换图
顶层模块
不同的描述方法对比速度和资源占用
亚稳态的产生条件及应对策略
FPGA设计中重要的层次建模设计
使用层次建模的目的
重要概念 – 模块
重要概念 – 例化
自底向上的设计方法
自顶向下的设计方法
实例分析 – 秒表实验
例程五、【红芯电子】PS2标准键盘解析例程分析【难度等级:进阶级】
硬件工作原理分析
解析原理
代码展示
开发板运行效果
例程六、【红芯电子】串口发送模块例程分析【难度等级:进阶级】
硬件工作原理及概念介绍
帧结构
代码框图
UART_TX 代码展示(已加中文注释)
UART_CTL 代码展示(已加中文注释)
例程运行效果
仿真波形
结束语
2011 红芯电子 飞哥 http://www.rclogic.com http://shop57125352.taobao.com [Verilog HDL 例程讲解笔记] 红芯电子例程讲解笔记 – V1.2 1 / 62
红芯电子原创FPGA 开发板 http://shop57125352.taobao.com http://www.rclogic.com 文档修改记录 2011/06/30 创建文档 (概念介绍、流水灯、数码管、DS1302 实时时钟例程分析) 2011/08/05 增加 AD 转换例程(ADC549)例程分析 2011/08/15 增加亚稳态产生的分析、层次建模简介 2011/08/29 增加 PS2 标准键盘显示到数码管的例程分析 2011/09/14 增加带校验的通用串口(UART)发送模块例程 2 / 62
红芯电子原创FPGA 开发板 http://shop57125352.taobao.com http://www.rclogic.com 文档目录 目录 文档修改记录 ........................................................................................................................... 2 文档目录 ................................................................................................................................... 3 引言 ........................................................................................................................................... 8 不规范的代码分析 ................................................................................................................... 8 1. 让一个 LED 闪烁的简单例程 .................................................................................... 10 2. 学习 FPGA 容易陷入的误区 ..................................................................................... 11 3. Verilog HDL 跟 C 代码的区别 ................................................................................ 12 4. 阻塞与非阻塞 .............................................................................................................. 13 5. 关于电路运行的速度,查找关键路径 ...................................................................... 13 红芯电子的例程分析 ............................................................................................................. 14 例程一、【红芯电子】永远的流水灯【难度等级:简单】 ............................................. 15 1. 代码展示 .............................................................................................................. 15 2. 知识点 .................................................................................................................. 17 例程二、【红芯电子】数码管动态扫描【难度等级:简单】 ......................................... 18 1. 硬件工作原理分析 .................................................................................................. 18 2. 代码架构 .............................................................................................................. 19 3 / 62
红芯电子原创FPGA 开发板 http://shop57125352.taobao.com http://www.rclogic.com 3. 代码展示 .............................................................................................................. 20 再提 FPGA 概念 ..................................................................................................................... 24 1. FPGA 与单片机的区别 ...................................................................................... 25 2. 为什么要采用同步设计 ...................................................................................... 26 3. 为什么不采用异步设计 ...................................................................................... 26 4. 用 FPGA 主要学习什么 ..................................................................................... 26 5. 为什么要提倡学习 Verilog HDL 而不是 VHDL .......................................... 27 6. 关于 NIOS/SOPC 的特别说明 ......................................................................... 27 7. 从事 FPGA 与从事软件开发究竟有哪些优势?(个人观点) ................... 28 例程三、【红芯电子】DS1302 驱动分析【难度等级:进阶级】 .................................. 28 1. 实验目标 .............................................................................................................. 28 2. 了解芯片特性 ...................................................................................................... 29 3. 寄存器重要说明 .................................................................................................. 29 4. 代码展示 .............................................................................................................. 30 状态机状态转换图如下 ................................................................................................. 31 5. 仿真的重要性 ...................................................................................................... 37 例程四、【红芯电子】AD 转换 TLC549 例程分析【难度等级:进阶级】 .................. 37 1. 实验前的准备工作 .............................................................................................. 37 2. 知识点 ...................................................................................................................... 39 4 / 62
红芯电子原创FPGA 开发板 http://shop57125352.taobao.com http://www.rclogic.com 3. 我们定义的状态转换图 .......................................................................................... 39 4. 顶层模块 .................................................................................................................. 39 5. 不同的描述方法对比速度和资源占用 .............................................................. 45 电路运行的速度 ............................................................................................................. 45 亚稳态的产生条件及应对策略 ............................................................................................. 47 FPGA 设计中重要的层次建模设计 ...................................................................................... 48 1. 使用层次建模的目的 .............................................................................................. 48 2. 重要概念 – 模块 .................................................................................................... 48 3. 重要概念 – 例化 .................................................................................................... 48 4. 自底向上的设计方法 .............................................................................................. 48 5. 自顶向下的设计方法 .............................................................................................. 49 6. 实例分析 – 秒表实验 ............................................................................................ 49 例程五、【红芯电子】PS2 标准键盘解析例程分析【难度等级:进阶级】 ................. 51 1. 硬件工作原理分析 .............................................................................................. 51 2. 解析原理 .............................................................................................................. 52 3. 代码展示 .............................................................................................................. 52 4. 开发板运行效果 .................................................................................................. 55 例程六、【红芯电子】串口发送模块例程分析【难度等级:进阶级】 ......................... 56 1. 硬件工作原理及概念介绍 .................................................................................. 56 5 / 62
红芯电子原创FPGA 开发板 http://shop57125352.taobao.com http://www.rclogic.com 2. 帧结构 .................................................................................................................. 56 3. 代码框图 .............................................................................................................. 57 4. UART_TX 代码展示(已加中文注释) ........................................................ 57 5. UART_CTL 代码展示(已加中文注释) ........................................................ 60 6. 例程运行效果 ...................................................................................................... 61 结束语 ..................................................................................................................................... 61 红芯作品 6 / 62
红芯电子原创FPGA 开发板 http://shop57125352.taobao.com http://www.rclogic.com 7 / 62
红芯电子原创FPGA 开发板 http://shop57125352.taobao.com http://www.rclogic.com 引言 由于自己本来就是逻辑工程师出生,而最近我拜读了网络上非常流行的,包括影响非常 深远的一些“前辈”写的文章和代码,觉得自己有必要去“提醒”那些曾被某些东西所误导 的跟随者,因此本笔记旨在通过对红芯电子部份例程的讲解,让学习者了解专业级的 Verilog HDL 的硬件描述方法。 其实编码规范并不是唯一的,你也可以掌握其它规范,但我这里讲的至少也是 IC 设计 级的代码规范之一,无所谓是否是最好的,但一定要严谨。 首先,FPGA 本身也是数字 IC 设计的验证平台,从专业的角度来说,如果按 IC 设计的 规范来设计 FPGA 那就是最严格的,目的只有一个就是尽可能保证正式的 IC 尽量没有 bug, 尽管 FPGA 因为可以重复编程就算有错误也可以再修正,而从学知识的严谨性来讲,我并 不赞同怀着这种想法来做设计,因为你设计的产品极有可能不够稳定。 不规范的代码分析 1) if … else if … else … 结构不完整,生成锁存器 这个代码在条件判断中的结构是:if (xx) , else if (xx) , 如果这两个条件都不满足的话 rLED_Out 应该是多少呢?答案是系统在这里会生成一个锁存器,生成锁存器无论是在 8 / 62
分享到:
收藏