没有合适的资源?快使用搜索试试~ 我知道了~
HDL设计数字UART(中英文翻译).docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 135 浏览量
2023-02-03
17:57:00
上传
评论
收藏 1.67MB DOCX 举报
温馨提示
试读
50页
HDL设计数字UART(中英文翻译).docx
资源推荐
资源详情
资源评论
译文
基于FPGA的串行控制器设计
Thomas Oelsner
QuickLogic Europe
应用注释:QAN20
简介
目前设计开发和验证 FPGA 系统时,硬件描述语言 HDL 的使用变得越来越
主流。采用行为级描述不仅提高了产品的设计效率,而且在设计验证中显示出其
独特的优势。目前最流行的 HDL 语言是 Verilog 和 VHDL 语言。本文介绍了采
用 verilog 语言对数字异步串行收发器进行设计和验证。
UART
通用异步串行收发器(UART)由二个独立的 HDL 模块组成。一个模块实现发
射功能,而另一个模块则实现接收功能。发射和接收功能模块在顶层设计时组合
到一起,这种接收和发射的组合是通信所必需的。数据写入发射器,从接收器读
出,所有的数据是以二进制 8 字节的形式通过一个双向 CPU 接口。由地址映射
的发射机和接收机通道可以很容易地建立接口。两个模块共用一个主控时钟,该
时钟为 mclkx16,在每个模块里,主控时钟 mclkx16 被分频成独立的波特率时钟。
图 1 通用异步串行收发器
通用异步串行收发器的特点
是否具有
全双工操作
标准 UART 数据帧格式
偶校验或奇校验模式
奇偶错误校验
帧错误校验
溢出错误校验
数据接收准备中断
数据发送准备中断
是
是
是
是
是
是
是
是
表 UART 功能概述
Commented [a1]: 所有英文的图和表的标题要翻译成中
文
UART 的功能概况
UART 的基本功能概况见下图。左边为“发送寄存器”、“发送移位寄存器”
以及“发送控制逻辑模块”,这些模块包含在发送模块”txmix”中。右边为“接收
移位寄存器”、“接收寄存器”和“接收控制逻辑模块”,这些模块包含在发送模
块”rxmix”中。这两个模块有单独的输入和输出的控制线路,只有双向的数据总
线、主时钟和复位线是共享的。
图 2 UART 框图
顶层 UART 系统的 I/O 功能描述
符 号
类型
描 述
mclkx16
输入
用于主控时钟波特率的生产。
reset
输入
主复位输入信号。
parityerr
输出
表明被检测的数据帧有无奇偶校验错误。校验编码可以基于偶数
或奇数模式。
framingerr
输出
表明从 rx 输入的数据串是否符合如图 2 所示的 UART 数据帧格
式。
overrun
输出
表明接收模块准备接收新数据是,模块中仍然有数据未读取。
rxrdy
输出
表明接收模块已经接收新数据,并准备读取。
txrdy
输出
表明数据已准备好加载到发送模块。
read
输入
低电平有效的读选通信号,用于从接收模块中读取数据。
write
输入
低电平有效的写选通信号,用于将数据写入发送模块。
data[7:0]
输入
双向数据总线。数据通过该总线进行发送或接收。
tx
输出
发送模块串行输出。复位或闲置时为高电平。
rx
输入
接收模块串行输入。复位或闲置时为高电平。
表 2 UART 的 I\O 接口
UART 的标准数据格式
图 3 UART 数据帧格式
Commented [a2]: 注意下面所有图标的格式,统一是居中,
字体要一样。
Commented [a3]: 是共享的。
Commented [a4]: 图的标题翻译
图 3 为 UART 的串行数据格式,在串行数据帧中包含 8 位数据位以及编码
比特的信息。在连续传输线路之间,传输线路处于高电平。传输从低位的起始比
特开始,接下来的是 8 比特的数据信息,低位对于后边高位有重要的作用。然后
是 1 比特的奇偶校验位,对之前的 8 比特的数据位进行奇偶校验。奇偶校验位由
奇校验或偶校验的形式进行编码。奇偶校验位之后是高位停止比特,标志数据帧
的结束。
UART 时序图
下面显示了数据是如何写入“发送寄存器”并如何加载给“发送移位寄存
器”,及在波特率时钟上升沿时如何传输到 tx 端进行输出的。
图 4 发送时序图
下图显示了数据如何从 rx 端输入写入“接收移位寄存器”并加载到“接收
寄存器”。最后接收模块发出 rxrdty 标志位。
图 5 接收时序图
发送模块
主控时钟称为 mclkx16,被分频成等于 mclkx16/16 的称为 txclk 的时钟频率。
数据以并行的形式写入模块,而按照波特率时钟的频率以串行的形式从 tx 端输
出。从 tx 端输出的数据按照图 3 所示的 UART 数据帧格式发送。
Commented [a5]: 图的标题要翻译
Commented [a6]: 图的标题要翻译
Commented [a7]: 同上
图 6 发送模块
符号
类型
描 述
mclkx16
输入
用于生成主控时钟波特率。
reset
输入
主复位输入信号
write
输入
低电平有效的写选通信号,将数据写入发送模块。
data[7:0]
输入
数据传输是通过数据总线写入发送模块。在写选通脉冲的上升沿,
数据总线的内容锁定在一个内部的“发送寄存器”。
tx
输出
串行数据输出。串行数据帧通过这个端口发送,当复位或闲置时,
tx 保持高电平。
txrdy
输出
表明数据锁存到“发送寄存器”,同时加载到“发送移位寄存
器”,“发送寄存器”准备好接收新数据。
表 2 发送模块 I\O 接口功能
符号
类型
内部标志或信号的描述
thr
reg[7:0]
8 位“发送寄存器”,用于锁存发送模块接收到的数据。
tsr
reg[7:0]
8 位“发送移位寄存器”,发送模块的数据通过此输出。
paritymode
wire
奇偶校验模式位表明了发送模块进行奇偶校验的模式。值
为“1”时,为奇校验,为“0”时,偶校验。
txparity
reg
输出 tx 奇偶校验的结果。
tag1,tag2
reg
此标志位表明发送模块的状态。
txclk
reg
波特率时钟,根据时钟频率将数据通过 tx 输出。
txdone
wire
表明一个数据串发送完成。
txdatardy
reg
表明“发送寄存器”已锁存新数据,准备好进行发送。
paritycycle
wire
表明 tx 输出端接收到 txparity 的值时,发送模块的状态。
cnt
reg[3:0]
暂存器,用于将 clkx16 时钟分频为 txclk 时钟。
表 3 发送模块的内部信号
发送模块的行为描述
发送模块等待新的数据来写入模块,新的数据在发送模块初始化后发送。以
并行形式写入模块的数据转换成串行的形式并由 tx 端输出。当没有传输序列的
时候, tx 端输出高电平。
Commented [a8]: 同上
Commented [a9]: 表的标题和内容要翻译。
Commented [a10]: 同上
图 7 发送的流程
发送模块的实现
用 Verilog 语言声明模块端口,这里定义的信号,是来自于模块并在这里输
出的。在这里并没有详细地说明方向。
module txmit(mclkx16,write,reset,tx,txrdy,data);
图 8 发送模块的声明
端口定义之后是端口的方向,方向为输入、输出或输入(双向) ,这在表 1
中已说明。描述端口方向之后是声明内部信号,内部信号在 Verilog 语言中内部
信号声明为“wire”或“reg”数据类型,wire 类型用于连续的赋值,也叫做组合声明。
reg 类型在 Verilog 语言中用于“always”块,常常用于时序逻辑的赋值,但有时并
不是这样,进一步解释见 Verilog 参考书。模块内部信号的数据类型说明见表 3 。
我们现在已经进行所有必要的声明,并作好准备看看实际的执行情况。硬件
描述语言使我们可以用更多的行为模式来描述发送模块的功能,而不是把重点放
在门一级的实际实现上。软件编程语言,函数和过程将庞杂的程序变得更具可读
性和易于维护。Verilog 语言提供类似的函数和任务结构类似于软件编程语言的
函数和过程。一个 Verilog 语言的函数和任务相当于几行 Verilog 代码,这些代码
使得输入信号影响输出信号或变量。函数和任务通常用在多行代码都是重复出现
的地方, 从而使得设计易于阅读和维护。一个 Verilog 的函数可以有多个输入,
但始终只有一个输出,而 Verilog 的任务在某些情况下可以同时有多个输入和多
个输出。下图显示了 Verilog 的任务格式,保留了所有必要的语句,用来描述发
送模块的传输模式。
图 9 发送传输模式
我们可以看到在移位寄存器有2个标志位tag1和tag2,创建类似的任务来描述
发送模块的“闲置”和“负载”模式。使用Verilog语言,现在我们可以创建一个
“容易阅读”的行为模型的空穴传输过程。如在波特率时钟的上升沿,tsr中的内
容传输到tx端输出。在tsr传输的同时,奇偶校验位也产生了,如图10所示。
重要的一点,就是在传输过程中 tsr 会进行补零。不同的后置标志位 tag 和
tsr 补零位的组合表示不同的传输模式。如果奇偶校验循环周期的第二个周期是
Commented [a11]: 图的标题要翻译
Commented [a12]: 同上
Commented [a13]: 图的标题要翻译
剩余49页未读,继续阅读
资源评论
猫一样的女子245
- 粉丝: 95
- 资源: 2万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功