自定义博客皮肤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)
  • 资源 (3)
  • 收藏
  • 关注

原创 Spyglass 脚本

作为IC设计人员,熟练掌握数字前端语法检查工具Spyglass的重要性不言而喻。

2023-08-16 17:32:27 1004

原创 APB register脚本

在芯片设计中,常常会使用APB总线配置每个模块的寄存器。这一部分可以使用脚本生成相应RTL代码和对应的验证所需文件比如RALF,和C语言的头文件,方便编写驱动。

2023-08-16 17:07:01 172

原创 SOC TOP集成基础脚本范例

TOP集成在coding上的工作可以借助脚本实现,较为先进的IP拥有IP-XACT相关文件,使用Magillem等软件即可方便的进行集成工作,但是目前使用最多的还是简单的脚本,本文以一次TOP集成经验为例,简单记录一下使用的脚本

2022-08-22 14:50:30 988 1

原创 Linux环境配置

本贴记录自个用的配置,持续更新,欢迎交流。

2021-01-04 14:24:17 317

原创 一看就会的FIFO最小深度计算

计算题一直是笔试中常见的一类题型,上文我们学会了建立时间和保持时间的计算方法,本文来学习一下FIFO的深度计算问题。

2020-06-07 20:38:04 1363 2

原创 数字集成电路设计流程

前两天看到一张数字IC设计流程图,觉得总结的比较全面,因此通过网络资源对每一步骤进行学习和总结,有不足或错误的地方烦请指正。

2020-05-24 15:16:01 9330

原创 集成电路可测性设计DFT的详细分类

前言可测试性设计方法之一:扫描设计方法可测试性设计方法之二:标准IEEE测试访问方法可测试性设计方法之三:逻辑内建自测试可测试性设计方法之四:通过MBIST测试寄存器总结...

2020-05-23 14:46:12 7485

原创 一看就懂的建立时间和保持时间

目录前言首先画波形图分析练习前言建立时间(set up time)和保持时间(hold time)一直是面试中的必考题,因为一直都不是很清楚明白的理解这两个概念,故在本文中通过一系列的分析来彻底搞懂这两个概念,力求看一遍就能在面试过程中侃侃而谈,对答如流。首先先上定义(来自维基百科):建立时间是在时钟事件发生之前数据信号应保持稳定的最短时间,以便时钟能够可...

2020-05-06 00:29:12 17440 8

原创 一看就会的奇偶分频电路

目录前言题目二分频电路第一步:画波形图第二步:写状态机三分频电路前言最近又到了招聘季,招聘就离不开笔试面试,而在笔试面试过程中经常出现的一道题就是写出分频电路的verilog代码(以及电路图?),因此在这篇文章里,我们使用一个公式将所有分频电路套进去,以便于在考场上和仿真工具中轻松实现分频电路。题目实现2/3/4/5分频电路,给出一个模板:modul...

2020-05-01 15:45:20 7126 1

原创 关于2的补码(2‘s complement)和 2的补码转换器状态机(2's complementer Moore/Mealy state machine)

关于2的补码问一个基本的问题。负数在计算机中如何表示?举例来说,+8在计算机中表示为二进制的1000,那么-8怎么表示呢?很容易想到,可以将一个二进制位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表示负数。比如,在8位机中,规定每个字节的最高位为符号位。那么,+8就是00001000,而-8则是10001000。但是,随便找一本《计算机原理》,都会告诉你,实际上...

2020-03-04 15:51:30 1813 4

原创 集成电路可测性设计(DFT,Design For Testability)

随着半导体集成电路产业的迅猛发展,设计方法、制造方法和测试方法已经成为集成电路发展过程中不可分割的三个部分。随着集成电路的高度集成化,最开始的徒手画电路图已经被淘汰,取而代之的是一套规范的硬件描述语言(HDL),现在我们使用Verilog HDL可以描述几乎所有逻辑功能和需要的数字电路,只有一些特殊的电路比如数模混合接口等,还需要直接用器件画电路图。随着设计方法的更新升级,制造方法当然也没...

2019-12-22 18:04:59 6167 2

原创 基于linux的vcs平台学习总结

vcs是新思科技发行的集成电路设计仿真工具,比之前用的mutisim仿真时间更快,运行更加稳定,不易出bug,vcs可谓是业界使用最广泛的Verilog设计仿真工具。说到vcs就不能忽视linux,vcs在linux系统的运行使得整个芯片设计仿真流程变的更加方便快捷和高效,新思科技在整个设计仿真流程有一系列的工具,前仿用vcs,覆盖率用DVE,看波形用Verdi,后仿还有DC、ICC、PT,这...

2019-12-21 14:43:18 1970

原创 用Verilog设计仿真一个ram

RAM(Random Access Memory)随机存储器,从功能上主要分为DRAM(Dynamic Random Access Memory,动态随机存储器)SRAM(Static Random Access Memory,静态随机存储器)

2019-07-21 11:52:36 12697 2

原创 用Verilog实现二维细胞自动机——康威生命游戏(Conway's Game of Life)

在一个二维的棋盘上,每个格子有存活(1)和死亡(0)两种状态。在每个时间周期,每个格子会根据他的8个邻居来决定自己下一个周期的状态:0-1个邻居:人口稀少,死亡(0); 2个邻居:保持原状态; 3个邻居:繁衍(1); 4+个邻居:人口过多,死亡(0);这个游戏原来是设计在一个无限的网格里,但是在这个电路中,我们设计为16*16的网格,为了让这次练习更有趣,我们把网格边界拓扑环绕到对立的...

2019-06-10 10:48:42 2950 4

原创 用Verilog实现最简一维细胞自动机(one-dimensional cellular automaton)

首先,我们通过观察上表可以很容易的发现一个规律,center的下一个状态由center的左邻居和右邻居异或而成。center的下一个状态列:01011010,转换为十进制即为90,所以我们将其命名为rule 90.知道了下一状态产生的规则后,我们就根据其规则实现下面这个电路:在这个电路中,我们创造512个细胞系统(q[511:0]),在每个时钟周期前进一个步长。load输入将输出q加载...

2019-06-06 17:59:34 1606

原创 使用Quartus II进行FPGA实验之Numbers and Displays

这是一个设计组合电路的练习,可以显示二十转换器和二进制编码的十进制(BCD)加法。part5:2位BCD数加法器设计一个BCD加法器即是将加法器和显示电路结合起来。显示电路比较简单,只需要输入一个bcd数,我们就可以在数码管上显示这个bcd数,用简单的case语句即可实现:module decoder( input [3:0]in2, output reg[6:0]displa...

2019-06-05 20:19:22 844

原创 使用VCS对电路进行后仿真

一、后仿介绍1.概述后仿是在前仿的基础上加入了延时信息的功能仿真,同时验证了设计的时序以及功能都正确,并且确保后仿功能和前仿一致。前仿与后仿所使用的仿真器是相同的,所加激励也是相同的,不同点主要有:仿真所需文件不完全相同;作用不同;波形不同。后仿可以分为综合后仿真和布局布线后仿真。综合后仿真是对DC综合后的网表进行仿真,连线延时来自于通过线负载模型的估计;布局布线后仿真是对布局布线后...

2019-06-02 15:36:12 18643 4

原创 在DC中使用tcl脚本综合和Formality一致性检查

Design Compiler工艺库的更换通过上一节的基本操作,我们学会了如何使用design compiler综合一个电路,但是由于centos自带的库class中没有寄存器的相关映射,而导致综合失败,因此在eetop论坛上下载了新的库smic180,这个库需要的东西应有尽有完全可以满足此次实验内容要求:因为工艺角的不同,区分为FF SS TT,这次就使用tipical当做库文件,...

2019-06-02 14:57:00 6369

原创 双边沿触发器

双边沿触发器在时钟的每个上升沿和下降沿都会触发。但是在FPGA中没有双边沿触发器,并且像always @(posedge clk or negedge clk)这样的描述方式并不合法。建立如下一个类似双边沿触发器的的电路:Hint:在FPGA中不能创造双边沿触发器,但是我们可以把上升沿触发器和下降沿触发器都创造出来。 这个题是一个中等难度的电路设计题,但是只需要基础的Verilo...

2019-05-30 18:22:03 9382

原创 边沿检测电路

module top_module ( input clk, input [7:0] in, output [7:0] anyedge); reg [7:0] d_last; always @(posedge clk) begin d_last <= in; // Remember the state of the previous cy...

2019-05-29 12:34:28 4213

原创 使用Quartus II进行FPGA实验之Switches, Lights, and Multiplexers

使用Quartus设计FPGA,简单包括以下流程:新建工程,写代码 编译工程,找错误 分配引脚,重编译 下载配置,到硬件为保证设计的正确性,在编译后,一般还需要做仿真验证,然后下载至硬件,有两种仿真方式:- 功能仿真- 时序仿真https://blog.csdn.net/alexanderrr/article/details/51615254Quartus II软件可以...

2019-05-25 20:26:04 1451

原创 Verilog语言之其他功能:组合逻辑for循环和generate生成块for循环

例1:给一个100位的输入向量,颠倒它的位顺序输出只需要将in[0]赋值给out[99]、in[1]赋值给out[98]......也可以直接用for循环,其规范格式如下:for(循环变量赋初值;循环执行条件;循环变量增值) 循环体语句块;通过for循环赋值很方便:module top_module ( input [99:0] in, output reg [9...

2019-05-21 11:18:10 7203 1

原创 Verilog语言之结构语句:if、case

if语句一个if语句通常可以创造出一个2选1选择器,当条件为真时选择一个输入,为假时选择另一个。always @(*) begin if (condition) begin out = x; end else begin out = y; endend这等同于连续性赋值语句的条件运算符:assign out ...

2019-05-20 11:30:57 13057

原创 Verilog语言之结构语句:Always过程块和assign连续赋值语句

数字电路是用线将逻辑门连接起来组合而成的,任何电路都可以用一些模块的组合和赋值语句来表示。但是,有时候这并不是描述电路最为方便的方法。结构语句(Procedures:always, initial, task, function)为描述电路提供了更多的选择。对硬件综合来说,有两种最重要的always块:组合: always @(*) 时钟: always @(posedge clk)组...

2019-05-19 18:28:14 17730 3

原创 Verilog语言之模块层级:模块的实例化

1.例化语法一个模块能够在另外一个模块中被引用, 这样就建立了描述的层次。模块实例化语句形式如下:module_name instance_name(port_associations) ;连接信号到模块端口有两种常用的方法将信号连接到端口上:位置和名称。位置通过位置将信号连到端口上的语法应该比较熟悉,因为这是类c语言的语法。当实例化一个模块时,根据这个模块声明时的端口顺序从...

2019-05-17 16:55:30 14938

转载 状态机的四种写法

引言在实际的数字电路设计中,状态机是最常用的逻辑,而且往往是全部逻辑的核心部分,所以状态机的质量,会在比较大的程度上影响整个电路的质量。本小节我们通过一个简单的例子(三进制脉动计数器)来说明一下状态机的4中写法。1,模块功能由于我们的目的在于说明状态机的写作方式,...

2019-05-16 19:17:13 4695 3

原创 Verilog语言之向量vector和解压缩数组unpacked array

今天在HDLbits网站学习的时候遇到一个有趣的东西,记录一下,也是第一次翻译文章。为了更加方便操作,将相关联的信号用一个名字组成向量。比如,wire [ 7:0 ] w ; 声明了一个8位的向量w,这等价于w拥有8根分离的线。声明向量向量必须被声明: 类型 [ 最高位:最低位 ] 向量名字类型指的是向量的数据类型,最常用的是wire和reg。当声明输出或输入端口时,类型...

2019-05-10 22:12:24 5106

原创 在CentOS中使用Design Compiler (DC) 图形界面/tcl脚本进行电路综合

综合是前端模块设计中的重要步骤之一,综合的过程是将行为描述的电路、RTL 级的电路转换到门级的过程;Design Compiler 是 Synopsys 公司用于做电路综合的核心工具,它可以方便地将 HDL 语言描述的电路转换到基于工艺库的门级网表。本章将初步介绍综合的原理以及使用 Design Compiler 做电路综合的全过程。通过前面完成了对万年历的功能仿真和代码覆盖率仿真,现在开...

2019-05-05 16:13:16 8029 2

转载 Verilog学习五点经验分享

verilog学习五点经验分享 1.规范很重要工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的。逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己写的代码,估计很多信号功能都忘了,更不要说检错了;如果一个项目做了一半一个人走了,接班的估计得从头开始设计;如果需要在原来...

2019-05-05 09:30:51 589

原创 在modelsim中对万年历进行代码覆盖率仿真

什么是代码覆盖率(code coverage)?代码覆盖率是验证激励是否完备,检验代码质量的一个重要手段。测试激励的代码覆盖率至少要达到95%以上,才能基本认为代码在逻辑上是通过质量控制的。如果代码覆盖率较低,则说明仿真没有执行到所有的代码或者测试文件有缺陷。ModelSim代码覆盖率功能Code coverage,能报告出statement(语句) 、branch(分支)、condit...

2019-04-27 19:26:08 4009

原创 在notepad++中删除所有注释和空行

参考自https://blog.csdn.net/a_long_sky_/article/details/50844701https://blog.csdn.net/qq_35189406/article/details/83992375使用替换,查找模式选中正则表达式删除 // 之后的所有字符 //.*$删除 // 之前的所有字符 ^.*//删除所有空行 ...

2019-04-26 17:02:07 1447

原创 利用Verilog HDL规划一款电子表芯片(万年历)

规划一款电子表芯片,能够显示年月日,星期,并且实现闰年的自动调整,钟振32768Hz。要求:增加测试设计,快速覆盖400年周期目的:掌握Verilog语言对组合逻辑的描述 学习testbench的设计方法 掌握仿真器(modelsim/Verilog/VCS)的仿真、调试、波形输出等常用技巧 掌握DC约束规划方法、综合器使用、结果查看、后仿真等 熟悉简单芯片从规划到实现方法...

2019-04-24 11:53:29 7031 6

原创 vi/vim 和 linux 在学习工作中会用到的相关指令(最简洁版)

vi/vim上图转载自https://blog.csdn.net/deniro_li/article/details/54584100Ps:在linus中创建一个文件的命令是vim test.v,linus中文件可以没有后缀,后缀只是为了方便查看。linuxls命令功能:列出指定目录下的内容 常用选项:-a 显示所有文件和隐藏文件 -l 长格式列表,显示文件...

2019-04-24 09:37:06 197

原创 Verilog上机实验题目4:哈夫曼编码器

相关文章:[Verilog上机实验题目1:8位数字显示的简易频率计][Verilog上机实验题目2:11位巴克码序列峰值检测器][Verilog上机实验题目3:FIR滤波器][Verilog上机实验题目4:哈夫曼编码器]哈夫曼编码器要求对一段数据序列进行哈夫曼编码,使得平均码长最短,输出各元素编码和编码后的数据序列。组成序列的元素是[0-9]这10个数字,每个数字其对应的...

2019-04-16 21:41:18 4580

原创 Verilog上机实验题目3:FIR滤波器

相关文章:[Verilog上机实验题目1:8位数字显示的简易频率计][Verilog上机实验题目2:11位巴克码序列峰值检测器][Verilog上机实验题目3:FIR滤波器][Verilog上机实验题目4:哈夫曼编码器]FIR滤波器的设计滤波器就是对特定的频率或者特定频率以外的频率进行消除的电路,被广泛应用于通信系统和信号处理系统中。从功能角度,数字滤波器对输入离散信号的数字...

2019-04-16 21:14:02 1832

转载 Verilog上机实验题目2 : 11位巴克码序列峰值检测器

转载自https://blog.csdn.net/Reborn_Lee/article/details/80410951 巴克码相关器 巴克码相关器原理:巴克码相关器能够检测巴克码序列峰值,并且能够在1bits错误情况下检测巴克码序列峰值。巴克码是20世纪50年代初R.H巴克提出的一种具有特殊规律的二进制码组。它是一个非周期序列,一个n位的巴克码(x1, x3, … xn...

2019-04-16 18:24:29 3173

转载 Verilog上机实验题目1:8位数字显示的简易频率计

转载自https://blog.csdn.net/Reborn_Lee/article/details/80377207 简易数字频率计原理:数字频率计的原理十分简单,简单的就是一句话和一幅图而已。一句话:测量被测信号的频率,要清楚频率的定义,一言以蔽之,就是1s中信号的周期数,这不就是周期的倒数吗?根据频率的定义,我们测量被测信号1s中变化的次数即可,即1s中的周期数。首先我们设置一个基准...

2019-04-16 18:16:13 6501 8

Verilog上机实验题目3:FIR滤波器

https://blog.csdn.net/weixin_38197667/article/details/89339983; Verilog上机实验题目3:FIR滤波器; 源码+注释;

2019-05-06

Verilog上机实验题目2 : 11位巴克码序列峰值检测器

https://blog.csdn.net/weixin_38197667/article/details/89339028; Verilog上机实验题目2 : 11位巴克码序列峰值检测器; 源码+注释;

2019-05-06

Verilog上机实验题目1:8位数字显示的简易频率计

https://blog.csdn.net/weixin_38197667/article/details/89338876; Verilog上机实验题目1:8位数字显示的简易频率计; 源码+注释;

2019-05-06

空空如也

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

TA关注的人

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