IC设计基础
为中国IC之崛起而读书
学习、记录IC笔记
展开
-
verdi如何显示波形的所有值而不忽略高位的零
原创 2019-12-30 11:13:16 · 2867 阅读 · 2 评论 -
小白也能开始VCS+Verdi的旅程
转载自:小白也能开始VCS+Verdi的旅程 前言 随着工艺发展,芯片集成度越来越高,内部能达到几千万甚至上亿的逻辑单元以及功能模块。无论是FPGA RD还是IC RD,在做复杂RTL开发的时候,都不可能保证没有经过Simulation功能正常运行,都需要进行仿真,可能FPGA RD接触的比较多的Simulation tool是Modelsim。 鄙人经历过...转载 2019-12-02 16:49:11 · 2534 阅读 · 0 评论 -
乘法器设计(二):基于ROM的乘法器设计
乘法器的另一种实现思想是采用ROM的方式,即将被乘数和乘数连接起来拼成地址,把两者所有可能的乘积按照地址号存放在ROM的地址空间中,两个数相乘时,根据两者构成的地址从ROM索取乘积结果。首先,我们来看看为啥这样是可行的。我们会有一个疑问,两者构成的地址能把所有的乘积结果都包含在内吗?我们来局个例子,比如两个两个1bit的数相乘,可能的相乘方式有0x1,0x0,1x1,1x0,一共四种相乘方式,...原创 2019-10-30 11:48:32 · 4010 阅读 · 1 评论 -
乘法器设计(一):基于移位相加的乘法器设计
在硬件电路中,常采用二进制乘法器,因此只讲二进制乘法器的原理。二进制乘法原理与十进制乘法原理类似,都是将乘数的每一位和被乘数相乘,除此之外,二进制乘法还有其自身的特点,这对于硬件设计极为关键。二进制乘法器可以分为有符号数乘法和无符号数乘法。无符号数乘法较为简单,不需要对乘数和被乘数扩展符号位,直接使用乘数和被乘数相乘相加即可。举例:比如两个无符号数3(011)和6(110)相乘,那结果应...原创 2019-10-29 21:54:26 · 12441 阅读 · 2 评论 -
IC基础(九):单bit跨时钟域同步
在IC基础(三):跨时钟域处理——电平同步器https://blog.csdn.net/MaoChuangAn/article/details/88814300中介绍了点评同步器,但是其在由快时钟域向慢时钟域传输的时候clk_b有可能采样不到clk_a传输过来的信号。自己看过不少的书,其中对跨时钟域的处理讲的不是很明白,因此抱着试一试的心态在eetop上搜索了跨时钟域。直到看到大神“杰克淡定”讲...原创 2019-05-07 11:40:27 · 3069 阅读 · 3 评论 -
IC基础(八):超前进位加法器
一、概述在前一章中讲述了串行进位加法器,连=了解到了串行进位加法器的进位项的最长延时是限制速度的挂件所在,因此,加法器的进位项可以修改表示成如下:上式中有俩项,每一项都可以使得输出为1。我们定义:(1)生成(Generate)项:(2)传输(Propagate)项:根据生成项和传输项可以直接计算出每一级的进位项,最后根据传播项和进位项来计算求和项。表达式如下:si = Pi^G...原创 2019-04-12 18:26:49 · 10109 阅读 · 0 评论 -
IC基础(六):3x3脉动阵列计算矩阵相乘
本文是在看了一个博客之后才知道怎么做的,就是这个博客FPGA脉动阵列的设计,可惜的是这个博客是转载的,原博客已经找不到了。但是其介绍的还是很详细的,在次基础上我完成了自己的的3*3脉动阵列的设计。本文后面会给出一个PPT文档,也是介绍脉动阵列的,FPGA脉动这列的设计这篇博客似乎也是这个PPT启发的。一、引言引言的大部分内容来自《VLSI数字性信号处理系统:设计与实现》一书。脉动结构(也称脉...原创 2019-04-03 12:06:49 · 10622 阅读 · 29 评论 -
IC基础(五):序列检测器
序列检测器经常出现在笔试题目当中,其实其中的主要思想还是状态机的设计,因此本文也借着序列检测器这一点,讲讲状态机的设计。一、序列检测器要是实现什么功能?序列检测器主要是实现输入的一串序列是否是特定的序列。比如设计一个序列检测器,检测序列“11001”,检测到就输出1,否则输出0。二、设计状态机来检测序列首先要设计状态机,最好是先把状态转换图先画出来,有了状态转换图一切设计就很好办了。根...原创 2019-04-01 18:04:23 · 4455 阅读 · 1 评论 -
IC基础(四):UART异步串口通信
一、什么是UART异步串口通信?首先来解释一下,什么是UART。UART是Universal Asynchronous Receiver/Transmitter的简称,翻译过来开就是通“用异步收发器”。从关键字可以看出来,这是一个异步的通信协议,因为接收和发送使用的不是同一个时钟。另外一个关键字就是串口,串口说白了就是串行。串行通信只是用一根信号线传输数据,每次传输一位,串行传输的特点是线路简...原创 2019-03-27 21:17:29 · 4447 阅读 · 3 评论 -
IC基础(三):跨时钟域处理——电平同步器
一、什么是跨时钟域?在讲怎么解决跨时钟域问题之前,起码的先介绍什么是跨时钟域吧!!!那么跨时钟域指的是什么意思呢?在IC基础(一):异步FIFO的介绍异步FIFO的介绍中其实就存在跨时钟域的问题。跨时钟域简单的说就是两个模块之间运行的时钟频率不一致,并且这里两个模块之间需要通信。举个例子就是现在有两个模块A和B,其运行的时钟分别是CLKA和CLKB。CLKA和CLKB的频率和相位不同的话,一定是...原创 2019-03-26 10:31:59 · 3980 阅读 · 1 评论 -
IC基础(二):同步FIFO
在IC基础(二)中我们已经介绍了异步FIFO,本章介绍的同步FIFO会比上一章简单许多。一、什么是同步FIFO?这部是很简单的问题吗?同步FIFO就是读写时钟域都是同一个时钟的FIFO。也就是说同步FIFO不用考虑跨时钟域的问题。同步FIFO和异步FIFO的根本区别就是读写时钟的不一样。二、同步FIFO的常见参数clk:读写时钟rst_n:同步复位信号w_en:写使能信号r_en:读...原创 2019-03-25 15:30:33 · 4800 阅读 · 2 评论 -
IC基础(一):异步FIFO
今天看别人的博客研究了一天的异步FIFO,中遇到了很多问题。很多人可能有过这样的经历,当你研究一个东西,可能你当时很清楚你是怎么想的,但是过后就忘记了当时的思路了。因此我写博客的主要目的就是为了回头查阅方便。IC基础可能会写很多篇,本篇异步FIFO就是此系列的第一篇。...原创 2019-03-24 22:02:35 · 16085 阅读 · 13 评论