UART DUT 介绍、验证功能点提取、UVM 验证代码介绍、Debug 过程和联调过程、覆盖率收集等 UART(Universal Asynchronous Receiver-Transmitter)是一种异步全双工串行通信协议,将要传输的数据在串行通信与并行通信之间进行转换。作为把并行输入信号转成串行输出信号的芯片,UART 通常被集成于其他通讯接口的连结上,其工作原理是将数据的二进制位一位一位地进行传输。 DUT(Device Under Test)功能理解:DUT design Spec 如左图所示,DUT 有两种执行方式,一种是对外围设备接收的数据进行串行到并行的转换(RX 方向);另一种是对传输到外围的数据进行并行到串行的转换(TX 方向)。 DUT 模块理解: 1. APB interface:实现接口信号的解码,用于访问状态,配置寄存器,接收,发送数据到 FIFO。 2. transmit FIFO:8 位宽,16 位深,用于存储从 APB interface 中写入的数据,直到数据被传输逻辑读走,该 FIFO 可以被 disable,使其成为单字节寄存器。 3. receive FIFO:12 位宽,16 位深,用于存储上行端接收的数据以及错误位信息,直到数据被 APB 接口读走,该 FIFO 可以被 disable,使其成为单字节寄存器。 4. transmitter:将传输 FIFO 中的数据实现并行到串行的转换。 5. receiver:将对外围设备数据进行串行到并向的转换,同时还会执行溢出,奇偶校验,frame 错误检测和中断检测,并将其写入到 receive FIFO。 6. 波特率发生器:包含自由运行的计数器,产生内部 x16 时钟和 Baud16 信号。Baud16 是 UART 发射和接收控制提供定时信息。 7. interrupt generation:该控制器在每个外围设备的基础上实现另一级别的屏蔽,这样,全局的中断服务例程可以从系统中断服务器中读取。 UARTLCR_H 寄存器内部宽 29 位,但外部通过 AMBA APB 总线通过三次写入寄存器位置 UARTLCR_H、UARTIBRD 和 UARTFBRD 进行访问。UARTLCR_H 定义了传输参数、字长、缓冲区模式、传输停止位数、奇偶校验模式和中断生成。 波特率配置:波特率除数是由 16 位整数和 6 位小数部分组成的 22 位数字。波特率生成器使用该值来确定位周期。波特率除数 = UARTCLK /(16xBaud Rate)= BRDI + BRDF,其中 BRDI 是整数部分,BRDF 是小数点分隔的小数部分小数 m = integer(BRDF*2^n + 0.5)生成内部时钟启用信号 Baud16,它是一个 UARTCLK 宽脉冲流,平均频率为所需波特率的 16 倍。然后将该信号除以 16,得到传输时钟。 数据传输和接收:对于传输,数据被写入传输 FIFO。如果 UART 已启用,则会导致数据帧开始使用 UARTLCR_H 中指定的参数进行传输。数据继续传输,直到传输 FIFO 中没有数据为止。一旦数据写入传输 FIFO(即 FIFO 非空),BUSY 信号就会变高,并在传输数据时保持高电平。只有当传输 FIFO 为空,并且最后一个字符(包括停止位)已从移位寄存器传输时,BUSY 才被否定。即使 UART 可能不再启用,也可以将 BUSY 断言为 HIGH。 当接收器空闲为 idle 时(UARTRXD 连续 1,处于标记状态)且在数据输入上检测到低电平(已接收到起始位)时,接收计数器(时钟由 Baud16 启用)开始运行,并在正常 UART 模式下在该计数器的第八个周期对数据进行采样。如果 UARTRXD 在 Baud16 的第八个周期上仍然处于低位,则起始位有效,否则会检测到错误的起始位并将其忽略。如果起始位有效,则根据数据字符的编程长度,在 Baud16 的每 16 个周期(即一个位周期之后)对连续数据位进行采样。如果启用了奇偶校验模式,则检查奇偶校验位。如果 UARTRXD 高,则确认有效的停止位,否则会发生帧错误。 UART 读写时序: * UART 读写时序图 * UART 数据帧格式 起始位:发送 1 位逻辑 0(低电平),开始传输数据。 数据位:可以是 5~8 位的数据,先发低位,再发高位,一般常见的就是 8 位(1 个字节),其他的如 7 位的 ASCII 码。 校验位:奇偶校验,将数据位加上校验位,1 的位数为偶数(偶校验),1 的位数为奇数(奇校验)。 停止位:停止位是数据传输结束的标志,可以是 1/2 位的逻辑 1(高电平)。 空闲位:空闲时数据线为高电平状态,代表无数据。 UVM 验证代码介绍: * UVM 验证环境搭建 * UVM 验证用例编写 * UVM 验证结果分析 Debug 过程和联调过程: * Debug 工具选择 * Debug 过程 * 联调过程 覆盖率收集: * 代码覆盖率收集 * 数据覆盖率收集 * FSM 覆盖率收集 通过对 UART DUT 的介绍、验证功能点提取、UVM 验证代码介绍、Debug 过程和联调过程、覆盖率收集等,我们可以更好地了解 UART 模块的工作原理和验证方法,并提高我们对 UART 模块的设计和验证能力。
2024-08-27 11:02:43 6.21MB uart
1
matlab交叉验证代码PyTorch DGCNN 关于 DGCNN(深图卷积神经网络)的PyTorch实现。 检查更多信息。 要求:python 2.7或python 3.6; 火炬> = 0.4.0 安装 此实现基于戴汉俊的structure2vec图后端。 在“ lib /”目录下,键入 make -j4 编译必要的c ++文件。 之后,在此存储库的根目录下,键入 ./run_DGCNN.sh 使用默认设置在数据集MUTAG上运行DGCNN。 或输入 ./run_DGCNN.sh DATANAME FOLD 在数据集= DATANAME上运行,使用倍数= FOLD(1-10,对应于在交叉验证实验中用作测试数据的倍数)。 如果将FOLD设置为0,例如键入“ ./run_DGCNN.sh DD 0”,则它将在DD上运行10倍交叉验证,并报告平均准确度。 或者,键入 ./run_DGCNN.sh DATANAME 1 200 将数据集中的最后200张图用作测试图。 折数1将被忽略。 检查“ run_DGCNN.sh”以获取更多选项。 数据集 默认图形数据集存储在“ data / DSN
2024-01-26 18:33:28 35.06MB 系统开源
1
jquery xss验证代码,以txt打开,修改http://xxx/jquery.js,保存后加载有问题的jquery,可以出现弹窗
2024-01-13 16:49:54 310B jquery xss
1
c#.net域用户验证代码,代码没有做非空判断,这个可以自己加上.
2023-11-21 05:03:59 326KB 域验证 代码 用户验证
1
对身份证号码的复杂逻辑 进行验证,
可讲15位身份证自动转换为18位身份证号码进行验证
2023-04-11 22:49:12 5KB j2ee java javaScript
1
Android签名过程的验证过程,及其签名里面文件的生成过程的代码
2023-02-11 00:29:15 1.16MB Android 签名
1
用户注册表单输入验证代码,是一段可以实现目前各大网站都在用的用户注册表单验证代码,可以验证手机号码、邮箱、登录账号、密码、短信验证码等信息。表单信息如果未正确填写就在该表单旁会出现错误提示字样,需要此段代码的朋友们可以前来下载使用。
2022-11-28 21:10:00 48KB HTML源码-网页代码
1
html5手机登录表单验证代码是一款自定义标签属性的手机登录表单验证特效。
2022-11-28 21:06:45 110KB html5 手机登录 表单验证 登录表单
1
matlab 交叉验证代码 Preface 下面是我对这篇 Reading Text in the Wild with Convolutional Neural Networks 文章, 对于前半部分:文字定位检测部分的复现大致流程。 用的数据集是 ICDAR 2011: ,不少人都说 ICDAR 2011 数据集下载不了,我在这里上传一份我自己备份的: 需要指出的是,一方面因为做个实验与示例,且数据集小,做的结果比较粗糙。希望大家包含一下,因为不少同学跟我私信要代码,我在这里贴出来。希望得到大神的建议,帮助完善。 整理后的过程文件都在 reading text in the wild 中。 edge_boxes_with_python 文件夹,存放 Edge Boxes 、Random Forest 的代码,还有一些中间保存的变量结果。 Bounding_Box_Reg 是存放最后回归的文件夹。训练数据的生成、网络的定义都在里面。 Output 文件夹存放中间输出的图像,即将 Bounding Boxes 画在原图上的结果。 **注意:**下面有些数学公式,Github 上不支持,您
2022-11-22 16:46:16 229.69MB 系统开源
1
jQuery淘宝拖动滑块完成验证代码特效源码.zip
2022-11-21 20:18:46 37KB jQuery