IC验证-寄存器专项测试

这篇具有很好参考价值的文章主要介绍了IC验证-寄存器专项测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.三个概念

关键点:对粘连的理解和验证

1、寄存器默认值的验证

DUT初始化后,读取寄存器值,判断读取的值是否等于设计时所配置的初始值,不等则证明寄存器有错。

2、寄存器之间是否有粘连的验证

通常,对一个寄存器进行赋值,不会影响到其他寄存器值,但是当发生寄存器之间的粘连时,寄存器之间就不再有独立性,对其中某个寄存器进行赋值操作,就会影响到其他寄存器的值。

通常是写入0x01(<<1)后读出0x10,以此类推。

3、同一寄存器中比特位之间的粘连

通常,对一个寄存器中某一位进行置位或清零操作,不会影响到其他比特位,但是当发生寄存器内部比特位之间的粘连时,比特位之间的独立性就不存在了,对其中某个位进行置位或清零操作,就会影响到其他比特位的值 。

二.寄存器验证方法

以RW寄存器为例

方法一

1.读测试(默认值测试)

读出的值应该为默认值,否则为默认值设置错误,默认值错误有时会引起一些莫名其妙的错误

2.读写测试

(1). 随机值测试,随机一个寄存器值然后读出进行比对;

(2). 位粘连测试,采用00….001和11…110进行移位操作写入读出对比测试防止寄存器某些bit位粘连;

(3). 位翻转测试,写0x55…555(0101…0101) 、0xaa…aaa(1010…1010),读出比较;

(4). 位边界测试,写00…00,fff…ff(1111…1111)读出比较

方法二 五步法(其实两种方法是一样的)

1.测寄存器的value

一.对所有寄存器复位,检测default_value是否正确

二.对所有寄存器写入ff(1111_1111),检测是否正确

三.对所有寄存器写入aa(1010_1010)

四.对所有寄存器写入55(0101_0101)

五.对所有寄存器写入随机值

2.进行粘连测试

通常是写入0x01读出0x10,以此类推,写入一个寄存器后读出其他所有寄存器检查是否误写入。文章来源地址https://www.toymoban.com/news/detail-698782.html

到了这里,关于IC验证-寄存器专项测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【FPGA/数字IC】Multiport RAM,多读多写寄存器-——基于FPGA BRAM的多端口地址查找表与FPGA BRAM的资源分析

    目录 背景 手写Multiport Ram Multiport RAM 代码方案 资源评估 Multiport RAM 资源利用的优化 资源评估 防止读写冲突的组合逻辑设计(写优先) 仿真和时序 单口写数据 单端口读数据 多口读相同数据 多口同时读不同数据 背景         在多端口交换机的设计中,交换机的每个端口

    2024年04月26日
    浏览(46)
  • Vivado MIPS寄存器堆(含测试代码)

    本篇文章使用 Verilog 语言编写实现带有优先级的83译码器,含有设计代码和测试代码。 一、 寄存器堆 regfile 模块实现了 32个32位通用寄存器 。可以同时进行 两个寄存器的读操作 和 一个寄存器的写操作 。写操作是同步写,写使能信号(we)为1时有效,为0时无效;读操作可以

    2024年02月08日
    浏览(46)
  • MIPS寄存器文件设计实验

    学生了解 MIPS text{MIPS} MIPS 寄存器文件基本概念,进一步熟悉多路选择器、译码器、解复用器等 Logisim text{Logisim} Logisim 组件的使用,并利用相关组件构建 MIPS text{MIPS} MIPS 寄存器文件。 利用 Logisim text{Logisim} Logisim 平台构建一个简化的MIPS寄存器文件,内部包含 4 4 4 个 32 32

    2024年02月05日
    浏览(50)
  • 设计一个8位双向循环移位寄存器vhdl

    设计一个8位双向循环移位寄存器vhdl 状态表如下: CLK RESET LOAD M 工作状态 × 0 × × 复位 ↑ 1 1 × 置数 ↑ 1 0 1 左移 ↑ 1 0 0 右移 (4)不考虑串行输出,移动不能用移位操作符。

    2024年02月11日
    浏览(41)
  • 硬盘、内存、缓存(CPU)和寄存器 空间大小与存取速度的区别及设计原理

    很多人会将 寄存器 与 存储器 二者混淆,认为它们是同一个东西。但并不是!! 寄存器是CPU上的一个模块 存储器是 内存+硬盘的统称 CPU(包含寄存器,缓存)    内存    硬盘 内存和硬盘之间的速度,差 3~4 个数量级;寄存器和内存之间的速度也差了 3~4 个数量级。       

    2024年03月22日
    浏览(48)
  • java集成mqtt、rabbitmq服务远程连接数dtu实现寄存器rtu数据读写

    数据采集及写入流程设计图 一、硬件设备 硬件设备与原有设备保持不变通过配置dtu设备进行mqtt穿透功能进行数据交互 1、dtu配置详解: 1.1 dtu工具 本项目使用塔石TAS-LTE-364支持4G无线dtu模块,下载安装塔石物联网厂家提供的串口测试程序Tool V2.7.1 D20220616.exe 1.2打开程序选择对

    2024年02月03日
    浏览(43)
  • 【FPGA】Verilog:时序电路设计 | 自循环移位寄存器 | 环形计数 | 扭环计数 | 约翰逊计数器

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用IO:Switch :

    2024年02月10日
    浏览(95)
  • 【汇编中的寄存器分类与不同寄存器的用途】

    寄存器分类 在计算机体系结构中,8086CPU,寄存器可以分为以下几类: 1. 通用寄存器: 通用寄存器是用于存储数据和执行算术运算的寄存器。在 x86 架构中,这些通用寄存器通常包括 AX、BX、CX、DX、SI、DI、BP 和 SP。其中,AX、BX、CX 和 DX 寄存器可以分别作为累加器(accumulat

    2024年02月09日
    浏览(51)
  • stm32的BRR寄存器和BSRR寄存器

    1、BRR---   bit   RESET(置0)  register   //高16位无,低16位置1为0,不能写1 2 、BSRR---   bit   SET(设置1或0)       register   //低16位设置1为0 BSRR:用于低16位的作用是让指定的IO口置1;而高16位的作用是让指定的IO口置0。  

    2024年02月11日
    浏览(44)
  • 寄存器内存读写指令(二) —— 多寄存器读写 LDM / STM

    有的时候,CPU可能会遇到 a++; b++; c++,这个时候为了提升效率,CPU可能会一次将多个寄存器里的变量保存到内存中。这个时候之前介绍的 LDR / STR 指令虽然也能实现,但只能操作一个寄存器的读写。 因此,考虑到这点,下面介绍多个寄存器的读写指令 将 多个寄存器 的数据写

    2024年02月07日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包