Spartan-6系列FPGA UART数据接收模块总结.pdf_第1页
Spartan-6系列FPGA UART数据接收模块总结.pdf_第2页
Spartan-6系列FPGA UART数据接收模块总结.pdf_第3页
Spartan-6系列FPGA UART数据接收模块总结.pdf_第4页
Spartan-6系列FPGA UART数据接收模块总结.pdf_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Spartan 6 系列系列 FPGA 的的 UART 数据接收模块总结数据接收模块总结 一 准备工作 1 UART 通信协议 关键 2 开始的第一步 检测到 RX 数据线上下降沿 起始位 3 调试助手发送数据的波特率设置 进而设计采样频率 4 对接收的数据进行处理 去头去尾只留中间数据位 8 位 5 对接收到的数据通过 LED 灯进行验证 UART 通信协议 一帧 11 位 二 功能框图 LED 灯 图 1 1 UART 通信协议原理示意图 图 1 2 各模块信息传输示意图 Detect module 检测 RX 下降沿 RX H2L Sig BPS module 数据采集脉冲模块 BPS CLK rx control module 数据接收 控制模块 Count Sig RX Data control module 总控制模 块 RX Done Sig RX En Sig rx module 1 详细详细过程说明过程说明 瞭望员 detect module 正在安逸的晒太阳 突然警报拉响 detect module 检测到下降沿 瞭望员马上升旗放狼烟 输出 H2L Sig High to Low 下降沿 为高 告诉后方人员有数据来袭 数据采取单个有序的进攻战法 准备好作战 数据接受工作 战地指挥中心 rx control module 一旦看到升旗放狼烟 指挥中心马 上给第一团发指令 Count Sig 情报中心 数据采集脉冲模块 BPS module 接收到指令后立即侦查敌情 数据传输波特率 并开始固定周期的不间断扫描 以匹配对方来袭速度 波 特率 一旦发现目标 就给战地指挥中心发信号 BPS CLK 然后战地指挥 中心指挥狙击手逐个歼灭 并把歼灭和捕获的数据记录下来 存入RX Data中 总指挥 control module 战争结束后 战地指挥中心向总指挥汇报指令 RX Done Sig 把歼灭和捕获的数据 RX Data 上报给总指挥 然后总指 挥根据数据 RX Data 控制 LED 灯 以表嘉奖 战地指挥中心服从总指挥 只有总指挥下达作战命令 RX En Sig 后 战 地指挥中心才可以指挥狙击手歼灭来袭数据 2 各模块各模块层级结构图如下层级结构图如下 图 1 3 各模块层级结构图各模块层级结构图 rx moudel 子模块 u1 control module 子模块 u2 detect module 子模块 u0 rx control module 子模块 u2 bps module 子模块 u1 rx moudel demo 顶层模块 3 开发环境为开发环境为 ISE14 4 各模块程序代码如下 各模块程序代码如下 rx moudel 模块程序代码模块程序代码 etect module 模块模块程序代码 程序代码 u0 bps module 模块模块程序代码 程序代码 u1 rx control module 模块模块程序代码 程序代码 u2 control module 模块程序代码模块程序代码 UCF 配置文件 配置文件 Spartan 6 XC6SLX16 2CSG324 黑金 黑金 AX516 开发板开发板 4 程序理解 程序理解 程序代码不再一一解释 根据功能框图 如果有 Verilog 基础 看懂代码应 该不会有什么问题 下面主要讨论一下 在学习的时候 一直困扰我的一个问题 两两个核心问题 个核心问题 一是一是 assign 和 always 并行的理解 二是二是 assign 语句中的信 号发生变化后 always 语句中相应信号的语句是在同一周期内执行 还是在下一 个周期内执行 关于 并行 的理解 和我们平时用的 C 语言顺序执行的过程正好是相对 的 在同一个时钟周期内 一旦敏感信号有效 所有由同一个敏感信号控制的的 always 语句块都是同时执行的 例如 以下两个 always 语句块 当检测到 CLK 的上升沿和 RSTn 的下降沿时 两个 always 语句块同时触发 里面的 begin end 语句块将同时执行 二是二是 assign 语句中的信号发生变化后 always 语句中相应信号的语句是在同 一周期内执行 还是在下一个周期内执行 例如 U1 和 U2 两个模块程序 一旦检测到CLK的上升沿 U1和U2模块中的两个always语句块同时执行 U1 模块中 Count BPS Count BPS 1 就会加 1 当 Count BPS 2604 时 BPS CLK 1 Count BPS 2604 和 BPS CLK 1 是在同一个周期内进行的 而 U2 模块中 1 if BPS CLK 语句也是在同一周期内并行执行判断条件的 但是 判断条件 BPS CLK 0 并不是等于 1 可以这样理解 并行语句的赋值 先计 算右侧表达式的值 是在这个

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论