第二版tapout

先说说上次流回来的芯片的测试情况。

4月23日, 芯片采用裸片直接切片, bond在板子上,外面加了一个小塑料壳来保护,我们就直接拿回来测试了。

测试的主要分为模拟和数字两部分, 数字部分的模块基本都工作正常, 模拟的芯片不一致性很成问题,一共就回来了两片芯片,可是模拟部分的参数不同,同时设置的寄存器给出的可调参数也起不到作用,很让人困惑。于是,查到了5月2日又有一次流片计划,于是急急忙忙的就开始准备了。

很匆忙的, sky1301再次流出一版,其实有三个版本, v01主要就是模拟根据3月2日流出的芯片测试情况改变了模拟部分的一些电路,数字部分就是纠正了之前版本的一些问题,比如clear_fifo 命令, rx的parity的错误问题, tx的取crc的时机;v02则是数字部分添加了提速模块和防碰撞的cl_rx模块;v03就是typeA没提速,没加anti-collision加上了typeB的数字收发模块,能完成最基本的通信流。这三个版本的模拟部分是一模一样的。

1周时间,老实说还是挺紧的。其中的提速模块由于之前dr写的也测试过很久的时间了,基本已经定下来了,我主要负责是防碰撞的测试,由华老师来负责改代码,测试中还是发现了不少的问题的,比如总是在发生碰撞的时候会多往fifo里面多写1byte的无效数据,当碰撞bit是0或是1的时候就不能正常工作等问题。
基本在测试的工程中,问题也都暴露了出来,结果最后的模块我觉得鲁棒性还是不错的,还是等芯片回来好好测试吧。

接着是v03的芯片,加上了typeB协议的实现,tx方面用的是之前我写的发送模块,rx方面用的是杜主任写的一个模块,最后时间测试的还真的是很紧张的,不过在基本测试完anti-collision的时候,就开始了typeB的测试,杜主任的模块犯了一个错误就是threshold的初值是0,而他翻转的invert_pulse的高有效,正好是counter == threshold的时候,结果在reset完到配置到正常工作的threshold值的时候就会发生错误的翻转,于是就不能正常解得所要的数据。当把门限的初值改成非0,比如说正常工作的值是12,改成12,在reset后到正常配置钱的时候就不会发生不正常的翻转,数据就可以正常的解得。

封装好的第一版芯片估计还还得一周左右回来,芯片回来肯定还得好好测试吧。接着再有一个半月,这次5月2日的芯片就又要回来了,新一轮的测试就要开始了,拭目以待。

再接着说说这次后仿的问题,后仿也就是一天多一点的时间跑完的,由于后端做的东西基本就是基于上一版的,问题不是很多,主要呢就是碰到了两个问题。

第一个问题就是关于reset的问题,就比如像下面的波形图所致,reset肯定是异步的,但是后端的工具在生成器件之后拿给我们进行仿真,在器件库里data所在的dff对reset上升沿那里的时序是有一个recovery time的要求的,就是b和c之间的时间,为什么呢,可以这么理解,当你在reset的时候前一级的dff和本级的dff同时被复位,而此时你想将reset的电平抬起,脱离reset的状态,如果这样的话,前一级的D端的数据就会反映到Q端,使得本级的D端的数据无法满足和本级的CP端的时序要求,从而使得仿真会红,报出violation。所以如果想避免这种情况,就要使reset的上升沿与本级的clock上升沿离的足够远,按我的理解就应该至少比本级D端与CP的setup time要远(实际考虑上一级的Q端与本级的D端之间的组合逻辑延时与线延时就要更长)。这样就应该可以了。

第二个问题就是比如现在的case,我要仿真的是tx,结果rx模块会报一些不会红的violation,这是什么原因的呢,还是我们的rst_n起到的作用,就是说你在下达SPI_cmd(CMD_SW_RST)的时候,结果你由于rst会传递到各个模块的各个寄存器,结果有一些模块虽然没工作但是依然处于工具检查的状态,虽然最后不影响结果但是依然会红,会有影响,通常这种情况只要有异步的rst信号,就会有可能发生这种情况,如果真的是不用care的问题,那么可以在仿真的时候简单的加一个延时,让rst_n posedge 和clk posedge相隔的远一些就好了,基本就没有问题。同时,如果是可能产生的影响的话,虽然是异步的rst信号,就都要重新弄一个同步的版本给后面的模块!

转载于:https://www.cnblogs.com/poiu-elab/archive/2012/05/03/2481175.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377530.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cd-rom门锁定什么意思_CD-ROM的完整形式是什么?

cd-rom门锁定什么意思CD-ROM:光盘只读存储器 (CD-ROM: Compact Disc Read-Only Memory) CD-ROM is an abbreviation of "Compact Disc Read-Only Memory". It is a data storage memory in the form of an optical compact disc, which is read by a syst…

远程工作时的协作工具

远程工作时的协作工具 Google Hangout 用于日常会议和面对面交谈,在国内其实可以用qq来带起。Campfire 用于一天来的持续对话。Screenhero 用于分享屏幕,一起写代码,这个比较有用,可以一起写代码。Balsamiq 用于计划要制作的 UI。Asana 用于管理任务Google Docs 用于…

十八、完整神经网络模型验证步骤

网络训练好了,需要提供输入进行验证网络模型训练的效果 一、加载测试数据 创建python测试文件,beyond_test.py 保存在dataset文件夹下a文件夹里的1.jpg小狗图片 二、读取测试图片,重新设置模型所规定的大小(32,32),并转为tens…

二分法变种小结(leetcode 34、leetcode33、leetcode 81、leetcode 153、leetcode 74)

目录二分法细节1、leetcode 34 在排序数组中查找元素的第一个和最后一个位置2、不完全有序下的二分查找(leetcode33. 搜索旋转排序数组)3、含重复元素的不完全有序下的二分查找(81. 搜索旋转排序数组 II)3、不完全有序下的找最小元素(153. 寻找旋转排序数组中的最小值)4、二维矩…

ID3D11DeviceContext::Dispatch与numthread笔记

假定——[numthreads(TX, TY, TZ)] // 线程组尺寸。既线程组内有多少个线程。Dispatch(GX, GY, GZ); // 线程组的数量。既有多少个线程组。 那么——SV_GroupThreadID{iTX, iTY, iTZ} // 【线程组内的】线程3D编号SV_GroupID{iGX, iGY, iGZ} // 线程组的3D编号SV_DispatchT…

kotlin 查找id_Kotlin程序查找Square区域

kotlin 查找idFormula to find area of Square: area side*side 查找Square面积的公式: area side * side Given the value of side, we have to find the area of Square. 给定side的值,我们必须找到Square的面积。 Example: 例: Input…

小米手环6解决天气未同步问题

最近我发现了我的米6手环天气不同步,打开Zepp Life刷新同步也不行,后来我找了一些网上的解决方法,尝试了一些也还不行,我这人喜欢瞎捣鼓,无意之间给整好了,后来我开始总结自己操作步骤,就在刚才…

c# datetime._C#| DateTime.Month属性与示例

c# datetime.DateTime.Month属性 (DateTime.Month Property) DateTime.Month Property is used to get the month component of this object. Its a GET property of DateTime class. DateTime.Month属性用于获取此对象的月份组成部分。 这是DateTime类的GET属性。 Syntax: 句…

C++ 内存分配层次以及memory primitives的基本用法

分配层次 C memory primitives 分配释放类型是否可重载mallocfree()C函数不可newdeleteC表达式不可::operator new()::operator delete()C函数可allocator::allocate()allocator::deallocate()C标准库可自由设计并以之搭配任何容器 分配与释放的四个用法 1、malloc and delet…

jQuery easyui layout布局自适应浏览器大小

首先解释一下标题的含义,当我们用jQuery easyui layout 进行布局的时候,可能会遇到这样一个问题,那就是当手工调整浏览器大小,或者最大化、还原窗口的时候,layout的某个区域不能填充因为浏览器扩大而产 生的空白区域&a…

JAVA 作业:图形界面

自己动手写的一个小JAVA 程序: 一个学生管理小系统,虽然很挫,但是这我学JAVA的第一步。学了2天JAVA没有白费! 1 import java.awt.*;2 import java.awt.event.*;3 import java.util.ArrayList;4 5 import javax.swing.*;6 7 class …

一、Pytorch对自定义表达式自动求导

例如:y ax bx c,分别对a,b,c求导 若当a3,b4,c5,x1时 import torch from torch import autogradx torch.tensor(1.) a torch.tensor(3.,requires_gradTrue) b torch.tensor(4.,requires…

css菜单下拉菜单_在CSS中创建下拉菜单

css菜单下拉菜单CSS | 创建下拉菜单 (CSS | Creating Dropdown) Trivia: 琐事: We know the importance of navigation bar on our webpage, we know the importance of a list of items too on our webpage but what is the importance of dropdown in web pages?…

C++ 内存基本构件new/delete的意义、运用方式以及重载方式

目录一、对new的理解1、new做了什么2、new被编译器转为了什么3、operate_new源代码长啥样二、对delete的理解1、delete做了什么2、delete被编译器转为了什么3、operator delete源代码长啥样三、构造函数与析构函数的直接调用参考一、对new的理解 1、new做了什么 C告诉我们&am…

二、线性代数

一、张量 张量表示由一个数值组成的数组,这个数组可能有多个维度 import torchx torch.arange(15) x # tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])1,shape shape属性可以访问张量的形状 x.shape # torch.Size([15])2&a…

Wordpress prettyPhoto插件跨站脚本漏洞

漏洞名称:Wordpress prettyPhoto插件跨站脚本漏洞CNNVD编号:CNNVD-201311-413发布时间:2013-11-28更新时间:2013-11-28危害等级: 漏洞类型:跨站脚本威胁类型:远程CVE编号: 漏洞来源…

JavaScript学习笔记1

Netscape 公司 DOM模型&#xff0c;层(layer)-用ID标识。 HTML标记页面上的元素&#xff0c; <div id "mydiv">This is my div</div> CSS为这个页面元素定位 #mydiv{ position:absolute; left:320px; top:110px; } JavaScript 访问 (DOM模块不同&#x…

c# 中关键字_C#中的“使用”关键字

c# 中关键字Prerequisite: Namespace in C# 先决条件&#xff1a; C&#xff03;中的命名空间 If you want to include namespace in a program then we need to use using keyword. For example we use Console class which is defined in System namespace that’s why we n…

C++ 内存基本构件new [] /delete []的意义、内存泄漏原因、VC下cookie的基本布局

目录一、对new [] delete [] 的理解1、delete的[]遗漏会带来什么影响二、以示例探讨三、cookie的理解一、对new [] delete [] 的理解 new的对象是个array类型的。 Complex* pca new Complex[3]; //唤起三次ctor //无法借由参数给予初值 ... delete[] pca; //唤起3次dtor如下…

OpenJudge计算概论-找出第k大的数

/* 找出第k大的数 总时间限制: 1000ms 内存限制: 1000kB 描述 用户输入N和K&#xff0c;然后接着输入N个正整数&#xff08;无序的&#xff09;&#xff0c;程序在不对N个整数排序的情况下&#xff0c;找出第K大的数。注意&#xff0c;第K大的数意味着从大到小排在第K位的数。并…