完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
编写测试流程的第一个步骤是对测试对象的实例化,即将 UART 顶层模块实例化,实现代码如下:
第二个步骤是产生时钟信号,由于时钟信号比较有规律,所以可以用一个过程(process)来实现,代码如下:
最后一个步骤就是实现测试的主流程,一般是在一个过程(Process)中实现。对于 UART的测试,主要的内容就是数据发送的测试和数据接收的测试,测试主流程的流程图如图 5-27所示。 测试主流程的实现代码如下:
上面代码中的 test_si_none 是在 UART_PACKAGE 库中定义的输入测试数据串行序列(无奇偶教研),此外还定义了奇校验和偶校验对应的序列,代码如下:
在波特率为 9600 情况下利用上述测试平台对 UART 进行仿真,得到数据发送的仿真结果分别如图 5-28 所示。 从图 5-28 可以看出,待发送的数据是 0x55(十六进制,即 send_bus 总线上的数据),由send 信号触发后,RS-232 的 TxD 端输出为序列 001010101(二进制),其中第一位是起始位,中间的八位正是待发送的数据 0xFF,最后再发送完成后输出提示信号 send_over。可见,发送的结果符合 RS-232 的时序要求,UART 的发送功能完全正确。 同样测试条件下数据接收的仿真结果如图 5-29 所示。首先,RxD 上的数据序列为0101010010(二进制),表示起始位 0,之后数据位是 10101010(二进制),所以待接收的数据是 0xAA(十六进制)。recv_buf 是数据接收总线,可以看到其最终得到的数据正是 0xAA(十六进制),并且,在接收完成后 recv 信号会输出一个脉宽的高电平作为提示。由上述可知,数据接收的过程也完全正确。 |
|
相关推荐 |
|
只有小组成员才能发言,加入小组>>
2906 浏览 3 评论
27712 浏览 2 评论
3484 浏览 2 评论
3990 浏览 4 评论
基于采用FPGA控制MV-D1024E系列相机的图像采集系统设计
2338 浏览 3 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 14:28 , Processed in 0.938363 second(s), Total 46, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号