- 博客(37)
- 资源 (2)
- 收藏
- 关注
原创 [Note]ICG(时钟门控)为什么是用setup和hold检查
那就先看 Master 锁存器是如何对输入数据进行锁存的,数据的路径如下图中的红线所示,当时钟 Clk 为 0 时,数据从 D 输入(假设数据输入为 0)经过反相器历时 t1,数据变成 1,经过与门历时 t2 数据变成 1,再经过或非门历时 t3,由于此时数据为 1,所以经过或非门 Q 端输出为 0,Q 端输出又作为下面的或非门输出为 1,并且在此历时 t4,最终在 Q 端输出 0,此时数据便顺利被锁存起来。触发器的hold时间,是clk到与门的时间晚于D到与门的时间,导致的hold时间。
2024-07-11 16:34:08
949
原创 [Note]笔USI协议中Hash的应用
为了加快出墨的速度,USI controller内置一个information cache,存储已经配对过的笔的信息,然后,controller将这些信息计算得到一个code,code是比较短的,笔也将自己的信息计算得到一个code,controller会用get hash包去得到笔的code,通过比较controller的code和笔的code是否一致,就可以得知这根笔的信息是不是已经存在controller的cache里面了,如果已经存了,就可以跳过配对操作,加快出墨的速度。的输出字符串的过程。
2024-01-24 11:28:01
908
原创 [Note]对于补码的思考
因此,补码的出现,其实是依靠了溢出的机制,计算x+(-y),应该说是先让第一个乘数x溢出,然后再加x-y+1,得到补码,所以, (7-x)+(x-y+1)=8-y,因此-2的补码等于8-2=6,二进制1_110,-7的补码等于8-7=1,二进制1_001。我想先举一个例子,二进制中,假设我们用3个位表示3,对应二进制是011,2对应的二进制是010,2+3,对应的是011+010=101,对应的二进制是5。我们常说补码是源码取反加1,实际上取反,就是7-y的操作,取反加1就是7-y+1,等于8-y。
2023-12-04 20:14:44
385
原创 [Note]对于CRC的思考
如果传输过程中发生出错,154可能会变成一个随机数,如果变成的这个随机数也可以整除7,那么此次校验就失败了,那么,直观上看,000~999之间,能够找到一个被7整除的数字的概率是1/7,我们就可以初步地认为这个除数7的传输错误率为1/7。但是,除了除数的大小之外,除数本身的特性也是会影响出错概率的,例如除数7和除数8,如果传输数据154出错了,假设它只有最高位出错,那么对于除数7,只有854能整除7,而对于除数8,354、554、754、954都可以整除8,因此,除数本身的性能也是要考虑的因素。
2023-11-30 17:38:55
395
原创 [Note]时钟门控的时序检查
时钟门控,一般有几种类型。这几种门控的时序检查方式并不一样,一般设计上都会采用icg,以规避时序违例带来的毛刺问题。参考。
2023-10-24 17:44:38
165
原创 [Note] 汉明码与汉明距离的思考
汉明距离,定义是两个码字之间的不同的位的数量,例如4’b0000和4’b0011的汉明距离为2,4’b0000和4’b1110的汉明距离为3。一种编码方式的(最小)汉明距离,它的定义就是,这套编码方案中,任意两个编码的码字之间的汉明距离,最小值是多少。我们可以在2^n个可用的码字中间选择一些码字来对信源符号进行编码,把这些码字称为合法码字,而其他没有使用的码字称为非法码字。
2023-10-24 17:42:33
1075
1
原创 [Note]CDMA的分离码
另外,如果使用walsh码,它的第一行全为1,表示它的波形都是一样的,那么在RX端,就有可能得到全1的幅值叠加的波形,此时会加大电路中ADC的设计难度。:walsh码的性能好,但是在电路实现上,可能选择是矩阵第一行循环左移产生的矩阵,因为它的可实现性更好,且性能可能也不会差太多(看实际效果)。一般情况下,B会是A的逆矩阵,但是在实际实现的时候,可能会用其他方式来实现这个计算,例如移位或者说是截位的方式。:正交码的互相关性为0,准正交码的互相关性大于0,在主要关注可分离性的情况下,码的互相关性越小越好。
2023-10-19 15:41:47
81
原创 Excel_字母数字混合排序(数字不符合预期)的一种解决方法
如果选择性粘贴,跳过空单元的时候没有成功,原列有被空白内容覆盖的情况,那么可以对复制列进行两次替换,来解决问题。如何对上述信号进行排序,如果直接用excel进行A-Z排序,就只会得到跟表中同样的结果。那么对几个形式不同的任意文本进行ctrl e,就可以提取,如果这样写,在如下方格按下ctrl e还是不能识别正确。再对有填充0的那一列排序,右边的列得到最终结果。用ctrl E继续提取数字前和数字后的文本。1、 将文本中的最左边的数字提取出来。,会排成1、10、11、2……如:想提取文本的最左边的数值。
2023-09-22 14:53:29
323
原创 [Tips] moore状态机和mealy状态机名字的由来
在学习状态机的时候,大概率都能看到书上写的是moore状态机和mealy状态机。然后就开始阐述这2个状态机的异同。我这个人有个毛病,看到名词,我就喜欢研究它的出处,比如看到FSM,我就希望知道FSM是Finite State Machine。我看到moore和mealy,就像知道它们是怎么来的,为什么叫做moore和mealy,经过一番搜索,找到了眉目。HistoryThe Mealy machine is named after George H. Mealy, who presented the con
2022-07-06 18:12:55
635
3
原创 [Tips] 电路设计者可能的学习渠道
EETOP:各路网友提供大量学习资料、书籍、datasheet、课程、讨论等等CSDN:各路网友提供大量学习资料、书籍、datasheet、课程、讨论等等博客园:各路网友提供大量学习资料、书籍、datasheet、课程、讨论等等面包板论坛:各路网友提供大量学习资料、书籍、datasheet、课程、讨论等等电子发烧友:各路网友提供大量学习资料、书籍、datasheet、课程、讨论等等谷粉学术:专门搜索国外论文,根据DOI搜索中国知网:专门搜索国内论文Sci-hub:专门搜索国外论文鸠摩搜书:专门搜索书籍、书本
2022-06-29 12:24:04
1340
原创 数字14 AES高级加密协议的动机阐述
最近在学习AES高级加密协议,我想写一篇文章阐述AES的各个操作的动机,也以此督促自己多多思考,多记录。 如果不清楚AES的操作是什么。可以参考这个博文,或者到最后我简单的说明。AES加密算法的详细介绍与实现_TimeShatter的博客-CSDN博客_aesAES加密算法的详细介绍与实现_TimeShatter的博客-CSDN博客_aes 我想阐述的是,AES的每个操作的理由,即为什么。参考文档:《密码编码学与网络安全 原理与实践》第6版 ,斯托林斯著 首先,我想以自己的
2022-06-24 17:55:21
355
转载 数字13 DFT scan chain test科普
DFT scan chain 介绍 现代集成电路的制造工艺越来越先进,但是在生产过程中的制造缺陷也越来越难以控制,甚至一颗小小的 PM2.5 就可能导致芯片报废,为了能有效的检测出生产中出现的废片,需要用到扫描链测试(scan chain),由此产生了可测性设计即 DFT flow。 注意scan test 只能检测出制造瑕疵,无法检测芯片功能瑕疵。 在芯片功能设计完成后,整个网表是由一堆普通的寄存器和组合逻辑构成的。扫描链的插入就是指将普通寄存器替换成为扫描...
2022-05-06 09:16:44
1981
1
原创 数字12 设计小记
Spare cell是闲置逻辑单元的意思,在想要添加简单功能时,后端人员简单修改网表中的spare cell后可直接进行place&route,不需要重复进行综合。例如,想要在电路中添加一个与门,直接将一个spare cell在网表中改成与门,然后对应连线,就可以实现功能。超前进位对于计数器,提高其工作频率的方法之一,是进行超前进位操作。例如,对于一个32位的计数器,可以分为2个16位的计数器,低位的计数器在计数至0xfffe时,产生一个进位信号送到一个D触发器,在低位的计数器全
2022-03-30 15:09:40
414
1
原创 数字 11 verilog实现通用二分法
最近想做一个通用二分法,所谓通用,就是对不同的位宽的数据都能做二分法,比如输入4bit。能够按照8->12->14->13的顺序开始做二分法。输入2bit,能够按照2->3的顺序做二分法。假设输入N,那么就会从N/2开始做二分法。我这个二分法是作用于反馈系统的,此二分法的当前输出,是与比较结果(比较结果决定二分法的下一次分区)相关的。使用verilog语言实现的话,我这里暂时想出了一种思路。以下面这个二分法流程为引。进程cnt_id=0 : 比较结果为0表示二分法
2021-02-02 17:09:51
2000
原创 [Notes] IQ不平衡数字域校准方案
参考文档:宽带零中频收发机I_Q不平衡数字域校准方案的研究与实现_杨润光https://blog.csdn.net/weixin_44586473/article/details/104066625 通信原理 入坑之路】—— 详解IQ调制以及星座图原理概述目前,主流的射频收发机主要有超外差收发机与零中频收发机两种结构。超外差结构是无线通信收发机中使用最为广泛的一种结构,传统的超外差结构是当前最成熟的一种结构,采用恰当的设计可以到较好的收发性能。超外差接收机具有较大的动态范围,以及比较高的邻道选择性.
2021-01-28 15:09:45
9650
11
原创 [Notes] visio使用笔记
visio用了很长一段时间了,整理一下一些好用的操作。1 状态机按住ctrl可以复制图形,按住shift可以拉直线,同时按可以复制并且整理的复制出来
2021-01-27 11:53:37
1036
原创 [Tips] vivado2017.4安装问题
window环境:win7软件:vivado2017.4安装包:这个东西,需要的找我吧,放了也会不见。解压从解压开始就感觉隐隐有点不对,解压之后的文件比原文件还小。这里的问题可能是我的路径太深了,参考。安装我试着用xsetup.bat安装,但是点一下就不见了,我用cmd去看一下返回了什么?win+r好吧我的是h盘返回的是也就是说,还是上面那个老哥的答案我因为电脑已经没有空间了就不再试它的方法了。参考...
2020-12-22 16:14:17
2241
1
原创 [Notes] PS使用笔记
最近给朋友修了张照片,记一下怎么修的,不然以后又忘记了。这是原图他说想要把口罩p掉然后我就搞了一哈这一张他说自己脖子哪里有这么粗,我就又修改了一下。看起来还行哦。也就勉强能看,不过我以前确实弄到这个效果,现在好一点。记一下怎么搞的。抠图首先准备图片,一张原图,另一张有脖子的图。抠了一张脖子ctrl+j复制,记得每次做操作之前都要复制一份备份放进来好像还不错。开始调色 选一下大概跟这个脖子相近的颜色,ctrl+j复..
2020-12-19 16:17:15
282
1
原创 [Notes] nlint使用笔记
nlint启动在linux 脚本里面写nLint -gui -verilog -2001 -beauty -detail -ex_clk -top $top_module -rs $rsfile -f ../scripts/lint_flist -out lint.log-gui是可视化界面-verilog -2001是输入规则-beauty是整理文本,让文本整齐-detail 具体含义还不知道-ex_clk 具体含义还不知道-top 是选取顶层文件 $top_module.
2020-11-26 16:21:18
12346
原创 [Notes] vim使用笔记
因为公司的电脑都是联网的,但是我又想安装一下vim插件,所以找了一些方法去完成这个事情。1、内网要安装vim。2、下载插件,如nerdtree、airline、tabular等等。3、内网,本地homeshare文件夹下,如果没有.vim/文件夹,创建它。4、在.vim/文件夹里面,创建doc文件夹和plugin文件夹、autoload文件夹。5、如果是从window系统复制文件到linux系统中,那么注意有可能会出现换行符问题,window的换行符是\r\n,而linux是\n。.
2020-11-18 09:07:32
1158
原创 数字 10 笔记_UVM验证平台整体结构
参考《UVM实战》-张强自己总结的一些简单笔记系统架构框图这是1种测试用例的框图,每一种测试用例,都会生成这么一个架构。transaction声明、定义数据包格式,是需要测试的数据包,常用random函数去随机化数据用以测试 field_automation注册,注册后才可以使用uvm中的print、compare等常用函数driver向sequencer请求sequence,并在发送完成后,返回一个done给sequencer。 与DUT建立连接 将t...
2020-08-20 19:17:35
2064
6
原创 数字 09 modelsim中怎么仿真《UVM实战》中的例程
实际操作1 新建工程2 加文件3 hello worldmodule Hello_World;initial begin $display("Hello World! SystemVerilog"); endendmodule4 编译编译成功下方transcript会有提示,如果错误按照提示修改work里面出现对应的编译后文件,如果没有出现该文件,尝试改一下程序里面的模块名...
2020-08-12 17:08:49
3788
9
原创 [Tips]Opencores 无法点击submit的问题解决方案
作者:li.wsh链接:https://www.zhihu.com/question/319425592/answer/727400427来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Submit灰的点不了,是因为验证图片显示不出来,这里用的是google的recaptcha人机验证,需要连接google recaptcha服务器,国内不能直接连接。不过google给国内开放的http://recaptcha.net可以正常连接,所以需要用firefox浏览器安.
2020-07-09 11:02:24
1302
4
原创 数字 08 vivado的时序约束UI界面操作
实例1 ADC input_delay现有一块ADC连接到FPGA上,需要在FPGA上实现高速数据的读取,那么第一步自然就是完成可靠的硬件连线,其中需要注意的是:1.注意信号的完整性,尽可能的避免边沿退化;这两区分两个概念: i.高速信号,指的是信号翻转,由高电平到低电平或者反之所耗得时间非常小;可能一个1MHz的TTL信号或者LVDS信号,只要边沿足够陡,那也算是高速信号! ii.高频信号,一般指的是周期性信号的周期时间足够小; iii....
2020-06-24 16:58:31
6761
5
原创 数字 03 时序约束
参考bilibili网址:https://www.bilibili.com/video/BV1ME41127So?p=4参考CSDN网址:https://blog.csdn.net/zhanghaijun2013/article/details/104105707参看知乎网址:https://zhuanlan.zhihu.com/p/370689221、如何查看时钟周期约束状态(1)在上图中tcl命令框里,输入命令report_clock_neworks -name...
2020-06-08 20:00:47
1606
原创 数字 04 verilog 时钟无缝切换电路
电路基本原理是依靠两级缓冲完成时钟的切换上图就是时钟无缝切换的一种电路图,通过两级dff级联加上反馈电路形成,分析它的工作过程,可以看到,当select由0→1时,Q1在下图的clk0的这一时刻,会有1→0紧接着 Q2在下图的clk0的这一时刻,会有1→0所以Q2N就有0→1在这之后,同样在clk1的这两个时刻,它的触发器会有变化,从0→1,所以,在这之后的上升沿,时钟就切换到了clk1所以切换过程,会有一个被切时...
2020-06-08 19:58:50
1136
原创 数字 02 vivado 关于IP核的配置步骤
Vio使用过程:1、ip catalog搜索vio2、配置属性上图设置输入probe数量和输出probe数量我设置输入1 ,输出 0如果不对后面可以再次修改设置位宽。然后okGenerate3、例化例化我一般是先找到veo文件位置,然后再进行例化。点击文件属性,复制文件路径粘贴到文件夹路径,然后找到veo文件可以右键用记事本打开里面有例化程序:4、关于probeVio的Probe_...
2020-06-08 19:55:56
4324
原创 [Tips]Vim配置 For windows-git-bundle
set nocompatible " be iMproved, requiredfiletype off " required" set the runtime path to include Vundle and initializeset rtp+=$VIM/vimfiles/bundle/Vundle.vim/call vundle#begin('$VIM/vimfiles/bundle/')" alternatively, pa...
2020-05-26 10:56:11
483
原创 数字 05 verilog&vivado2018.2零散笔记
有时候综合不了,把电脑的安全软件关掉可能可以解决问题。 异步信号用assign,同步信号用always 模块里面用initial可能会导致无法仿真,建议用异步复位。 使能信号,脉冲信号,激励信号要搞清楚,分工明确。如果有些目的达不到, 很可能就是没有建立相关的信号机制。 Always块里面的if必须要有else连接,不然会产生不定态,模棱两可的时钟的错误。 不能在一个模块里面的不同always块中对同一个寄存器赋值,会产生多驱动错误,容易产生竞争冒险现象,请把信号都归到一个块里面。...
2020-05-17 17:00:03
236
原创 数字 06 verilog_关于异步FIFO
FIFO用于不同时钟域fifo用于不同时钟域时作为一个模块输入端的时钟a连接到fifo的输入端输出端的时钟b连接到fifo的输出端口FIFO用于不同位宽模块之间的传输
2020-05-12 16:58:04
529
原创 数字 07 verilog仿真实例
D型主从触发器module//D_flip_flopmodule flop(data,clock,clear,q,qb);input data,clock,clear;output q,qb;nand #10 nd1(a,data,clock,clear),nd2(b,ndata,clock),nd4(d,c,b,clear),nd5(e,c,nclock),nd6(f,d,nclock),nd8(qb,q,f,clear);nand #9 nd...
2020-05-12 16:47:59
1678
原创 数字 01 Vivado2018.2安装及实操
1、一开始的关于连接到网络检查vivado版本的选项我都选了ignore选择第二个Design edition3、安装的软件都确定安装,然后安装完毕,软件自动开启license manager,点击load license,选择license(有史以来啥啥啥的那个)然后点击view license status新建第一个工程:Create projectNext工程名和工程路径RTL工程NextNext选择芯片,后面应该还可以更改(tool
2020-05-12 15:56:21
6898
uvm学习总结_2021.1.11
2021-01-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人