基于FPGA的串口控制器设计

上传人:wo7****35 文档编号:55554041 上传时间:2018-10-01 格式:DOC 页数:9 大小:492.50KB
返回 下载 相关 举报
基于FPGA的串口控制器设计_第1页
第1页 / 共9页
基于FPGA的串口控制器设计_第2页
第2页 / 共9页
基于FPGA的串口控制器设计_第3页
第3页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于FPGA的串口控制器设计》由会员分享,可在线阅读,更多相关《基于FPGA的串口控制器设计(9页珍藏版)》请在金锄头文库上搜索。

1、 基于FPGA的串口控制器设计 简介 使用硬件描述语言 (HDL) 设计和开发验证FPGA成为当前的主流因素。使用 行为级描述不仅增加了产品的设计效率,也在设计中有独特的验证方式。目前 最流行的HDL语言为Verilog 和 VHDL。这篇文章将会举例说明用 Verilog语言 设计和验证数字异步串行收发器UART。 UART介绍通用异步串行收发器 UART 包含两个独立的 VHDL 模块。一个模块实现发射 功能, 另一个实现接收功能,发射和接收功能模块在顶端设计时组合到一起使 用,接收和发射的组合是通信通道所必需的。数据写入发射器,从接收器读出, 所有的数据以二进制 8 字节的信号通过 CP

2、U 接口。地址映射的发射机和接收机 通道可以很容易的在设计顶层的接口构建。两者共用一个称为 mclkx 16 的主控 时钟,在每个模块中 mclkx 16 被分成独立的波特率时钟。UART 的功能概况 UART 的基本功能概况见下表。在左边显示传输保持记录,移位记录,传输 控制时钟,全部集中在发射机的 txmit 端。在右边显示接收移位寄存器,接收 记录和控制逻辑时钟,所有都包含在接收模块的 rxcver 端,这两个模块有单独 的输入和输出的控制线路,只有双向的数据总线,主时钟和复位线由两个模块 共享。顶层 UART 系统的 I/O 功能描述UART 时序图 下面显示的是写入传输寄存器的数据是

3、如何被加载到移位寄存器,并在波 特率时钟的上升沿,转向 txd 输出端。发送器主控时钟 mclkx16 被分频到合适的波特率时钟称为 rxclk,它等于 mclkx16/16。数据以平行的形式锁存模块,而转向以串行格式在波特率时钟频 率下向 tx 端输出。数据转到 tx 输出遵循 UART 数据格式如图 6 所示。发送器行为描述 发送器等待新的数据写入模块,当新的数据写入发送序列模块时数据初始 化。被写入的数据以并行方式传送到发送模块然后被转化成串行数据帧从 tx 输 出。当没有传输序列的地方,tx 输出是高电平。发送器实现Verilog 的内部信号被称为 wire 和 reg 两种数据类型,

4、WIRE 类型的信号用 于连续的作业,也称为组合语句,REG 类型的信号用在分配 Verilog 里的 always 时钟,常常使用逻辑顺序的分配,但不是一定的,进一步解释见 Verilog 参考书,模块内部信号的数据类型如表 3 所示。 我们现在已经通过了所有必要的声明,并已作好准备,看看实际执行,用 硬件描述语言使我们以更加行为化的方式描述发送器的功能,而不是把重点放 在它在门级的实际执行情况。在软件编程语言中,函数和程序将大项目分解成更具可读性,管理性,当 然也可维护的部件,Verilog 的函数和任务被用来当作多行的 Verilog 代码,其 中某些输入或信号影响某些输出或变量。函数和

5、任务的使用,通常发生在多行代 码需要重复使用的设计中,从而使得设计易于阅读和维护肯定,Verilog 函数, 可以有多种输入,但始终只有一个输出,然而 Verilog 任务可以兼得多投入, 多产出,下面显示了 Verilog 任务,即拥有所有必要的顺序语句,用来描述发 送器的转移模式。我们可以看到在移位寄存器里有2个标志位叫作tag1和tag2,在描述空闲和 置位模块时产生相同的作用。使用这些 Verilog 工作,我们现在可以产生一个 非常容易阅读的行为模型的空穴传输过程。 如果txdone 和txdatardy都是正确的,发送器进入负载模式。在负载模式 下,进入发送模式转变,在上升沿的波特

6、率时钟,tsr的内容转移到tx输出端。 奇偶校验过程产生于tsr变化中,如下所示。模拟发送序列 在写入上升沿时数据总线容量被锁存,在 txclk 下一个上升沿,thr 的容 量载入 tsr,低电平开始位进入 tx,发送标志位显示,thr 再次等待新的数据 的写入。在每个发送时钟上升沿,tsr 的容量被送入 tx,在数据传输过程中产 生奇偶校验,周期循环时奇偶校验为高电平,tx 产生奇偶校验结果。接收模块 主控时钟 mclkx16 被分频到合适的波率时钟称为 rxclk,它等于 mclkx16/16 。 串行数据为收到的 rx 输入模块,必须按照 UART 的数据格式, 串行格式接收到的数据通过

7、 8 位数据总线以并行格式的形式读出。接收模块行为描述 根据标准异步串行 UART 行为标准,在连续发送时,发送保持高电平,接收 器在等待闲置模式的 rx 端输入为低电平,在 rx 下降沿接收进入保持模式,现 在寻求一种有效的开始位等待新的数据帧的到来,如果一个有效的开始位被检 测到时,接收器进入转变数据模式,在接收一个数据帧的过程中,各种校验和检 查错误被执行,当一个完整的数据帧被接收,接收端返回待机模式,接收器基 本运作如下所示。接收器模块的实现 为了产生一个易读易操作的接收器模块,用两种 Verilog 任务来描述不同的接收方式,当接收在空闲状态时,其中一个 Verilog 任务称为空闲

8、复位,而 它需要所有必要的顺序语句来描述接收机复位条件。当接收器不在复位状态,也不在空闲状态下,在 rx 输入端接收的采样数据, 传输到移位寄存器中,在进入的数据中产生奇偶校验位,另外一个 Verilog 任 务称为数据移位,需要所有必要的顺序语句来描述上述行为。利用两个 Verilog 任务实现上述功能,现在在复位状态,空闲状态或者数据传输状态,我们可以产生行为级描述的接收器,所有上述行为是和称为 rxclk 的波特率时钟同步的,它们的实现如下所示。当低电平开始位到达 rsr0时,一个完整的数据帧将会被接收到,在下一 个接收时钟上升沿到来时又回到空闲状态,当返回空闲状态时,接收器显示数 据接

9、收准备,然后接收的新数据以并行方式读出,错误的标识被更新,并返回 空闲状态,在数据读出后清除。在读下降沿时,rhr 的容量锁存在数据总线, 表 8 所示接收器各种错误检查。接收序列的模拟 连续传输之间的传输线保持高通。在 RX 输入的下降沿,内部 RXCNT 开始计 数,同步 mclkx16。如果 RX 输入保持低位 8 个周期 mclkx16,内部状态位空闲 复位,那里能够产生 RXCLK。 RXCLK 现同步到低起始位的中心点。在 RXCLK 的 上升沿,数据被从 RX 输入移位到 RSR,当低开始位到达 rsr0时,在下一个接 收时钟上升沿又被置空闲位,此时失效。在返回空闲状态时,rsr

10、 的内容被载 入到 rhr,状态标志更新,接收位产生,rhr 内容能够被读出,在读下降沿时, rhr 内容被应用到数据总线。硬件描述语言仿真 我们现正研究HDL如何用于行为级设计来实现数字UART。而HDL使设计执行 更容易阅读,并且希望能被理解,它还提供能够方便的描述各种程序之间的依 存度,通常是发生在这样一个复杂的事件驱动系统中,例如UART。我们将很快 看到这种描述各种程序之间依存度的能力对于实现仿真是很需要的。Verilog语 言中的模拟仿真叫做测试工具,测试工具是拥有各线路的HDL代码要生成仿真激 励的Verilog模块,而在同一时间端口映射,这些产生的信号将会被模拟。端口 映射是通

11、过异步通用收发传输器的顶层模块的分层模块实例化进入测试工具完 成的,如下所示。这使得仿真激励适用于输入端的设计,同时检测输出的设计,输入激励, 可以有条件地对输出响应等,图 19 显示说明如何测试工具端口映射到 UART 的 顶层。在测试工具中输出的传输模块又循环到接收器的输入模块,这使得发送器 模块用来作为测试信号发生器接收器模块,数据可以并行的方式写入发送器, 同时以串行的方式回送到接收器模块的输入端,并且数据最终从接收器以并行 格式读出,为了尽可能实现 UART 的自动化测试,三个独立的 Verilog 任务如下,发送写入任务需要一切必要的声明来产生一个并行的数据写入到发送器,数据 写入

12、发送器来完成写入接收任务,锁存内部测试工具供以后的分析。接收读出 任务需要一切必要的声明来产生一个并行的数据从接收模块读出,数据读出接 收器来完成读出接收任务,锁存内部测试工具供以后的分析。数据比较任务需 要一切必要的声明来使先前写入发送器的数据同相应的从接收模块读出的大多 数最近接收的数据比较,如果发生任何差异,则“compare_data”任务通过写 出被写入发送模块的数据值来标记为一个错误,以及相应的从接收模块接收并 且读出的数据值。 综合 HDL作为设计方法比传统的FPGA设计输入方式如原理图方式有若干优势,它 同时规定了极大的灵活性以及高性能的目标装置的综合流程,UART综合流程已 被针对为两个来自QuickLogic的灵活和高性能的可编程逻辑器件FPGA系列,如 pASIC-1和pASIC。综合以后,设计布局使用来自QuickLogic的可编程逻辑工具, 在布局之后,UART使用有标注的Verilog布局时序模块,叫作来自于Simucad的 SilosIII的快速Verilog仿真被用于布局后的仿真,所有使用过的工具都可以从 来自于QuickLogic的 QuickWorks工具套件中获得。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号