自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (1)
  • 收藏
  • 关注

原创 有限域中的一些概念

必要条件:一个集合有加法单位元,乘法单位元,以及每一个元素都对应有加法逆元,和乘法逆元,(有限域并不要求0有乘法逆元)在有限域内,不能被再次分解的多项式,即不能被表示为其他任意两个多项式的乘积。在自然数中,任意数加上0等于本身,0则为加法的单位元,任意数乘以1等于本身,1则为乘法单位元。在有理数中,如果两个数乘积为1,这两个数互为乘法逆元。有限域中,如果a+b=e,则a和b互为加法逆元,如果axb =e,则a和b互为乘法逆元。有限域中单位元用e表示,即乘法,加法的单位元都用e表示,不过这两者的e不一样。

2024-05-16 09:57:03 403

原创 8B/10B编码特点

3、具备检错能力:8B/10B编码后的10位数据有1024种可能的码型,其中只有536种有效码字,接收端可以通过接收码字来检测传输是否出错。2、数据序列直流平衡:编码后数据中的0/1 数量基本一致,连续的0/1 不会超过5位,从而保证信号的直流平衡,能够满足高速信号传输的需求。4、具备控制信令:控制信令采用特殊码字表示,与数据传输存在区别;信令控制字符可用作帧同步字符或其他分隔符等。1、0/1转换密度高:每一个编码完毕的数据至少有3至8次的0/1 转换。

2024-05-15 09:51:52 489

原创 vcs编译时,出现时间单位us等未定义问题

仿真代码中如果出现#10ns,#20us 这种时间单位时,编译会不通过,错误为这些时间单位没有被定义。编译选项加上-sverilog 后,可识别时间单位。在vcs编译的命令中没有-sverilog ,

2024-02-27 20:33:26 194

原创 gvim删除内容命令

例如删除第6行到第8行的内容,1、删除指定行的内容。

2024-01-31 11:09:12 566

原创 信道编解码—RS码中伴随式的意义

首先从求解伴随式的公式可以看成是RS编码公式C(x)的一种频域的变换,根据傅立叶变换原理可知,频域数据与时域数据实际上是等效的,由于无错的数据通过生成多项式编码后,C(x)=0,频率变换后的实际也是0,当求解伴随式的值不为0,说明接收到的码字有错误数据,否则求解出的伴随式是为0的,所以解码就是将错误数值通过通过某种反变换,返回到时域,进行位置和错误值的纠正。

2024-01-28 14:43:45 270

原创 信道编解码—RS码简介

RS码是一种性能较好的线性分组码,是一种非二进制本原BCH码,也是一种代数几何码,可以纠正突发错误,也可以纠正随机错误,在码长为中短码长的应用场景中,其性能接近理论值。注:其中m表示符号的大小,如m为10,表示符号有10位二进制数组成。这也同时说明,RS 是建立在分组基础上的,一个符号具有m位二进制数,不是单个的0和1,是与传统的二进制BCH码的根本区别。码字信息长度(维数):k=n-2t。分组长度(码长):n=q^m-1。奇偶检验符号个数:n-k=2t。最小距离:dmin=2t-1。

2024-01-28 14:37:49 950

原创 PowerReplay工具

6、辅助文件:rtl 代码的仿真环境层级结构,和网表的仿真环境层级结构,波形时间段等,3、前仿波形:在特定的激励下对rtl 代码仿真输出的fsdb文件。1、映射:将rtl.lib库文件映射成gate.lib库文件。2、提取:提取前仿时的激励,生成临时的testbench,1、vcs编译RTL代码后产生的rtl.lib库文件。2、vcs编译网表后产生的gate.lib库文件。5、SDF文件:时序反标文件,用在pr 网表中,4、仿真:第3步编译完后,进行仿真,输出网表波形。PowerReplay工具运行流程,

2024-01-21 18:12:39 939

原创 功耗仿真中涉及到的相关术语简介

1、网表:网表是将RTL设计转化为器件库中单元电路的连接,一般可分为综合网表,DFT网表,PR(plac and route)网表,其中PR网表包含了sdf的最终版网表。6、后仿:后仿又可称为网表仿真,主要是将RTL代码综合后的网表用来仿真的过程,此仿真过程还可以加入网表单元的时序信息,即SDF文件。9、SPEF文件:用于描述布局布线,即pr后的实际电路中的电容,电阻,电感值,进行STA分析,cell、net的延时计算。4、PR网表:相比综合网表,将布局布线的相关信息加入进来,

2024-01-21 18:11:15 953

原创 时钟偏移与时钟抖动

如下图所示,指芯片的某一个给定点上时钟周期发生暂时性变化,使得时钟周期在不同的周期上可能加长或缩短。主要由内部的时钟电路,PLL等引起的,与布局布线没有关系。如下图所示,由于布局布线导致,clk到达三个触发器的时间是不一样的。这个就是时钟偏移,对每个触发器而言,不会改变时钟周期。

2023-12-20 23:18:26 513

原创 IC设计中的后仿简介

后仿又可称为网表仿真,主要是将RTL代码综合后的网表用来仿真的过程,此仿真过程还可以加入网表单元的时序信息,即SDF文件。

2023-12-20 22:50:45 411

原创 控制仿真波形时间长度

上述代码从600ns开始Dump波形,200ns后停止Dump波形,波形时间长度为200ns。在verilog或者SV代码中dump波形时可以用如下命令来控制仿真波形的开始时间和结束时间。$fsdbDumpoff //停止Dump波形。$fsdbDumpoff //停止Dump波形。$fsdbDumpon //开始Dump波形。“设置dump波形的相关参数,”

2023-11-07 20:44:03 510

原创 Python学习笔记—元组

元组不可变只是限制在元素类型上,元组所保存的内存地址,即指向不会变,但地址指向的对象,自身有可变属性的时候,是可以改变的。比如一条商业街上的各个店铺的地址不能改变,但是店铺是经营餐饮,服装,娱乐等,是可以改变的。不过有一种情况可以改变元组元素,就是当元组元素是可变对象的时候,对象内部属性是可以改变的。2、元组与列表类似,但元组的元素不能被修改,没有insert,append等函数。来复制元组,例如t=(1,),t2=t。另tuple=(1,2,[1,2])则tuple=(1,2,[0,2])

2023-10-30 21:41:39 257

原创 【python学习笔记——列表】

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。空列表list=[]非空列表列表定义时例如list=[‘csdn’, ‘is’ ,‘good’ ,2023],直接给列表内赋值。

2023-10-27 17:04:14 574

原创 Python学习笔记—基本数据类型

不可变数据类型:数字,字符串,元组。可变数据类型:列表,字典,集合。1、允许给多个变量赋值。

2023-10-22 13:59:52 60

原创 Python学习笔记—基本语法

sep默认空格,也就是value 为多个字符串时,中间用空格隔开,也可以在调用print函数时,指定的符号隔开。5.1、单引号‘和双引号””作用是一样的,当作定界符使用,也可以嵌套使用,被嵌套的符号会被解释成字符。end是输出字符串结尾,默认以换行符结尾,同理在调用函数时,可以以指定的符号结尾,2、多行注释’’’和”””,用法类似verilog中的/**/5.2、使用(‘’’)和(“””)可以指定一个多行字符串。如“str1”+”str2”=str1str2。如print(‘a’);print(‘b’)

2023-10-21 16:15:27 207

原创 Perl学习1-$ARGV

当运行Perl脚本时,从命令行上传递给他的参数存储在内建数组@ARGV中,@ARGV是perl默认用来接收参数的数组,可以有多个参数,例如perl xxx.pl a b。ARGV[1]表示第二个参数。

2023-10-11 21:03:23 732

原创 纳瓦尔宝典读书思维导图总结分享

2023-09-02 17:00:56 161

原创 IC前端开发启动工具常用命令记录

nlint检测会检查代码的语法语义错误,可实现对代码的时钟、命名规则的检查,确保了程序的健壮性。如果编译verilog 文件则将-sverilog 换成-v2k。-2001 按照2001标准来检查,也就是上图中红色圈出的地方。需要输出编译日志则添加 -l xxx.log。./*.vdb匹配当前目录下所有的vdb文件。xxx.f为rtl 代码的filelist。-out 用来指定输出文件是什么。xxx为合并后的vdb文件名。xxx.fsdb为波形文件。xxx.vdb为覆盖率文件。-f 命令用来添加文件列表。

2023-08-31 15:25:43 301

原创 nlint语法检查命令

nlint检测会检查代码的语法语义错误,可实现对代码的时钟、命名规则的检查,确保了程序的健壮性。-2001 按照2001标准来检查,也就是上图中红色圈出的地方。-verilog verilog 语法。-beauty 让输出结果自动缩进。-out 用来指定输出文件是什么。-f 命令用来添加文件列表。

2023-08-28 19:13:33 590

原创 Verdi截取波形命令

截取xxx.fsdb波形文件的第1000ns时刻到2000ns时刻这段时间的波形输出到yyy.fsdb中。xxxns -et xxxns 是要截取的波形时间段,ns 是纳秒。yyy.fsdb是截取波形后输出的波形文件。xxx.fsdb是要截取的波形,

2023-08-10 11:35:43 2478 2

原创 verilog中带符号的常量表示

二进制 4‘sb1111(-1的补码形式)

2023-07-05 16:48:59 271

原创 关于复位的一点思考

复位电路会消耗更多的硬件逻辑和面积资源,增加系统设计的复杂性。不带复位端的触发器也具有相对较高的性能。所以在一些初始值不影响逻辑正确性的数字设计中,例如数据通路中一些数据处理的部分,高速流水线中的一些寄存器,可以考虑去掉复位以达到最佳性能。

2023-05-26 16:00:34 97

原创 用verilog写计数器cnt的几点注意事项

1、计数器信号cnt ,除了复位信号,最好有个信号能够使cnt 恢复为初始的计数值,这么做的目的是为了在系统在某种影响下导致跑飞一小段时间,导致cnt 计数到了不合理的值区间,过了这段异常影响后,回到正常工作环境,需要有个信号将cnt 恢复到初始值,重新开始工作。因为当某种异常环境,例如温度过高什么的,导致cnt从99跳变到了101,此时cnt 不会回到0值,导致cnt 跑飞,如果改为>=100,则在计数跳到101,也可以使cnt回到0值,重新计数。

2023-05-26 15:40:52 1113

原创 基于UVM的uart串口验证平台(1)

为uart的接收模块搭建一个简单的uvm验证平台,加强对uvm的理解与掌握,拒绝眼高手低党

2023-02-08 21:29:45 692 1

原创 常用的20个Linux命令总结

1、ls (list files)作用:显示指定工作目录下的内容常用参数:-a:显示所有的文件和目录,包括隐藏文件-l:除文件名称外,文件型态、权限、拥有者、文件大小、修改日期等(常用)-r:将文件根据建立时间先后的顺序列出-R:连同子目录的内容一起列出(递归列出),即该目录下的所有文件都会显示2、cd(change directory):作用:切换工作目录,可用相对路径,也可用绝对路径。常用参数:cd /usr/bincd ~cd ./path(./可以省略不写)cd …/pat

2022-02-13 15:27:11 1084

原创 UVM学习笔记——组件家族

**一、uvm_driver**1、作用该类会从uvm_sequencer中获取事务,然后在接口中对DUT进行时许激励driver.seq_item_port.connect(sequencer.seq_item_export);,此方式既可作rsp也可以作seqdriver.rsp_port.connect(sequencer.rsp_export);2、定义class uvm_driver #(type REQ=uvmsequenceitem, type RSP=REQ)extends

2021-04-14 20:14:04 883 1

原创 UVM学习笔记——config机制

一、config机制的作用1、 在创建底层组件之前,需要对验证环境进行配置,用过外部的参数配置,使得环境在创建时可以根据不同的参数来选择创建组件的类型、组件的实例数目、组件之间的连接以及组件的运行模式等。2、config机制允许在仿真中通过变量设置来修改环境,不需要重新编译来调节变量。二、config机制使用方法1、 UVM提供uvm_config_db配置类和集中变量设置方法2、 常见的uvm_config_db使用方法如下1) 传递virtual interface到环境中去2) 设置单一

2021-03-15 21:23:43 2480

原创 UVM学习笔记——核心基类

一、uvm_object1、uvm_void类是UVM世界中最原始的类,其它类都是从uvm_void继承而来,它没有成员变量和方法,只是一个虚类,等待后续继承于它的子类去开发,在直接继承于uvm_void的子类中有两个类,一个是uvm_object类,另一个是uvm_port_base类2、uvm_object继承于uvm_void类,在UVM世界中,除了事务接口类继承于uvm_port_base类,其它都继承于uvm_object类3、uvm_object核心方法copy、clone、compa

2021-03-11 21:32:47 699 1

原创 UVM学习笔记——phase机制1

一、什么是phase机制   UVM中的phase机制可以保证各组件例化的先后关系以及各组件例化后的连接关系,phase机制同样允许在例化前对底层组件的配置,总的来说phase机制管理控制着仿真按一定顺序进行,使得UVM仿真阶段层次化二、phase分类   phase总共有九种,分类如下表所示run_phase说明 其中只有run_phase是任务,因此只有run_phase才消耗时间,这也使得run_phase可以做一些等

2020-11-05 13:51:02 1957 1

原创 UVM学习笔记——工厂机制1

一、什么是工厂二、工厂的优点

2020-11-05 12:53:00 1462 1

原创 数字IC笔面试两类常见题型解题思维简要总结——FIFO深度与建立保持时间

1、FIFO深度计算1)计算思维:计算深度=(写入的数据个数)-(在写入时间内可读出数据个数)2)判断有解的依据:在求解之前需要验证一下在允许的最大时间长度内写入的数据量是否等于读出的数据量,保证有解;即写入burst数据时间必须大于等于读出burst数据时间,不然数据就会越累积越多,使得FIFO的深度必须为无穷大。3)最小深度的条件:读写的速率应该相差最大,也就是说需要找出最大的写速率和最小的读速率2、建立时间与保持时间1)建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最

2020-07-17 11:39:06 488

原创 联发科2020届暑期实习生上岸,记录下过程

很久没来更新了,之前一直被老师催写交论文搞,同时又在准备暑期实习生的招聘,生了场病,现在来更新下。获得的是联发科技成都公司的IC设计与验证暑期实习生offer。主要分为笔试,面试一、笔试大概是4月底的时候从朋友那里得知联发科技在招聘暑期实习生,所以就投了简历。大概在5月上旬的收到了笔试通知,笔试也没有什么好技巧,除了靠平常的积累,就是刷题。笔试前我也是刷题,通过各种渠道获得各类笔试题目,自己就开始刷,在理解的基础上会了之后,我就开始不看答案,自己再刷一遍。最后笔试的题目也没有碰到差不多的题目,哎,可能

2020-06-09 15:40:24 4668 5

原创 基于FPGA的图像边缘检测实现(二)

一、 主要内容:讲解下SCCB模块二、 SCCB是串行摄像机控制总线协议(Serial Camera Control Bus)的英文简称 ,它控制着摄像头大部分的功能,包括图像数据格式、分辨率以及图像处理参数等 ,它有两线和三线两种,3线SCCB接口可以对多个从器件控制,两线只能控制一个从机,本次只控制一个OV7670摄像头,用两线的。三、 下图是两线模式的基本时序图,其中SIO_C是...

2020-03-31 21:06:45 657 2

转载 转载:模块划分的实例

无意间看到的一篇博客,明德扬发的,在已知需求后,如何对模块进行划分。看了后有一定的启发,下面原文链接 https://blog.csdn.net/MDYFPGA/article/details/103833272 ...

2020-03-31 20:34:07 1016

原创 基于FPGA的图像边缘检测实现(一)

架构

2020-03-22 17:04:54 1733 2

原创 FGPA实现基于cordic算法的反正切函数

cordic原理

2020-03-18 16:00:19 4512 10

原创 FPGA中浮点数的定点化

浮点数的定点化 FPGA浮点数:简单来说,就是小数点的位置不是固定的定点数:简单来说,小数点的位置是固定的,也就是整数位宽与小数的位宽是固定的定点化的过程:第一步:确定好整数与小数的位宽,例如,整数3位,小数12位,符号位1位第二步:确定定点数最大值与最小值,用第一步的例字,最大值为32767,最小值为-32768(整数位+小数位一起表示的最大最小值)第三步:将浮点数定...

2020-03-06 21:35:20 1754 1

思维导图.pdf

思维导图.pdf

2023-09-02

Cordic_atan.v

使用现场可编程门阵列来实现了反正切函数,使用16次迭代的cordic算法来实现三角函数,有一定的误差,如果想把精度提高,自己可以加多迭代次数

2020-03-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除